在终端中执行命令需要遵照一定的语法,输入命令的格式如下。
命令 参数
命令 ‐选项 参数
输入命令时可以包含多个选项,假如一个命令有 -a、-b、-c、-d 四个选项,可以写作:
命令 ‐a ‐b ‐c ‐d 参数
这里多个选项可以“提前公因式”,写作:
命令 ‐abcd 参数
这里会把-abcd当成 -a、-b、-c、-d四个选项。
如果一个单词(多个字母)作为一个选项使用,要使用两个“--”。
[root@jiayi ~]# ls -help
ls: 不适用的选项 -- e
请尝试执行 "ls --help" 来获取更多信息
这里会把--help当成4个选项:-h、-e、-l、-p,报错信息使没有-e选项。但是我们知道help是一个单词,应该作为一个选项出现,所以前面应该是两个“--”。
[root@jiayi ~]# ls --help
用法:ls [选项]... [文件]...
我们先看几个常见命令的使用。
第一个命令是ls,ls的作用是列出一个目录中的内容
[root@jiayi ~]# ls
公共 模板 视频 图片 文档 下载 音乐 桌面 anaconda-ks.cfg initial-setup-ks.cfg jiayi
ls命令也可以在后面加参数来查看参数的目录
[root@jiayi ~]# ls /
bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
这里ls并没有加任何参数,表示显示当前所在的目录内容。如何查看当前所在目录呢?可以使用pwd命令。
[root@jiayi ~]# pwd
/root
ls命令可以加上一个 -a 选项,表示列出所有的内容,包括隐藏文件。
[root@jiayi ~]# ls -a
. 模板 文档 桌面 .bash_logout .cache .dbus initial-setup-ks.cfg .pki
.. 视频 下载 anaconda-ks.cfg .bash_profile .config .esd_auth jiayi .tcshrc
公共 图片 音乐 .bash_history .bashrc .cshrc .ICEauthority .local .Xauthority
在Linux中,所有以 “ . ” 开头的文件都是隐藏文件。
ls命令可以加上一个 -l(字母 l 不是数字 1)选项,表示以长模式的形式展示。
[root@jiayi ~]# ls -l /boot/config-4.18.0-348.el8.x86_64
-rw-r--r--. 1 root root 193903 10月 4 2021 /boot/config-4.18.0-348.el8.x86_64
ls命令识别大小可以加上-h选项
[root@jiayi ~]# ls -lh /boot/config-4.18.0-348.el8.x86_64
-rw-r--r--. 1 root root 190K 10月 4 2021 /boot/config-4.18.0-348.el8.x86_64
加上-h选项之后,会以更适合阅读的单位来显示。
在ls后如果以目录作为参数,则显示的是这个目录中的内容,如果想显示这个目录本身的
属性,需要加上 -d 选项。
[root@jiayi ~]# ls -lhd /boot/
dr-xr-xr-x. 5 root root 4.0K 11月 28 01:18 /boot/
有人会有疑问,/boot中那么多东西,怎么才是4.0K?
因为这里仅显示了/boot目录本身的属性,并不包括目录里面内容的大小。例如,一个口袋重1斤,装了500斤重的石头,口袋的重量仍然是1斤
如果想显示目录及里面内容的总大小,则可以使用du命令。
[root@jiayi ~]# du -sh /boot
188M /boot
1. -h选项是以跟适合阅读的单位来显示。
2. -s选项是摘要信息,只显示目录总大小,不显示子目录的大小,这里可以看到/boot 及里面内容的总大小为188M。
下面介绍其它命令的使用。
直接输入date命令,可以显示日期和时间。
[root@jiayi ~]# date
2023年 11月 29日 星期三 22:02:38 EST
显示日历信息,用法是“cal 月 年”,例如,显示2024年7月的日历。
[root@jiayi ~]# cal 7 2024
七月 2024
日 一 二 三 四 五 六
1 2 3 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
如果不加月、年,则显示今年、本月的日历。
whoami命令可以显示当前是哪个用户在登录。
[root@jiayi ~]# whoami
root
命令行中的计算器是bc,bc加上-q选项,是以简洁模式显示。在bc中输入要计算的表达式。按【Enter】键即可。
[root@jiayi ~]# bc -q
5+1
6
5/2
2
这里计算5/2得到的值应该是2.5,但是答案却是2,因为默认情况下bc中并不保留小数点 之后的部分。如果想保留小数点之后的部分,需要通过scale=N指定需要保留小数点之后的多少位,这里N是一个数字。例如,要保留小数点之后的2位,可以写出scale=2
scale=2
5/2
2.50
quit
如果已经输入了某个命令,不想执行该命令,可以按【Ctrl+C】组合键终止命令。
[root@jiayi ~]# ls ^C
在终端中输入命令,必须对它进行解悉/解析,这个解释器就是shell,shell是一种进程。Linux支持很多种shell。
[root@jiayi ~]# cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
这里cat的意思是查看一个文本文件的内容,Linux默认使用的shell是bash。并且和cat相像的命令还有move、less意为分页查看
在Linux中输入命令时不能简写,必须完整。先输入几个字符,例如,这里先输入“hi”,如果有以hi开头的命令,再按【Tab】键。
[root@jiayi ~]# history
如果有多个命令都是以输入的字符开头的,那么需要按两次【Tab】键,就可以把所有以这些字符开头的命令显示出来
[root@jiayi ~]# h
halt hardlink hciconfig hdparm hex2hcd host hostnamectl hypervfcopyd
handle-sshpw hash hcidump head hexdump hostid hunspell hypervkvpd
hangul hciattach hcitool help history hostname hwclock hypervvssd
想查看前期输入过的命令,可以执行history命令。
[root@jiayi ~]# history
1 ll -l
2 ls
3 mkdir
4 mkdir jiayi
此时可以按键盘上的上,下箭头来调用历史命令中的那些命令。
支持history -c命令可以清除所有历史命令。
在Linux中,管理用户是root,在终端中的提示符是#。root的权限很大,为了防止误操作,平时尽量使用普通用户登录,普通用户登录的提示符是$
但有时普通用户登录时,会遇到权限不够的情况,例如,执行下面的命令。
[jiayi@jiayi ~]$ mount /dev/cdrom /mnt/
mount: 只有 root 能执行该操作
su命令可以从当前用户切换到其他用户,su的用法如下。
su 用户名
su ‐ 用户名 #注意“ ‐ ”两边是有空格的
如果后面没有跟用户名,则默认为root。这里带“ - ”和不带“ - ”的区别在于切换用户之后的环境变量不一样,关于环境变量后面讲到脚本时会讲,区别如下。
[jiayi@jiayi ~]$ whoami
jiayi
[jiayi@jiayi ~]$ pwd
/home/jiayi
这里当前用户时blab用户,所在目录是blab的家目录/home/jiayi。下面通过su root切换到root用户,注意这里su后面没有“ - ”。
[jiayi@jiayi ~]$ su
密码:
[root@jiayi jiayi]# whoami
root
[root@jiayi jiayi]# pwd
/home/jiayi
这里通过 su 命令已经切换到 root 用户了,因为 su 后面没有加“ - ”,所以切换之后所在目录并没有发生任何改变,仍然是在/home/jiayi中的。这样即使切换到root用户了,使用仍然是jiayi用户的PATH变量。
[root@jiayi jiayi]# echo $PATH
/home/jiayi/.local/bin:/home/jiayi/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin
下面回退到jiayi用户
[root@jiayi jiayi]# exit
exit
[jiayi@jiayi ~]$ echo $PATH
/home/jiayi/.local/bin:/home/jiayi/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin
可以看到,环境变量是一样的,再次查看当前用户及所在目录。
[jiayi@jiayi ~]$ whoami
jiayi
[jiayi@jiayi ~]$ pwd
/home/jiayi
下面使用su -root切换到root用户,注意这里 su 后面有“ - ”。
[jiayi@jiayi ~]$ su - root
密码:
[root@jiayi ~]# whoami
root
[root@jiayi ~]# pwd
/root
可以看到,现在已经切换到 root 用户了,且所在目录也变成了 root 的家目录 /root。此时使用的是root用户的PATH变量。
[root@jiayi ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
su后面不加用户名,默认就是root,所以 su - 和 su - root 相同。su和su root相同。root用户su命令切换到任何用户都不需要输入密码。