Red Hat基本命令的使用
1.1 输入命令的语法
在终端执行命令需要遵照一定的语法,输入命令的格式如下
命令 参数
命令 -选项 参数
输入命令时可以包含多个选项,假如一个命令有-a、-b、-c、-d四个选项,可以写作:
命令 -a -b -c -d 参数
这里多个选项可以“提前公因式”,写作:
命令 -abcd 参数
这里会把-abcd当成-a、-b、-c、-d四个选项。
如果一个单词(多个字母)作为一个选项使用,要使用两个“--”。
[root@RedHat ~]# ls -help
ls: 不适用的选项 -- e
请尝试执行 "ls --help" 来获取更多信息。
[root@RedHat ~]#
这里会把-help当成四个选项:-h、-e、-l、-p。但是我们知道help是一个单词,应该作为一个选项出现,所以前面应该是两个“--”。
[root@RedHat ~]# ls --help
用法:ls [选项]... [文件]...
我们先看几个常见命令的使用。
第一个命令是ls,ls的作用是列出一个目录中的内容,类似Windows CMD命令下的dir命令。
[root@RedHat ~]# ls
公共 模板 视频 图片 文档 下载 音乐 桌面 anaconda-ks.cfg initial-setup-ks.cfg
[root@RedHat ~]#
这里ls并没有加任何参数,表示显示当前所在的工作目录。如何查看当前所在目录呢?可以使用pwd命令。
[root@RedHat ~]# pwd
/root
[root@RedHat ~]#
可以看到,命令中所在的目录是/boot,所以刚才ls查看的就是/boot目录中的内容。
ls命令可以加上一个-a选项,表示列吃所有的内容,包括隐藏文件。
[root@RedHat ~]# ls -a
. 视频 音乐 .bash_logout .config .ICEauthority .tcshrc
.. 图片 桌面 .bash_profile .cshrc initial-setup-ks.cfg .Xauthority
公共 文档 anaconda-ks.cfg .bashrc .dbus .local
模板 下载 .bash_history .cache .esd_auth .pki
[root@RedHat ~]#
在Linux中,所有以“.”开头的文件都是隐藏文件。
ls命令可以加上一个-l(字母)选项,表示以长模式的形式展现。
[root@RedHat ~]# ls -l anaconda-ks.cfg
-rw-------. 1 root root 1664 11月 27 12:34 anaconda-ks.cfg
[root@RedHat ~]#
这里展示了anaconda-ks.cfg相关的属性,包括所有者、所属组织和权限等。上面加粗字表示文件的大小,这里单位是B,但是看起来并不能很快识别具体大小,所以可以加上-h选项。
[root@RedHat ~]# ls -lh anaconda-ks.cfg
-rw-------. 1 root root 1.7K 11月 27 12:34 anaconda-ks.cfg
[root@RedHat ~]#
加上-h选项之后,会以更合适阅读的单位来显示。
在ls命令后如果以目录作为参数,则显示的是这个目录中的内容,如果想显示这个目录本身的属性,需要加上-d选项。
[root@RedHat ~]# ls -lhd /boot/
dr-xr-xr-x. 5 root root 4.0K 11月 27 13:24 /boot/
[root@RedHat ~]#
有人会有疑问,/boot目录中那么多东西,怎么才是4.0K?因为这里只显示了/boot目录本身的属性,并不包括目录里面内容的大小。例如,一个口袋重1斤,装了500斤的石头,口袋的重量仍然是1斤。
如果想显示目录及目录里面内容的总大小,则可以使用du命令。
[root@RedHat ~]# du -sh /boot/
218M /boot/
[root@RedHat ~]#
- -h选项是以适合阅读的单位来显示
- -s选项是摘要信息,只显示目录总大小,不显示子目录的大小,这里可以看到/boot及里面内容的总大小为218M。
下面介绍其它命令的使用。
直接输入date命令,可以显示日期和时间。
[root@RedHat ~]# date
2023年 11月 30日 星期四 11:45:56 CST
[root@RedHat ~]#
显示日历信息,用法是“cal 月 年”,例如,显示2025年8月的日历。
[root@RedHat ~]# cal 8 2025八月 2025
日 一 二 三 四 五 六1 23 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
[root@RedHat ~]#
如果不加月、年,则显示今年、本月的日历。
whoami命令可以显示当前是哪个用户在登录。
[root@RedHat ~]# whoami
root
[root@RedHat ~]#
屏幕内容太多,可以输入“clear”后,按【Enter】键清屏,或者按【Ctrl+I】组合键清屏。
命令行中的计算器是bc,bc加上-q选项,是以简洁模式显示。在bc中输入要计算的表达式,按【Enter】键即可。
[root@RedHat ~]# bc -q
11+11
22
可以看到。11+11得到的值为22。
[root@RedHat ~]# bc -q
11+11
22
5/2
2
这里计算5/2得到的值应该是2.5,但是答案却是2,因为默认情况下bc中并不保留小数点之后的部分。如果想保留小数点之后的部分,需要通过scale=N指定需要保留小数点之后的多少位,这里N是一个数字。例如,要保留小数点之后的2位,可以写出scale=2。
[root@RedHat ~]# bc -q
11+11
22
5/2
2
scale=2
5/2
2.50
quit
[root@RedHat ~]#
输入quit命令后,按【Enter】键,可以退出计算器。
输入命令时,如果遇到#,#后面的内容不会执行,而是作为注释。
如果输入了某个命令,不想执行该命令,可以按【Ctrl+C】组合键终止命令。
[root@RedHat ~]# whoami ^C
[root@RedHat ~]#
这里显示的^C是按【Ctrl+C】组合键之后显示在屏幕上。
1.2 介绍shell
在终端输入命令,必须对它进行解析,这个解释器就是shell,shell是一种进程。Linux支持很多种shell。
[root@RedHat ~]# whoami ^C
[root@RedHat ~]# cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
[root@RedHat ~]#
这里cat的意思是查看一个文本文件的内容,Linux默认使用的shell是bash。
1.2.1 tab补齐
在Linux中输入命令时不能简写,必须完整。先输入几个字符,例如,这里先输入“hi”,如果有以hi开头的命令,再按【Tab】键。
[root@RedHat ~]# hi<tab>
这里<tab>表示按【Tab】键,可以看到会自动补齐为history。
[root@RedHat ~]# history
因为在所有命令中,只有history这一个命令是以hi开头的。
如果有多个命令都是以输入的字符开头的,那么需要按两次【Tab】键,就可以把所有以这些字符开头的命令显示出来。例如,输入“h”,按两次【Tab】键。
[root@RedHat ~]# h<tab><tab>
这里<tab><tab>表示按了两次【Tab】键,得到的结果如下。
[root@RedHat ~]# h
halt hash hcitool hex2hcd hostid hwclock
handle-sshpw hciattach hdparm hexdump hostname hypervfcopyd
hangul hciconfig head history hostnamectl hypervkvpd
hardlink hcidump help host hunspell hypervvssd
[root@RedHat ~]#
1.2.2 历史命令
想查看前期输入过的命令,可以执行history命令。
[root@RedHat ~]# history1 ip add2 ls -help3 ls --help4 ls -help5 ls --help6 ls7 pwd8 ls -a9 ls -l /boot/anaconda-ks.cfg10 ls -l anaconda-ks.cfg 11 ls -lh anaconda-ks.cfg 12 ls -lhd /boot/13 du -sh /boot/14 date15 cal 8 202516 whoami17 bc -q18 cat /etc/shells 19* 20 history
[root@RedHat ~]#
此时可以按键盘上的上,下箭头来调用历史命令中的那些命令。支持history -c命令可以清除所有历史命令。
1.2.3 调整光标位置
当输入了一条较长的命令之后,可以通过快捷键来调整光标的位置。
按【Ctrl+A】组合键或【Home】键,可以把光标调整到行的开头。
按【Ctrl+E】组合键或【Enter】键,可以把光标调整到行的结束。
按【Ctrl+U】组合键可以从光标位置往前删,一直删到开头。
按【Ctrl+K】组合键可以从光标位置往后删,一直删到结尾。
在浏览器中经常打开多个标签来访问不同的页面,同样地,在Linux的终端中我们也需要打开多个标签,方便我们执行命令。
1.2.4 用户切换
在Linux中,管理用户是root,在终端中的提示符是#。root的权限很大,为了防止误操
作,平时尽量使用普通用户登录,普通用户登录的提示符是$,但有时普通用户登录时,会遇到权限不够的情况,例如,执行下面的命令。
[bdqn@RedHat ~]$ mount /dev/cdrom /mnt/
mount: 只有 root 能执行该操作
[bdqn@RedHat ~]$
这个命令是什么意思暂且不管,后面会讲。但是这里使用 blab 用户执行此命令,被告知
没有权限,只有root用户才能执行这个命令。
su命令可以从当前用户切换到其他用户,su的用法如下。
su 用户名
su - 用户名 #注意“ ‐ ”两边是有空格的
如果后面没有跟用户名,则默认为root。这里带“ - ”和不带“ - ”的区别在于切换用户之后的环境变量不一样,关于环境变量后面讲到脚本时会讲,区别如下。
[bdqn@RedHat ~]$ whoami
bdqn
[bdqn@RedHat ~]$ pwd
/home/bdqn
[bdqn@RedHat ~]$
这里当前用户是bdqn用户,所在的目录是bdqn的家目录/home/bdqn。下面通过su root切换到root用户,注意这里su后面没有“-”。
[bdqn@RedHat ~]$ su root
密码:
[root@RedHat bdqn]# whoami
root
[root@RedHat bdqn]# pwd
/home/bdqn
[root@RedHat bdqn]#
这里通过su命令已经切换到root用户了,因为 su 后面没有加“ - ”,所以切换之后所在目录并没有发生任何改变,仍然是在/home/bdqn中的。这样即使切换到root用户了,使用仍然是bdqn用户的PATH变量。
[root@RedHat bdqn]# echo $PATH
/home/bdqn/.local/bin:/home/bdqn/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin
[root@RedHat bdqn]#
下面退回到root用户。
[root@RedHat bdqn]# exit
exit
[bdqn@RedHat ~]$ echo $PATH
/home/bdqn/.local/bin:/home/bdqn/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin
[bdqn@RedHat ~]$
可以看到,环境变量是一样的,再次查看当前用户及所在目录。
[bdqn@RedHat ~]$ whoami
bdqn
[bdqn@RedHat ~]$ pwd
/home/bdqn
[bdqn@RedHat ~]$
下面使用su - root切换到root用户,注意这里su后面有“-”。
[bdqn@RedHat ~]$ su - root
密码:
[root@RedHat ~]# whoami
root
[root@RedHat ~]# pwd
/root
[root@RedHat ~]#
可以看到,现在已经切换到 root 用户了,且所在目录也变成了 root 的家目录 /root。此时使用的是root用户的PATH变量。
[root@RedHat ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
[root@RedHat ~]#
su后面不加用户名,默认就是root,所以 su - 和 su - root 相同。su和su root相同。root用户su命令切换到任何用户都不需要输入密码。