Linux命令格式 命令名称【命令参数】【命令对象】
命令名称:就是语法中的“动词”,表达的是想要做的事情,例如创建用户、查看文件、重启系统等操作。
命令参数:用于对命令进行调整,让“修改”过的命令能更好地贴合工作需求,达到事半功倍的效果。就像买衣服一样,衣服的尺码总会感觉偏大或偏小,要么只能将就着穿,要么就再裁剪修改一下,而这种对命令进行“裁剪”的行为就是加参数。例如创建一个编码为888的用户、仅查看文件的前20行、重启系统前先提醒其他用户等。参数可以用长格式(完整的选项名称),也可以用短格式(单个字母的缩写),两者分别用“--”与“-”作为前缀
长格式 man --help
短格式 man -h
命令对象:一般指要处理的文件、目录、用户等资源名称,也就是命令执行后的“承受方”。例如创建一位叫小明的用户、查看一个叫工资表的文件、重启一个IP为192.168.10.10的系统等。
一、文件管理
1、ls命令 – 显示指定工作目录下的文件及属性信息
常用参数:
-a | 显示所有文件及目录 (包括以“.”开头的隐藏文件) |
-l | 使用长格式列出文件及目录的详细信息 |
-r | 将文件以相反次序显示(默认依英文字母次序) |
-t | 根据最后的修改时间排序 |
-A | 同 -a ,但不列出 “.” (当前目录) 及 “..” (父目录) |
-S | 根据文件大小排序 |
-R | 递归列出所有子目录 |
-d | 查看目录的信息,而不是里面子文件的信息 |
-i | 输出文件的inode节点信息 |
-m | 水平列出文件,以逗号间隔 |
-X | 按文件扩展名排序 |
--color | 输出信息中带有着色效果 |
2、cp命令 – 复制文件或目录
常用参数:
-f | 若目标文件已存在,则会直接覆盖原文件 |
-i | 若目标文件已存在,则会询问是否覆盖 |
-p | 保留源文件或目录的所有属性 |
-r | 递归复制文件和目录 |
-d | 当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录 |
-l | 对源文件建立硬连接,而非复制文件 |
-s | 对源文件建立符号连接,而非复制文件 |
-b | 覆盖已存在的文件目标前将目标文件备份 |
-v | 详细显示cp命令执行的操作过程 |
-a | 等价于“pdr”选项 |
参考实例:
在当前工作目录中,将某个文件复制一份,并定义新文件名称:
cp anaconda-ks.cfg kickstart.cfg
在当前工作目录中,将某个目录复制一份,并定义新目录名称:
cp -r Documents Doc
复制某个文件时,保留其原始权限及用户归属信息:
cp -a kickstart.cfg ks.cfg
将某个文件复制到/etc目录中,并覆盖已有文件,不进行询问:
cp -f ks.cfg /etc
将多个文件一同复制到/etc目录中,如已有目标文件名称则默认询问是否覆盖:
cp anaconda-ks.cfg ks.cfg /etc
cp: overwrite '/etc/ks.cfg'? y
3、mkdir命令 – 创建文件夹
常用参数:
-p | 递归创建多级目录 |
-m | 建立目录的同时设置目录的权限 |
-z | 设置安全上下文 |
-v | 显示目录的创建过程 |
参考实例:
在当前工作目录中,建立一个目录文件:
mkdir dir1
在当前工作目录中,创建一个目录文件并设置700权限,不让除所有主以外任何人读、写、执行它:
mkdir -m 700 dir2
在当前工作目录中,一次性创建多个目录文件:
mkdir dir3 dir4 dir5
在系统根目录中,一次性创建多个有嵌套关系的目录文件:
mkdir -p /dir1/dir2/dir3/dir4/dir5
4、mv命令 – 移动或改名文件
常用参数:
-i | 若存在同名文件,则向用户询问是否覆盖 |
-f | 覆盖已有文件时,不进行任何提示 |
-b | 当文件存在时,覆盖前为其创建一个备份 |
-u | 当源文件比目标文件新,或者目标文件不存在时,才执行移动此操作 |
参考实例:
在当前工作目录中,对某个文件进行剪切后粘贴(重命名)操作:
mv anaconda-ks.cfg ks.cfg
将某个文件移动到/etc目录中,保留文件原始名称:
mv ks.cfg /etc
将某个目录移动到/etc目录中,并定义新的目录名称:
mv Documents /etc/docs
将/home目录中所有的文件都移动到当前工作目录中,遇到已存在文件则直接覆盖:
mv -f /home/* .
5、pwd命令 – 显示当前工作目录的路径
常用参数:
-L | 显示逻辑路径 |
6、touch命令 – 创建空文件与修改时间戳
常用参数:
-a | 改变档案的读取时间记录 |
-m | 改变档案的修改时间记录 |
-r | 使用参考档的时间记录,与 --file 的效果一样 |
-c | 不创建新文件 |
-d | 设定时间与日期,可以使用各种不同的格式 |
-t | 设定档案的时间记录,格式与 date 命令相同 |
--no-create | 不创建新文件 |
--help | 显示帮助信息 |
--version | 列出版本讯息 |
参考实例:
创建出一个指定名称的空文件:
touch File.txt
结合通配符,创建出多个指定名称的空文件:
touch File{1..5}.txt
修改指定文件的查看时间和修改时间:
touch -d "2022-05-08 15:44" anaconda-ks.cfg
stat anaconda-ks.cfg
7、more命令 – 显示文本文件内容
常用参数:
-num | 指定每屏显示的行数 |
-l | more在通常情况下把 ^L 当作特殊字符, 遇到这个字符就会暂停,-l选项可以阻止这种特性 |
-f | 计算实际的行数,而非自动换行的行数 |
-p | 先清除屏幕再显示文本文件的剩余内容 |
-c | 与-p相似,不滚屏,先显示内容再清除旧内容 |
-s | 多个空行压缩成一行显示 |
-u | 禁止下划线 |
+/pattern | 在每个文档显示前搜寻该字(pattern),然后从该字串之后开始显示 |
+num | 从第 num 行开始显示 |
参考实例:
显示文件file的内容,显示之前先清屏,附已显示的百分比:
more -dc 文件名
显示文件file的内容,每10行显示一次,而且在显示之前先清屏:
more -c -10 文件名
显示文件file的内容,每5行显示一次,而且在显示之后再清屏:
more -p -5 文件名
逐页显示 file 文档内容,如有连续两行以上空白行则以一行空白行显示 :
more -s 文件名
从第 20 行开始显示 file 之文档内容 :
more +20 文件名
8、which命令 – 查找文件
常用参数:
-n | 指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名 |
-p | 与-n参数相同,但此处的<文件名长度>包括了文件的路径 |
-w | 指定输出时栏位的宽度 |
-V | 显示版本信息 |
参考实例:
查找文件、显示命令路径:
which bash
which adduser说明:which 是根据使用者所配置的 PATH 变量内的目录去搜寻可运行档的!所以,不同的 PATH 配置内容所找到的命令当然不一样的!
使用which去找which:
which which
说明:竟然会有两个 which ,其中一个是 alias 这就是所谓的[命令别名],意思是输入 which 会等于后面接的那串命令! 实Bash内建命令无法查找到如cd命令 :
which cd
9、find命令 – 根据路径和条件搜索指定文件
常用参数:
-name | 匹配名称 |
-perm | 匹配权限(mode为完全匹配,-mode为包含即可) |
-user | 匹配所有者 |
-group | 匹配所有组 |
-mtime -n +n | 匹配修改内容的时间(-n指n天以内,+n指n天以前) |
-atime -n +n | 匹配访问文件的时间(-n指n天以内,+n指n天以前) |
-ctime -n +n | 匹配修改文件权限的时间(-n指n天以内,+n指n天以前) |
-nouser | 匹配无所有者的文件 |
-nogroup | 匹配无所有组的文件 |
-newer f1 !f2 | 匹配比文件f1新但比f2旧的文件 |
-type b/d/c/p/l/f | 匹配文件类型(后面的字幕字母依次表示块设备、目录、字符设备、管道、链接文件、文本文件) |
-size | 匹配文件的大小(+50KB为查找超过50KB的文件,而-50KB为查找小于50KB的文件) |
-prune | 忽略某个目录 |
-exec …… {}\; | 后面可跟用于进一步处理搜索结果的命令 |
参考实例:
全盘搜索系统中所有以.conf结尾的文件:
find / -name *.conf
在/etc目录中搜索所有大于1M大小的文件:
find /etc -size +1M
在/home目录中搜索所有属于指定用户的文件:
find /home -user linux
列出当前工作目录中的所有文件、目录以及子文件信息:
find .
在/var/log目录下搜索所有指定后缀的文件,后缀不区分大小写。
find /var/log -iname "*.log"
在/var/log目录下搜索所有后缀不是.log的文件:
find /var/log ! -name "*.log"
搜索当前工作目录中的所有近7天被修改过的文件:
find . -mtime +7
全盘搜索系统中所有类型为目录,且权限为1777的目录文件:
find / -type d -perm 1777
全盘搜索系统中所有类型为普通文件,且可以执行的文件信息:
find / -type f -perm /a=x
全盘搜索系统中所有后缀为.mp4的文件,并删除所有查找到的文件:
find / -name "*.mp4" -exec rm -rf {} \;
10、chmod命令 - 改变文件或目录权限
常用参数:
-c | 若该文件权限确实已经更改,才显示其更改动作 |
-f | 若该文件权限无法被更改也不显示错误讯息 |
-v | 显示权限变更的详细资料 |
-R | 对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更) |
参考实例:
设定某个文件的权限为775:
chmod 775 anaconda-ks.cfg
设定某个文件让任何人都可以读取:
chmod a+r anaconda-ks.cfg
设定某个目录及其内子文件任何人都可以读取和读取:
chmod -R a+r Documents
设定某个二进制命令文件上新增SUID特殊权限位:
chmod u+s /sbin/reboot
11、less命令 – 分页显示工具
常用参数:
-b | 置缓冲区的大小 |
-e | 当文件显示结束后,自动离开 |
-f | 强迫打开特殊文件,例如外围设备代号、目录和二进制文件 |
-g | 只标志最后搜索的关键词 |
-i | 忽略搜索时的大小写 |
-m | 显示类似more命令的百分比 |
-N | 显示每行的行号 |
-o | 将less 输出的内容在指定文件中保存起来 |
-Q | 不使用警告音 |
-s | 显示连续空行为一行 |
-S | 在单行显示较长的内容,而不换行显示 |
-x | 将TAB字符显示为指定个数的空格字符 |
参考实例:
查看文件 :
less test.php
ps查看进程信息并通过less分页显示:
ps -ef | less
查看命令历史使用记录并通过less分页显示:
history | less
浏览多个文件 :
less log2018.log log2019.log
less file1
12、chown命令 – 改变文件或目录的用户和用户组
常用参数:
-R | 对目前目录下的所有文件与目录进行相同的变更 |
-c | 显示所属信息变更信息 |
-f | 若该文件拥有者无法被更改也不要显示错误 |
-h | 只对于链接文件进行变更,而非真正指向的文件 |
-v | 显示拥有者变更的详细资料 |
--help | 显示辅助说明 |
--version | 显示版本 |
参考实例:
改变指定文件的所属主与所属组:
chown root:root /etc/fstab
改变指定文件的所属主与所属组,并显示过程:
chown -c linuxprobe:linuxprobe /etc/fstab
改变指定目录及其内所有子文件的所属主与所属组:
chown -R root:root /etc
13、awk命令 – 文本和数据进行处理的编程语言
常用参数:
-F | 指定输入时用到的字段分隔符 |
-v | 自定义变量 |
-f | 从脚本中读取awk命令 |
-m | 对val值设置内在限制 |
参考实例:
仅显示指定文件中第1、2列的内容(默认以空格为间隔符):
awk '{print $1,$2}' anaconda-ks.cfg
以冒号为间隔符,仅显示指定文件中第1列的内容:
awk -F : '{print $1}' /etc/passwd
以冒号为间隔符,显示系统中所有UID号码大于500的用户信息(第3列):
awk -F : '$3>=500' /etc/passwd
仅显示指定文件中含有指定关键词root的内容:
awk '/root/{print}' anaconda-ks.cfg
以冒号为间隔符,仅显示指定文件中最后一个字段的内容:
awk -F: '{print $NF}' /etc/passwd
二、文档编辑
14、cat命令 – 在终端设备上显示文件内容
常用参数:
-n | 显示行数(空行也编号) |
-s | 显示行数(多个空行算一个编号) |
-b | 显示行数(空行不编号) |
-E | 每行结束处显示$符号 |
-T | 将TAB字符显示为 ^I符号 |
-v | 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外 |
-e | 等价于”-vE”组合 |
-t | 等价于”-vT”组合 |
-A | 等价于 -vET组合 |
--help | 显示帮助信息 |
--version | 显示版本信息 |
参考实例:
查看某个文件的内容:
cat anaconda-ks.cfg
查看某个文件的内容,并显示行号:
cat -n anaconda-ks.cfg
搭配空设备文件和输出重定向操作符,将某个文件内容清空:
cat /dev/null > anaconda-ks.cfg
cat anaconda-ks.cfg
持续写入文件内容,直到碰到WQ符后才会结束并保存:
cat > anaconda-ks.cfg << WQ
cat anaconda-ks.cfg
搭配输出重定向操作符,将光盘设备制作成镜像文件:
cat /dev/cdrom > rhel.iso
ls rhel.iso -lh
15、echo命令 – 输出字符串或提取后的变量值
常用参数:
-n | 不输出结尾的换行符 |
-e “\a” | 发出警告音 |
-e “\b” | 删除前面的一个字符 |
-e “\c” | 结尾不加换行符 |
-e “\f” | 换行,光标扔停留在原来的坐标位置 |
-e “\n” | 换行,光标移至行首 |
-e “\r” | 光标移至行首,但不换行 |
-E | 禁止反斜杠转移,与-e参数功能相反 |
—version | 查看版本信息 |
--help | 查看帮助信息 |
参考实例:
输出指定字符串到终端设备界面(默认为电脑屏幕):
echo HelloLinux
输出某个变量值内容:
echo $PATH
搭配转义符一起使用,输出纯字符串内容:
echo \$PATH
搭配输出重定向符一起使用,将字符串内容直接写入文件中:
echo "Hello World" > Document
搭配反引号执行命令,并将执行结果输出:
echo `uptime`
输出带有换行符的内容:
echo -e "First\nSecond\nThird"
指定删除字符串中某些字符,随后将内容输出:
echo -e "123\b456"
16、rm命令 – 删除文件或目录
常用参数:
-f | 强制删除(不二次询问) |
-i | 删除前会询问用户是否操作 |
-r/R | 递归删除 |
-v | 显示指令的详细执行过程 |
参考实例:
删除某个文件,默认会进行二次确认,敲击y进行确认。
rm anaconda-ks.cfg
删除某个文件,强制操作不需要二次确认:
rm -f initial-setup-ks.cfg
删除某个目录及其内的子文件或子目录,一并都强制删除:
rm -rf Documents
强制删除当前工作目录内的所有以.txt为后缀的文件
rm -f *.txt
17、tail命令 – 查看文件尾部内容
常用参数:
-c | 输出文件尾部的N(N为整数)个字节内容 |
-f | 持续显示文件最新追加的内容 |
-F <N> | 与选项“-follow=name”和“--retry”连用时功能相同 |
-n <N> | 输出文件的尾部N(N位数字)行内容 |
--retry | 即是在tail命令启动时,文件不可访问或者文件稍后变得不可访问,都始终尝试打开文件。 |
--pid=<进程号> | 与“-f”选项连用,当指定的进程号的进程终止后,自动退出tail命令 |
--help | 显示指令的帮助信息 |
--version | 显示指令的版本信息 |
参考实例:
默认显示某个文件尾部的后10行内容:
tail initial-setup-ks.cfg
指定显示某个文件尾部的后5行内容:
tail -n 5 initial-setup-ks.cfg
指定显示某个文件尾部的后15个字节:
tail -c 30 initial-setup-ks.cfg
持续刷新显示某个文件尾部的后10行内容:
tail -f /var/log/messages
18、grep命令 – 强大的文本搜索工具
常用参数:
-i | 忽略大小写 |
-c | 只输出匹配行的数量 |
-l | 只列出符合匹配的文件名,不列出具体的匹配行 |
-n | 列出所有的匹配行,显示行号 |
-h | 查询多文件时不显示文件名 |
-s | 不显示不存在、没有匹配文本的错误信息 |
-v | 显示不包含匹配文本的所有行 |
-w | 匹配整词 |
-x | 匹配整行 |
-r | 递归搜索 |
-q | 禁止输出任何结果,已退出状态表示搜索是否成功 |
-b | 打印匹配行距文件头部的偏移量,以字节为单位 |
-o | 与-b结合使用,打印匹配的词据文件头部的偏移量,以字节为单位 |
-F | 匹配固定字符串的内容 |
-E | 支持扩展的正则表达式 |
参考实例:
搜索某个文件中,包含某个关键词的内容:
grep root /etc/passwd
搜索某个文件中,以某个关键词开头的内容:
grep ^root /etc/passwd
搜索多个文件中,包含某个关键词的内容:
grep linux /etc/passwd /etc/shadow
搜索多个文件中,包含某个关键词的内容,不显示文件名称:
grep -h linuxprobe /etc/passwd /etc/shadow
输出在某个文件中,包含某个关键词行的数量:
grep -c root /etc/passwd /etc/shadow
搜索某个文件中,包含某个关键词位置的行号及内容:
grep -n network anaconda-ks.cfg
搜索某个文件中,不包含某个关键词的内容:
grep -v nologin /etc/passwd
搜索当前工作目录中,包含某个关键词内容的文件,未找到则提示:
grep -l root *
搜索当前工作目录中,包含某个关键词内容的文件,未找到不提示:
grep -sl root *
递归搜索,不仅搜索指定目录,还搜索其内子目录内是否有关键词文件:
grep -srl root /etc
搜索某个文件中,精准匹配到某个关键词的内容(搜索词应与整行内容完全一样才会显示,有别于一般搜索):
grep -x cd anaconda-ks.cfg
grep -x cdrom anaconda-ks.cfg
判断某个文件中,是否包含某个关键词,通过返回状态值输出结果(0为包含,1为不包含),方便在Shell脚本中判断和调用:
grep -q linuxprobe anaconda-ks.cfg
echo $?
grep -q linuxcool anaconda-ks.cfg
echo $?
搜索某个文件中,空行的数量:
grep -c ^$ anaconda-ks.cfg
19、tr命令 – 字符转换
常用参数:
-c | 选定字符串1中字符集的补集,即反选字符串1的补集 |
-d | 删除字符串1中出现的所有字符 |
-s | 删除所有重复出现的字符序列,只保留一个 |
参考实例:
实现大小字母的转换:
cat file_1
tr "[a-z]" "[A-Z]" <file_1删除file_1中的小写字母:
tr -d "[a-z]" <file_1
压缩重复的空白行:
cat file_2
tr -s "[\n]" <file_2
20、expr命令 – 命令行计数器
常用参数:
空格 | 隔开每个项 |
\(反斜杠) | 放在 shell 特定的字符前面 |
“”(引号) | 对包含空格和其他特殊字符的字符串要用引号括起来 |
参考实例:
计算字串长度:
[root@localhost ~]# expr length “this is a test”
14抓取字串:
[root@localhost ~]# expr substr “this is a test” 3 5
is is抓取第一个字符串出现的位置:
[root@localhost ~]# expr index "sarasara" a
2整数运算:
[root@localhost ~]# expr 14 % 9
5
[root@localhost ~]# expr 10 + 10
20
[root@localhost ~]# expr 1000 + 900
1900
[root@localhost ~]# expr 30 / 3 / 2
5
[root@localhost ~]# expr 30 * 3
expr: Syntax error
[root@localhost ~]# expr 30 \* 3
90注意:使用乘号时,必须用反斜线屏蔽其特定含义。因为shell可能会误解显示星号的意义
使用expr进行四则运算:
[root@localhost ~]# expr \( 10 + 10 \) \* 2 + 100
140
21、sed命令 – 批量编辑文本文件
常用参数:
-e或--expression=<script> | 以指定的脚本来处理输入的文本文件 |
-f<script文件>或--file=<script文件> | 以指定的脚本文件来处理输入的文本文件 |
-h或--help | 显示帮助 |
-n或--quiet或--silent | 仅显示script处理后的结果 |
-V或--version | 显示版本信息 |
参考实例:
查找指定文件中带有某个关键词的行:
[root@locahost ~]# cat -n anaconda-ks.cfg | sed -n '/root/p'
替换指定文件中某个关键词成大写形式:
[root@locahost ~]# sed 's/root/ROOT/g' anaconda-ks.cfg
………………省略输出信息………………
读取指定文件,删除所有带有某个关键词的行:
[root@linuxcool ~]# sed '/root/d' anaconda-ks.cfg
………………省略输出信息………………
读取指定文件,在第4行后插入一行新内容:
[root@locahost ~]# sed -e 4a\NewLine anaconda-ks.cfg
#version=RHEL8
ignoredisk --only-use=sda
autopart --type=lvm
# Partition clearing information
NewLine
………………省略部分输出信息………………
读取指定文件,在第4行后插入多行新内容:
[root@locahost ~]# cat anaconda-ks.cfg | sed -e '4a NewLine1 \
> NewLine2 \
> NewLine3 '
#version=RHEL8
ignoredisk --only-use=sda
autopart --type=lvm
# Partition clearing information
NewLine1
NewLine2
NewLine3
clearpart --none --initlabel
# Use graphical install
graphical
………………省略部分输出信息………………
读取指定文件,删除第2-5行的内容:
cat -n /etc/passwd | sed '2,5d'
读取指定文件,替换第2-5行的内容:
sed '2,5c NewSentence' anaconda-ks.cfg
指定读取某个文件的第3-7行:
sed -n '3,7p' anaconda-ks.cfg
三、系统管理
22、top命令 – 实时显示系统运行状态
常用参数:
-d <秒> | 改变显示的更新速度 |
-c | 切换显示模式 |
-s | 安全模式,不允许交互式指令 |
-i | 不显示任何闲置或僵死的行程 |
-n | 设定显示的总次数,完成后将会自动退出 |
-b | 批处理模式,不进行交互式显示 |
参考实例:
以默认格式显示系统运行信息:
top
以默认格式显示系统运行信息,但提供完整的进程路径及名称:
top -c
以批处理模式显示程序信息:
top -b
设定每隔5秒刷新一次信息:
top -d 5
设定总显示次数为3回,随后自动退出命令:
top -n 5
23、rpm命令 – RPM软件包管理器
常用参数:
-a | 查询所有的软件包 |
-b或-t | 设置包装套件的完成阶段,并指定套件档的文件名称; |
-c | 只列出组态配置文件,本参数需配合”-l”参数使用 |
-d | 只列出文本文件,本参数需配合”-l”参数使用 |
-e | 卸载软件包 |
-f | 查询文件或命令属于哪个软件包 |
-h | 安装软件包时列出标记 |
-i | 安装软件包 |
-l | 显示软件包的文件列表 |
-p | 查询指定的rpm软件包 |
-q | 查询软件包 |
-R | 显示软件包的依赖关系 |
-s | 显示文件状态,本参数需配合”-l”参数使用 |
-U | 升级软件包 |
-v | 显示命令执行过程 |
-vv | 详细显示指令执行过程 |
参考实例:
正常安装软件包:
rpm -ivh cockpit-185-2.el8.x86_64.rpm
显示系统已安装过的全部RPM软件包:
rpm -qa
查询某个软件的安装路径:
rpm -ql cockpit
卸载某个通过RPM软件包安装的服务:
rpm -evh cockpit
升级某个软件包:
rpm -Uvh cockpit-185-2.el8.x86_64.rpm
24、sudo命令 – 授权普通用户执行管理员命令
常用参数:
-v | 本次需要验证当前用户的密码 |
-k | 下次强制验证当前用户的密码 |
-b | 将要执行的指令放在后台执行 |
-p | 更改需要密码验证时的提示语 |
-s | 指定默认调用的SHELL解释器 |
参考实例:
查看当前用户有哪些被sudo服务授权的命令:
sudo -l
使用某个被sudo服务允许的用户身份来执行管理员的重启命令:
sudo -u linuxprobe "reboot"
使用当前用户身份,基于sudo命令来执行管理员的重启命令:
sudo reboot
25、whoami - 打印当前登录用户
常用参数:
--help | 在线帮助 |
--version | 显示版本信息 |
参考实例:
查询当前登录的用户名:
whoami
26、useradd命令 – 创建并设置用户信息
常用参数:
-D | 改变新建用户的预设值 |
-c | 添加备注文字 |
-d | 新用户每次登陆时所使用的家目录 |
-e | 用户终止日期,日期的格式为YYYY-MM-DD |
-f | 用户过期几日后永久停权。当值为0时用户立即被停权,而值为-1时则关闭此功能,预设值为-1 |
-g | 指定用户对应的用户组 |
-G | 定义此用户为多个不同组的成员 |
-m | 用户目录不存在时则自动创建 |
-M | 不建立用户家目录,优先于/etc/login.defs文件设定 |
-n | 取消建立以用户名称为名的群组 |
-r | 建立系统帐号 |
-u | 指定用户id |
参考实例:
创建指定的用户信息:
useradd user1
创建指定的用户信息,但不创建家目录,亦不让登录系统:
useradd -M -s /sbin/nologin user2
创建指定的用户信息,并自定义UID值:
useradd -u 6688 user3
创建指定的用户信息,并追加指定组为该账户的扩展组:
useradd -G root user4
创建指定的用户信息,并指定过期时间:
useradd -e "2023/01/01" user5
27、su命令 – 切换用户身份
常用参数:
单个减号(-) | 完全身份变更 |
-c | 执行完指定的指令后,即恢复原来的身份 |
-f | 适用于csh与tsch,使shell不用去读取启动文件 |
-l | 改变身份时,也同时变更工作目录 |
-m | 变更身份时,不要变更环境变量 |
-s | 指定要执行的shell |
--help | 显示帮助信息 |
--version | 显示版本信息 |
参考实例:
变更至指定用户身份:
su linuxcool
完全变更至指定用户身份:
su - linuxcool
28、reboot命令 - 重启系统
reboot命令用于重启系统,输入该命令后按回车键执行即可。
29、poweroff命令 - 关闭系统
poweroff命令用于关闭系统,输入该命令后按回车键执行即可。
30、kill命令 - 终止指定进程
强制停止sshd服务。
kill 2156
但有时系统会提示进程无法被终止,此时可以加参数-9,表示最高级别地强制杀死进程:
kill -9 2156
31、id命令 – 显示用户ID和组ID
常用参数:
-g | 显示用户所属群组的ID |
-G | 显示用户所属附加群组的ID |
-n | 显示用户,所属群组或附加群组的名称 |
-r | 显示实际ID |
-u | 显示用户ID |
--help | 显示帮助 |
--version | 显示版本信息 |
参考实例:
显示当前用户的所有信息:
id
显示用户所属群组的ID:
id -g
显示用户所属附加群组的ID:
id -G
显示指定用户信息:
id root
四、其他命令
32、du命令 – 查看文件或目录的大小
常用参数:
-a | 显示目录中所有文件大小 |
-k | 以KB为单位显示文件大小 |
-m | 以MB为单位显示文件大小 |
-g | 以GB为单位显示文件大小 |
-h | 以易读方式显示文件大小 |
-s | 仅显示总计 |
参考实例:
以易读的容量格式显示指定目录内各个文件的大小信息:
du -h /etc
以易读的容量格式显示指定目录内总文件的大小信息:
du -sh /etc
显示指定文件的大小信息(默认单位为K):
du anaconda-ks.cfg
33、ping命令 – 测试主机间网络连通性
常用参数:
-d | 使用Socket的SO_DEBUG功能 |
-c | 指定发送报文的次数 |
-i | 指定收发信息的间隔时间 |
-I | 使用指定的网络接口送出数据包 |
-l | 设置在送出要求信息之前,先行发出的数据包 |
-n | 只输出数值 |
-p | 设置填满数据包的范本样式 |
-q | 不显示指令执行过程 |
-R | 记录路由过程 |
-s | 设置数据包的大小 |
-t | 设置存活数值TTL的大小 |
-v | 详细显示指令的执行过程 |
-W | 在等待 timeout 秒后开始执行 |
参考实例:
测试与指定网站服务器之间的网络连通性(需手动按下“Ctrl+c”组合键结束命令):
ping www.linuxcool.com
测试与指定网站服务器之间的网络连通性,发送请求包限定为4次:
ping -c 4 www.linuxcool.com
测试与指定主机之间的网络连通性,发送3次请求包,每次间隔0.2秒,最长等待时间为3秒:
ping -c 3 -i 0.2 -W 3 192.168.10.10
34、head命令 – 显示文件开头内容
常用参数:
-n | 后面接数字,代表显示几行的意思 |
-c | 指定显示头部内容的字符数 |
-v | 总是显示文件名的头信息 |
-q | 不显示文件名的头信息 |
参考实例:
显示前3行文件内容:
head -n 3 install.log
显示文件名信息,并显示文件前两行:
head -v -n 2 test.txt
显示文件前5个字符:
head -c 5 test.txt
35、history命令 – 显示与操纵历史命令
常用参数:
-a | 写入命令记录 |
-c | 清空命令记录 |
-d | 删除指定序号的命令记录 |
-n | 读取命令记录 |
-r | 读取命令记录到缓冲区 |
-s | 将指定的命令添加到缓冲区 |
-w | 将缓冲区信息写入到历史文件 |
参考实例:
显示执行过的全部命令记录:
history
显示执行过的最近5条命令:
history 5
将本次缓存区信息写入到历史文件中(~/.bash_history):
history -w
将历史文件中的信息读入到当前缓冲区中:
history -r
将本次缓冲区信息追加写入到历史文件中(~/.bash_history):
history -a
清空本次缓冲区及历史文件中的信息:
history -c