运行脚本输入回车
假设有一个程序a,运行的时候需要连续输入几个回车才能运行结束。
使用命令:echo "\n\n\n\n\n\n" -e | a
,可以通过管道去输入回车。
关机、重启、注销
shutdown -h now
: 立即关机shutdown -h 1
: 1分钟后关机shutdown -r now
: 立即重启h
表示:halt、r
表示:reboot、syn
:内存数据同步至磁盘
logout
: 注销,只在级别3下面有效
判断字符串是否为空
1 | data="" |
用户管理
添加用户
useradd [选项] 用户名
例子:useradd zhangsan
创建一个zhangsan的用户自动创建和用户名相同的home目录。
使用选项-d
可以指定用户的home目录
例子:useradd -d /home/wangwu zhangsan
,将用户zhangsan
的home目录指定为/home/wangwu
指定或修改用户密码
passwd 用户名
例子: passwd zs
删除用户
userdel 用户名
例子:userdel zhangsan
删除zhangsan用户,但保留用户home目录。
例子:userdel -r zhangsan
删除zhangsan用户,同时删除用户home目录。
切换用户
su - zhangsan
切换到zhangsan用户
返回原来的用户exit
命令
高权限用户=>低权限用户:不需要密码,反之需要。
用户组
添加新组
groupadd xiaoming
删除新组
groupdel xiaoming
添加用户时设置组
useradd -g 用户组 用户名
修改已有的用户组
usermod -g 用户组 用户名
用户相关文件
/etc/passwd
文件,用户配置文件
一行的含义: 用户名:口令:用户标识号:注释性描述:主目录:登录shell
/etc/shadow
文件
登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
/etc/group
文件
组名:口令:组标识号:组内用户列表
指定运行级别
运行级别:
级别 | 说明 |
---|---|
0 | 关机 |
1 | 单用户,可以用来找回密码 |
2 | 多用户没有网络 |
3 | 多用户状态有网络 |
4 | 未使用 |
5 | 图形界面 |
6 | 系统重启 |
指定运行级别:/etc/inittab
中的id:5:initdefault
数字,常用的有3和5级别
切换到指定级别的指令:init [0123456]
系统帮助命令
man [命令或配置文件] (功能描述:获得帮助信息)
除了可以使用man手册获得命令帮助之外,还可以查询系统c函数的说明。
man strlen
help 命令 (功能描述:获得shell内置命令的帮助信息)
文件目录类
pwd 指令
显示当前工作目录的绝对路径
ls [选项] [目录或文件]
ls -al
查看当前目录的文件信息,包括隐藏的
cd [参数]
切换到指定目录cd /home
, cd ..
, cd ~
mkdir [选项] 文件目录
创建文件目录:mkdir -p /home/dog/dahuang
,-p
表示创建多级文件目录。
rmdir [选项] 需要删除的空目录
如果不是空目录无法删除
rm -rf 目录
强制递归删除目录,包括里面的文件
touch xxx.txt
创建一个空的文件
cp [选项] source dest
赋值文件到指定目录,加上-r
选项,递归整个文件夹。
rm [选项] 待删除的文件或目录
-r
递归整个文件夹
-f
强制删除不再提示
mv oldNameFile newNameFile 重命名文件
mv /xx/xxx /target/xx/xx 移动文件
文件移动或者重命名操作。
查看文件
cat [选项] 需要查看的文件
可以使用-n
选项来显示行号
more 要查看的文件
操作 | 说明 |
---|---|
空格 | 下翻一页 |
Enter | 下翻一行 |
q | 离开more |
Ctrl+F | 向下滚动一屏 |
Ctrl+B | 返回上一屏 |
= | 输出当前行号 |
:f | 输出文件名和当前行的行号 |
less 要查看的文件
可以显示大型文件,常用操作。
操作 | 说明 |
---|---|
空格 | 下翻一页 |
pagedown | 下翻一页 |
pageup | 上翻一页 |
/字串 | 向下检索,n 向下查找 N向上查找 |
?字串 | 向上检索,n 向上查找 N 向下查找 |
q | 退出 |
head [选项] 文件
默认显示文件的前10行内容。head -n 5 文件
,显示文件前5行文件。
tail 文件 (功能描述:查看文件后10行内容)
tail -n 5 文件 (功能描述:查看文件后5行内容, 5可以是任意函数)
tail -f 文件 (功能描述: 实时追踪文件的所有更新)
符号链接
ln -s [源文件或目录] [软链接名]
例子:ln -s /root linkToRoot
, 在本地文件夹中创建一个链接linkToRoot
到/root
的软链接。想要删除软链接的话可以使用rm -rf linkToRoot
输出相关
>
覆盖式输出重定向
ls -l > a.txt
把文件列表重定向至a.txt
中,文件不存在就创建文件。
>>
追加式输出重定向
ls -l >> a.txt
将ls -l
命令产生的数据追加到a.txt
文件的尾部。
例子:cat /etc/profile > c.txt
将文件profile
拷贝到c.txt
中。
echo [选项] [输出内容]
输出内容到控制台,例子:echo ${PATH}
将环境变量path
输出到控制台
查看执行过历史命令
history
显示最近使用过的10个指令。
使用!123
可以执行历史中第123条指令。
时间和日期类
date
显示当前时间
date "+%Y"
显示当前年份
date "+%m"
显示当前月份
date "+%d"
显示当前是哪一天
date "+%Y-%m-%d %H:%M:%S"
显示年月日时分秒。
date -s "2020-10-10 11:22:33"
设置时间为字符串中对应的时间。
cal [-mjy] [月份] [年份]
打印日历
选项 | 说明 |
---|---|
1 | 显示单月输出 |
3 | 显示临近3个月的日历 |
s | 将星期日作为月的第一天 |
m | 显示星期一作为一周的第一天 |
j | 显示儒略历 |
y | 显示当前年份的日历 |
搜索查找类
find [搜索范围] [选项]
从指定目录向下递归地遍历其各个子目录,将满足条件的文件或目录显示在终端。
选项 | 说明 |
---|---|
name | 按照指定文件名查找文件 |
user | 查找属于指定用户的所有文件 |
size | 按照指定的文件大小查找文件 |
例子:find /home -name hello.txt
find /opt -user nobody
find / -size +20M
文件大于20Mfind / -size -20M
文件小于20Mfind / -size 20M
文件相等20M
locate 搜索文件
本地数据库存储文件的索引,能够更快的查找到问文件。updatedb
更新数据库。
grep [选项] 查找内容 源文件
-n
显示匹配行的行号-i
忽略大小写
例子:cat hello.txt | grep -n yes
cat hello.txt | grep -ni yes
压缩和解压
gzip 文件
压缩文件成*.gz
文件
gunzip 文件.gz
解压.gz
压缩文件
zip [选项] xxx.zip 要压缩的内容
压缩文件和目录命令,使用-r
递归压缩,压缩文件。
unzip [选项] xxx.zip
解压*.zip
文件,选项-d
指定解压的文件夹。
tar [选项] XXX.tar.gz 打包的内容
打包目录,压缩后的文件格式为tar.gz
,
选项说明
选项 | 说明 |
---|---|
-c | 产生tar打包文件 |
-v | 显示详细信息 |
-f | 指定压缩后的文件名 |
-z | 打包同时压缩 |
-x | 解包tar文件 |
例子:tar -zcvf a.tar.gz a.txt b.txt
将a.txt
文件和b.txt
文件压缩为a.tar.gz
tar -zxvf a.tar.gz -C /opt/
将a.tar.gz
解压到/opt
文件夹内,注意文件夹必须事先存在。
组管理和权限管理
chown 用户名:组名 文件名
修改文件所有者
例子:chown other:other a.txt
,将a.txt
文件的文件所有者改为other用户 other组。第一个参数为用户,第二个参数为组。chown test a.txt
, 将a.txt
的所有者更改为。
groupadd 组名
添加新的组名
usermod -g 组名:用户名
改变用户所在的组。
权限说明
-rwxrw-r-
- 第0位 确定文件类型(d,-,l,c,b)
d
:目录,-
:普通文件,l
:软连接,c
:字符设备(键盘、鼠标),b
:块文件,硬盘 - 第1-3位 确定所有者拥有的文件权限 –User
- 第4-6位 确定所在组拥有的该文件的权限 –Group
- 第7-9位 确定其他用户拥有该文件的权限 –Other
rwx说明
- r 读(4)
- w 写(2)
- x 可执行(1)
-rwxrw-r-- 1 root root 1213 Feb 2 09:39 abc
其它信息:1
: 硬链接或者子目录个数root
: 用户root
: 组1213
: 文件的大小(字节)Feb 2 09:39
: 最后修改日期abc
: 文件名
权限修改-chmod
其中u为用户,g为组,o为other,a为所有
(1)方式一: + ,-, =变更
chmod u=rwx,g=rx,o=x 文件/目录名
chmod o + w 文件目录
chmod a - x 文件目录
(2) 方式二: 数字变更
chmod 751 文件目录
等价于
chmod u=rwx,g=rx,o=x 文件目录
修改文件所有者
chown newonwer file 改变文件的所有者
chown newower:newgroup file 改变文件所属的所有者和所有组,-R递归变更。
修改文件所在组
chgrp newgroup file
参数-R
,递归修改。
crond任务调度
crontab [options]
- -e 编辑定时任务
- -l 查询定时任务
- -r 删除当前用户的所有定时任务