对于学习Linux系统来说,命令是必须熟练掌握的第一个部分。Linux系统中的命令有600多个,但常用的基础命令并不多。虽然不同版本的Linux系统的命令稍有不同,但命令的语法与使用方法基本相同,因此读者只要掌握了CentOS 7中常用的基础命令,就能熟悉其他Linux系统版本的命令了。本章通过分类方式来介绍常用基础命令的语法与使用方法。
man命令用来查看指定命令的帮助信息,其语法格式如下。
man [命令名称]
以下命令用来查看cd命令的帮助信息。
[root@test ~]# man cd
ls 命令用来显示指定目录下的内容,列出指定目录下所含的文件及子目录。此命令与Windows系统中的dir命令功能相似。ls命令的语法格式如下。
ls [选项] [目录或文件]
ls命令的常用选项及其说明见表3-1。
表3-1 ls命令的常用选项及其说明
选项 | 说明 |
---|---|
-a | 显示指定目录下的所有文件及子目录,包含隐藏文件 |
-A | 显示指定目录下的(除“.”和“…”之外)所有文件及子目录 |
-d | 显示指定目录的属性信息 |
-l | 显示指定目录下的文件及子目录的详细信息 |
-r | 倒序显示指定目录下的文件及子目录 |
-t | 以时间顺序显示指定目录下的文件及子目录 |
(1)以下命令列出/root目录下的文件及子目录的详细信息。
[root@test ~]# ls -l /root/
total 4
-rw-------. 1 root root 1330 Mar 26 09:50 anaconda-ks.cfg
drwxr-xr-x 2 root root 6 Apr 24 01:59 test
drwxr-xr-x 2 root root 6 Apr 24 01:59 tools
(2)以下命令以时间顺序倒序显示/root目录下的文件及子目录,并显示其详细信息。
[root@test ~]# ls -lrt /root/
total 4
-rw-------. 1 root root 1330 Mar 26 09:50 anaconda-ks.cfg
drwxr-xr-x 2 root root 6 Apr 24 01:59 test
drwxr-xr-x 2 root root 6 Apr 24 01:59 tools
cd命令用于切换目录,其语法格式如下。
cd [选项]
cd命令的常用选项及其说明见表3-2。
表3-2 cd命令的常用选项及其说明
选项 | 说明 |
---|---|
cd [目录名] | 切换到指定目录下 |
cd / | 切换到根目录下 |
cd … | 切换到上级目录下(与cd …/功能相同) |
cd ~ | 切换到当前登录用户的家目录下 |
(1)以下命令用于切换到/usr/local目录下。
[root@test ~]# cd /usr/local/
[root@test local]# pwd
/usr/local
(2)以下命令用于切换到当前登录用户的家目录下。
[root@test local]# whoami
root
[root@test local]# cd ~
[root@test ~]# pwd
/root
useradd命令用于创建新的系统用户,其语法格式如下。
useradd [选项] 用户名
useradd命令的常用选项及其说明见表3-3。
表3-3 useradd命令的常用选项及其说明
选项 | 说明 |
---|---|
-d | 指定用户的家目录(默认用户家目录为/home/用户名,root用户家目录是/root) |
-g | 指定用户的所属组 |
-M | 不自动建立用户登录的目录(默认的用户登录目录是用户家目录) |
-u | 指定用户ID |
(1)创建一个名为mingongge的新用户,创建命令如下。
[root@test ~]# useradd mingongge
[root@test ~]# tail -1 /etc/passwd
mingongge:x:1001:1001::/home/mingongge:/bin/bash
从上述命令输出结果可以看出,创建新用户时,默认用户家目录为/home/用户名。
(2)创建一个名为mgg的新用户,并指定其家目录为/root/mgg,用户ID为9999,创建命令如下。
[root@test ~]# useradd mgg -d /root/mgg -u 9999
[root@test ~]# tail -1 /etc/passwd #检查是否添加成功
mgg:x:9999:9999::/root/mgg:/bin/bash
passwd命令用于设置/修改用户密码,其语法格式如下。
passwd [用户名]
(1)管理员用户修改普通用户的密码,命令如下。
[root@test ~]# whoami
root
[root@test ~]# passwd mgg
Changing password for user mgg.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
根据提示输入两次密码即可。
(2)普通用户修改自己的密码,命令如下。
[mingongge@test ~]$ passwd
Changing password for user mingongge.
Changing password for mingongge.
(current) UNIX password:
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
根据提示输入原来的旧密码,然后连续两次输入新密码即可。
free命令用于查看系统内存状态,包括系统物理内存、虚拟内存、系统缓存。free命令的语法格式如下。
free [选项]
free命令的常用选项及其说明见表3-4。
表3-4 free命令的常用选项及其说明
选项 | 说明 |
---|---|
-b | 指定以字节为单位显示系统内存使用情况 |
-m | 指定以MB为单位显示系统内存使用情况 |
-K | 指定以KB为单位显示系统内存使用情况 |
-h | 以友好的格式输出结果(配合上述3个选项一同使用) |
-s <间隔秒数> | 持续观察内存使用状态 |
-t | 显示内存总和 |
-V | 显示版本信息 |
(1)以MB为单位显示当前系统内存的使用情况,命令如下。
[root@test ~]# free -m
total used free shared buff/cache available
Mem: 976M 67M 792M 6M 115M 766M
Swap: 2G 0 2G
(2)以总和的形式显示当前系统内存的使用情况,命令如下。
[root@test ~]# free -t
total used free shared buff/cache available
Mem: 999696 69272 812344 6716 118080 785840
Swap: 2097148 0 2097148
Total: 3096844 69272 2909492
默认单位为KB。
whoami命令用于显示当前登录到系统的用户名,其语法格式如下。
whoami [选项]
whoami命令的常用选项及其说明见表3-5。
表3-5 whoami命令的常用选项及其说明
选项 | 说明 |
---|---|
–help | 在线查看帮助信息 |
–version | 查看版本信息 |
查看当前登录到系统的用户名,命令如下。
[root@test ~]# whoami
root
从上述命令输出结果可以看出,当前登录到系统的用户为root用户。
ps命令用于显示当前进程的状态,其语法格式如下。
ps [选项]
ps命令的常用选项及其说明见表3-6。
表3-6 ps命令的常用选项及其说明
选项 | 说明 |
---|---|
a | 显示所有用户的进程,并包含每个进程的完整路径 |
-A | 显示所有的进程 |
-u | 显示使用者的名称和起始时间(常与a选项配合使用) |
-f | 全格式详细输出进程信息 |
-e | 显示除系统内核以外所有进程的信息 |
PID | 查看指定PID的进程信息 |
ps命令的选项特别多,读者可以自行使用“man ps”命令查看其帮助信息。
查看系统所有的进程信息,命令如下。
[root@test ~]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 09:20 ? 00:00:01 /usr/lib/systemd/systemd --switched-root --system --deserialize
root 2 0 0 09:20 ? 00:00:00 [kthreadd]
root 3 2 0 09:20 ? 00:00:00 [ksoftirqd/0]
……(中间部分结果省略)
root 4701 2 0 12:06 ? 00:00:38 [kworker/0:1]
postfix 4786 926 0 14:20 ? 00:00:00 pickup -l -t unix -u
root 4791 2 0 14:21 ? 00:00:00 [kworker/0:0]
root 4817 2 0 14:26 ? 00:00:00 [kworker/0:2]
root 4820 1178 0 14:28 pts/0 00:00:00 ps -ef
上述进程信息各部分的含义如下。
date命令用于显示或修改系统时间与日期,其语法格式如下。
date [选项] 显示时间格式(以“+”开头,后面接时间格式参数)
date命令的常用选项及其说明见表3-7。
表3-7 date命令的常用选项及其说明
选项 | 说明 |
---|---|
-d STRING | 显示STRING中指定的时间,而非系统时间 |
-s STRING | 将系统时间设置为STRING中指定的时间 |
date命令显示时间格式及其说明见表3-8。
表3-8 date命令显示时间格式及其说明
时间格式 | 说明 |
---|---|
%H | 显示小时,显示范围00~23 |
%M | 显示分钟,显示范围00~59 |
%m | 显示月份,显示范围01~12 |
%S | 显示秒钟(以“+”开头,后接时间格式),显示范围00~59 |
%T | 以hh:mm:ss格式显示时间,其中hh代表小时,mm代表分钟,ss代表秒 |
%d | 显示一个月的第几天 |
%D | 以mm/dd/yy显示年份和月份,yy代表年份的最后两位数字 |
%Y/%y | 显示年份,%Y显示完整的年份,%y显示年份的最后两位数字 |
(1)显示系统当前时间,命令如下。
[root@test ~]# date
Sat May 5 15:35:23 CST 2018
(2)用指定的格式显示时间和日期,命令如下。
[root@test ~]# date '+Today is:%D, now is:%T'
Today is:05/05/18, now is:15:40:03
(3)修改系统当前时间,命令如下。
[root@test ~]# date
Sat May 5 16:11:39 CST 2018
[root@test ~]# date -s 20000505
Fri May 5 00:00:00 CST 2000
(4)显示当前时间5天前和5天后的时间,命令如下。
[root@test ~]# date
Fri May 5 00:01:18 CST 2000
[root@test ~]# date -d '5 day ago' #显示5天前的时间
Sun Apr 30 00:01:38 CST 2000
[root@test ~]# date -d '+5 days' #显示5天后的时间
Wed May 10 00:05:29 CST 2000
pwd命令用于显示或打印当前工作目录。执行pwd命令后可知当前所在工作目录的绝对路径。pwd命令的语法格式如下。
pwd [选项]
pwd命令的常见选项是“–help”,用于显示帮助信息。
显示当前所在的工作目录,命令如下。
[root@test ~]# pwd
/root
通过上述命令输出结果可知,当前工作目录是root用户家目录。
shutdown命令用于对系统执行关机操作,其语法格式如下。
shutdown [选项]
shutdown命令的常用选项及其说明见表3-9。
表3-9 shutdown命令的常用选项及其说明
选项 | 说明 |
---|---|
-t <秒数> | 推迟多少秒的时间 |
-f | 重新启动时不执行fsck命令 |
-h | 将系统关机 |
-r | 关机之后重新启动 |
将系统立即关机,命令如下。
[root@test ~]# shutdown -h now
Connection closing...Socket close.
Connection closed by foreign host.
Disconnected from remote host at 22:29:25.
Type 'help' to learn how to use Xshell prompt.
从上述结果来看,执行完命令后,连接马上就断开了。
touch命令用于修改文件的时间属性,若文件不存在,系统会自动创建此文件(因此也可以使用touch命令来创建新空白文件),且此文件创建时间为当前系统时间。touch命令的语法格式如下。
touch [选项] 文件名
touch命令的常用选项及其说明见表3-10。
表3-10 touch命令的常用选项及其说明
选项 | 说明 |
---|---|
-a | 修改文件的访问时间为系统当前时间 |
-m | 修改文件的修改时间为系统当前时间 |
-d | 将文件的修改时间修改为指定的时间 |
-r <参考文件> | 将文件的时间修改为参考文件的时间 |
(1)创建一个新的空白文件并查看其创建时间,命令如下。
[root@test ~]# date
Fri May 5 00:43:37 CST 2000
[root@test ~]# touch newfile
[root@test ~]# ls -l
total 0
-rw-r--r-- 1 root root 0 May 5 00:43 newfile
(2)修改文件的访问时间为系统当前时间,命令如下。
[root@test ~]# ls -lu
total 0
-rw-r--r-- 1 root root 0 May 5 17:14 file.txt
[root@test ~]# date
Sat May 5 17:17:28 CST 2018
[root@test ~]# touch -a file.txt
[root@test ~]# ls -lu
total 0
-rw-r--r-- 1 root root 0 May 5 17:17 file.txt
(3)修改文件的修改时间为系统当前时间,命令如下。
[root@test ~]# ls -l
total 0
-rw-r--r-- 1 root root 0 May 5 17:14 file.txt
[root@test ~]# date
Sat May 5 17:21:23 CST 2018
[root@test ~]# touch -m file.txt
[root@test ~]# ls -l
total 0
-rw-r--r-- 1 root root 0 May 5 17:21 file.txt
(4)修改文件的访问时间为参考文件的时间,命令如下。
[root@test ~]# ls -lu /usr/local/access
-rw-r--r-- 1 root root 0 May 5 17:23 /usr/local/access
[root@test ~]# ls -lu file.txt
-rw-r--r-- 1 root root 0 May 5 17:17 file.txt
[root@test ~]# touch -a -r /usr/local/access file.txt
[root@test ~]# ls -lu file.txt
-rw-r--r-- 1 root root 0 May 5 17:23 file.txt
cat命令用于查看文件内容,还可以合并文件,如果合并后的文件不存在,则自动创建。cat命令的语法格式如下。
cat [选项] 文件名
cat 文件a 文件b >文件c
cat命令的常用选项及其说明见表3-11。
表3-11 cat命令的常用选项及其说明
选项 | 说明 |
---|---|
-n | 从1开始对文件所有输出的行数编号 |
-b | 从1开始对文件所有输出的行数编号,空白行不编号 |
-s | 当文件输出内容有连续两行以上的空白行时,替换成一行空白行 |
(1)查看文件test.txt的内容并对所有输出行数编号,命令如下。
[root@test ~]# cat -n test.txt
1 #version=DEVEL
2 # System authorization information
3
4
5 auth --enableshadow --passalgo=sha512
6
7 # Use CDROM installation media
(2)将test.txt文件内容加上行号后输入文件test1.txt中,命令如下。
[root@test ~]# cat -n test.txt > test1.txt
[root@test ~]# cat -n test1.txt
1 1 #version=DEVEL
2 2 # System authorization information
3 3
4 4
5 5 auth --enableshadow --passalgo=sha512
6 6
7 7 # Use CDROM installation media
(3)将test.txt文件和test1.txt文件合并到file文件中,命令如下。
[root@test ~]# cat test.txt test1.txt >file
[root@test ~]# cat file
#version=DEVEL
# System authorization information
auth --enableshadow --passalgo=sha512
# Use CDROM installation media
1 #version=DEVEL
2 # System authorization information
3
4
5 auth --enableshadow --passalgo=sha512
6
7 # Use CDROM installation media
mkdir命令用于创建一个新目录,其语法格式如下。
mkdir [选项] 目录名
mkdir命令的常用选项及其说明见表3-12。
表3-12 mkdir命令的常用选项及其说明
选项 | 说明 |
---|---|
-m | 创建目录的同时设置目录的权限 |
-p | 递归创建目录 |
(1)在/test目录下创建新目录file,同时设置文件属主有读、写和执行权限,属组有读、写权限,其他人只有读权限,命令如下。
[root@test ~]# mkdir -m 764 /test/file
[root@test ~]# ls -ld /test/file
drwxrw-r-- 2 root root 6 May 5 10:02 /test/file
(2)在/test目录下创建testfile目录,并在testfile目录下创建filetest目录,命令如下。
[root@test ~]# mkdir -p /test/testfile/filetest
[root@test ~]# tree /test/
/test/
├── file
└── testfile
└── filetest
3 directories, 0 files
rm命令用于删除文件或目录。使用rm命令时要注意,一旦文件或目录被删除,就无法再恢复。rm命令的语法格式如下。
rm [选项] [文件或目录]
rm命令的常用选项及其说明见表3-13。
表3-13 rm命令的常用选项及其说明
选项 | 说明 |
---|---|
-i | 删除文件或目录之前进行确认 |
-f | 强制删除文件或目录,不进行确认 |
-r | 递归方式删除目录及其子目录 |
-v | 显示命令执行的详细过程 |
(1)删除文件test.txt和文件test1.txt,并在删除前进行确认,命令如下。
[root@test ~]# rm -i test.txt test1.txt
rm: remove regular file 'test.txt'? y
rm: remove regular file 'test1.txt'? y
输入y确认删除。
(2)删除/test目录下的所有目录,在删除前不进行确认,命令如下。
[root@test ~]# rm -rf /test/
[root@test ~]# ls /test
ls: cannot access /test: No such file or directory
cp命令用于复制,它可以将单个文件复制成一个指定文件名的文件或将其复制到一个存在的目录下,还可以同时复制多个文件或目录。cp命令的语法格式如下。
cp [选项] [文件名或目录名]
cp [选项] 源文件或目录 目标文件或目录
cp命令的常用选项及其说明见表3-14。
表3-14 cp命令的常用选项及其说明
选项 | 说明 |
---|---|
-a | 复制目录时使用。保留其所有信息,包括文件链接、文件属性,并可递归复制目录 |
-f | 强制复制文件或目录,无论目标文件或目录是否存在 |
-i | 覆盖文件之前进行确认 |
-p | 保留源文件或目录的属性 |
-r/-R | 递归复制,将指定目录下所有文件与子目录一同复制 |
(1)将当前目录下的file文件复制到test/file2/目录,并改名为filetest,命令如下。
[root@test ~]# cp file test/file2/filetest
[root@test ~]# ls -l test/file2/
total 4
-rw-r--r-- 1 root root 293 May 5 10:45 filetest
可用上述方法对文件在修改前进行备份。在实际生产和测试环境中非常实用,以便修改文件出错后恢复。
(2)将test目录下所有文件及其子目录复制到backup目录下,命令如下。
[root@test ~]# tree test
test
├── file1
└── file2
└── filetest
2 directories, 1 file
[root@test ~]# cp -r test backup/
[root@test ~]# tree backup/
backup/
└── test
├── file1
└── file2
└── filetest
3 directories, 1 file
mv命令用于将文件或目录由一个目录移动到另一个目录中。如果源为文件,而目标为目录,那么mv命令将移动文件。如果源为目录,则目标只能是目录,mv将重命名目录。mv命令的语法格式如下。
mv [选项] 源文件或目录 目标文件或目录
mv命令的常用选项及其说明见表3-15。
表3-15 mv命令的常用选项及其说明
选项 | 说明 |
---|---|
-f | 若目标文件或目录与需要移动的文件或目录重复,则直接覆盖 |
-b | 若目标文件存在,则覆盖前为其创建一个备份 |
-i | 覆盖文件之前进行确认 |
(1)将文件test改名为testfile,命令如下。
[root@test test]# ll
total 0
-rw-r--r-- 1 root root 0 May 6 01:54 test
[root@test test]# mv test testfile
[root@test test]# ll
total 0
-rw-r--r-- 1 root root 0 May 6 01:54 testfile
(2)将/root/backup中的所有文件及目录移动到/root/test目录下,若目标文件或目录存在,则直接覆盖不提示,命令如下。
[root@test ~]# ll /root/backup/
total 0
-rw-r--r-- 1 root root 0 May 6 01:58 file.txt
drwxr-xr-x 4 root root 32 May 5 10:51 test
-rw-r--r-- 1 root root 0 May 6 01:58 testfile
-rw-r--r-- 1 root root 0 May 6 01:57 test.txt
[root@test ~]# ll /root/test
total 0
drwxr-xr-x 2 root root 6 May 6 01:57 test
-rw-r--r-- 1 root root 0 May 6 01:54 testfile
[root@test ~]# mv -f /root/backup/* /root/test/
[root@test ~]# ll /root/test/
total 0
-rw-r--r-- 1 root root 0 May 6 01:58 file.txt
drwxr-xr-x 4 root root 32 May 5 10:51 test
-rw-r--r-- 1 root root 0 May 6 01:58 testfile
-rw-r--r-- 1 root root 0 May 6 01:57 test.txt
find命令用于查找指定目录下的文件,其语法格式如下。
find [目录路径] [选项] 文件名
find命令的常用选项及其说明见表3-16。
表3-16 find命令的常用选项及其说明
选项 | 说明 |
---|---|
-name <字符串> | 查找文件名匹配指定字符串的文件 |
续表
选项 | 说明 |
---|---|
-type <文件类型> | 查找指定文件类型的文件 |
-mtime <+d/-d> | 按时间查找文件,+d表示d天之前,-d表示今天到第d天之前的时间 |
-size |
在指定目录下按大小查找文件 |
-depth | 从指定目录的最深的子目录下开始查找 |
-maxdepth |
从指定目录的最大第n级子目录开始查找 |
-uid |
查找匹配指定UID的文件或目录 |
-empty | 查找大小为0的文件 |
(1)查找/root/test/目录下以t开头的文件和目录,命令分别如下。
[root@test /]# find /root/test/ -name "t*" -type f
/root/test/testfile
/root/test/test.txt
[root@test /]# find /root/test/ -name "t*" -type d
/root/test/
/root/test/test
(2)查找/root目录下30天前、大小为1KB的文件,命令如下。
[root@test ~]# find /root/ -mtime +30 -size 1k -type f
/root/.bash_logout
/root/.bash_profile
/root/.bashrc
/root/.cshrc
/root/.tcshrc
(3)查找/root目录下大小为0的文件,并将其全部移动到/tmp目录下,命令如下。
[root@test ~]# find /root -empty -type f
./test.txt
./test/testfile
./test/file.txt
[root@test ~]# find ./ -empty -type f -exec mv {} /tmp/ \;
[root@test ~]# ll /tmp/
total 0
-rw-r--r-- 1 root root 0 May 6 01:58 file.txt
-rw-r--r-- 1 root root 0 May 6 01:58 testfile
-rw-r--r-- 1 root root 0 May 6 01:57 test.txt
tar命令用于对文件或目录创建归档,其语法格式如下。
tar [选项] 文件名或目录名
tar命令的常用选项及其说明见表3-17。
表3-17 tar命令的常用选项及其说明
选项 | 说明 |
---|---|
-c | 创建归档文件 |
-C | 此选项在解压缩时使用,将文件解压至指定目录 |
-f <文件名> | 指定归档文件 |
-v | 显示命令执行的详细过程 |
-t | 列出归档文件里的内容 |
-z | 通过gzip指令处理归档文件 |
-x | 从归档文件中将文件解压出来 |
-p | 保持原来文件的属性信息 |
–exclude=<文件名> | 将符合的文件排除 |
(1)将test.txt文件打包成tar包,命令如下。
[root@test ~]# tar -cf test.tar test.txt
[root@test ~]# ll test.tar
-rw-r--r-- 1 root root 10240 May 18 09:22 test.tar
(2)将test.txt文件打包成tar包,然后以gzip方式进行压缩,命令如下。
[root@test ~]# tar-zcf test.tar.gz test.txt
[root@test ~]# ll test.tar.gz
-rw-r--r-- 1 root root 112 May 18 09:24 test.tar.gz
(3)列出压缩文件test.tar.gz中有哪些文件,命令如下。
[root@test ~]# tar -ztf test.tar.gz
test.txt
zip命令用于解压缩文件或者对文件进行打包操作。zip命令的语法格式如下。
zip [选项] 文件名
zip命令的常用选项及其说明见表3-18。
表3-18 zip命令的常用选项及其说明
选项 | 说明 |
---|---|
-b <目录名> | 指定存放文件的目录 |
-d | 从压缩文件删除指定的文件 |
-o | 将压缩文件的更改时间设置成与压缩文件内最新更改文件的时间相同 |
-x <文件名> | 压缩时排除符合条件的文件 |
-t <日期时间> | 将压缩文件日期设置成指定的日期 |
将当前目录下所有文件打包成test.zip包,命令如下。
[root@test ~]# zip test.zip ./*
adding: abc.txt (stored 0%)
adding: anaconda-ks.cfg (deflated 45%)
adding: backup/ (stored 0%)
adding: Centos-7.repo (deflated 77%)
adding: dir_umask/ (stored 0%)
adding: file_umask (stored 0%)
adding: test/ (stored 0%)
adding: testfile/ (stored 0%)
adding: test.tar (deflated 99%)
adding: test.tar.gz (stored 0%)
adding: test.txt (stored 0%)
[root@test ~]# ll test.zip
-rw-r--r-- 1 root root 3133 May 18 09:49 test.zip
unzip命令用于解压缩由zip命令压缩的压缩包(.zip格式),其语法格式如下。
unzip [选项] 文件名
unzip命令的常用选项及其说明见表3-19。
表3-19 unzip命令的常用选项及其说明
选项 | 说明 |
---|---|
-l | 显示压缩包内所包含的文件 |
-t | 检查压缩文件是否正确 |
-o | 解压时直接覆盖原有的文件 |
-n | 解压时不覆盖原有的文件 |
-d <目录> | 将压缩文件解压至指定目录下 |
(1)查看test.zip中所有文件,并检查压缩文件是否正确,命令如下。
[root@linux1 test]# unzip -lt test.zip
Archive: test.zip
testing: test1.txt OK
testing: test.txt OK
No errors detected in compressed data of test.zip.
(2)将test.zip压缩文件解压至/opt目录下,命令如下。
[root@linux1 test]# unzip test.zip -d /opt/
Archive: test.zip
extracting: /opt/test1.txt
extracting: /opt/test.txt
[root@linux1 test]# ll /opt/
total 8
-rw-r--r-- 1 root root 31 1月 8 10:41 test1.txt
-rw-r--r-- 1 root root 12 1月 8 10:37 test.txt
df命令用于查看系统磁盘空间的使用情况,默认单位为KB。df命令的语法格式如下。
df [选项]
df命令的常用选项及其说明见表3-20。
表3-20 df命令的常用选项及其说明
选项 | 说明 |
---|---|
-h | 以可读的格式输出磁盘分区使用情况 |
-k | 以KB为单位输出磁盘分区使用情况 |
-m | 以MB为单位输出磁盘分区使用情况 |
-i | 显示磁盘分区文件系统的inode信息 |
-T | 显示磁盘分区文件系统的类型 |
(1)查看当前系统磁盘分区使用情况,以MB为单位且以可读的格式输出,命令如下。
[root@test ~]# df -mh
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 17G 1.1G 16G 7% /
devtmpfs 478M 0 478M 0% /dev
tmpfs 489M 0 489M 0% /dev/shm
tmpfs 489M 6.8M 482M 2% /run
tmpfs 489M 0 489M 0% /sys/fs/cgroup
/dev/sda1 1014M 125M 890M 13% /boot
tmpfs 98M 0 98M 0% /run/user/0
(2)显示当前系统磁盘分区文件系统的类型及其inode信息,命令如下。
[root@test ~]# df -iT
Filesystem Type Inodes IUsed IFree IUse% Mounted on
/dev/mapper/centos-root xfs 8910848 31150 8879698 1% /
devtmpfs devtmpfs 122194 389 121805 1% /dev
tmpfs tmpfs 124962 1 124961 1% /dev/shm
tmpfs tmpfs 124962 497 124465 1% /run
tmpfs tmpfs 124962 16 124946 1% /sys/fs/cgroup
/dev/sda1 xfs 524288 327 523961 1% /boot
tmpfs tmpfs 124962 1 124961 1% /run/user/0
du命令用于显示文件或目录占用磁盘空间情况,其语法格式如下。
du [选项] 文件名或目录名
du命令的常用选项及其说明见表3-21。
表3-21 du命令的常用选项及其说明
选项 | 说明 |
---|---|
-h | 以可读的格式输出文件或目录大小 |
-b | 以字节为单位输出文件或目录大小 |
-m | 以MB为单位输出文件或目录大小 |
-s | 显示文件或整个目录的大小,单位为KB |
–exclude=<文件名或目录名> | 忽略指定的文件或目录 |
显示系统根目录的总大小,忽略/usr目录,命令如下。
[root@test ~]# du -sh / --exclude=/usr
256M /
fdisk命令用于对系统磁盘进行分区创建与维护,其语法格式如下。
fdisk [选项] [磁盘名称]
fdisk命令常用的选项是“-l”,用于列出所有分区表信息。
fdisk命令常用的菜单及其说明如下。
显示当前系统的磁盘分区表信息,命令如下。
[root@test ~]# fdisk -l
Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x0008e592
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 41943039 19921920 8e Linux LVM
Disk /dev/mapper/centos-root: 18.2 GB, 18249416704 bytes, 35643392 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/mapper/centos-swap: 2147 MB, 2147483648 bytes, 4194304 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
mount 命令用于挂载文件系统到指定的挂载点。例如,我们将光盘放入光驱中,在Windows系统中可以双击直接打开使用;但在Linux系统中,我们需要手动将其挂载至相应的挂载点才可以使用。mount命令的语法格式如下。
mount [选项] 文件系统 挂载点
将/dev/cdrom挂载到/mnt/cdrom,命令如下。
[root@test ~]# mount -t auto /dev/cdrom /mnt/cdrom
mount: block device /dev/cdrom is write-protected, mounting read-only
执行上述挂载命令之后,我们就可以正常查看光盘中的内容,如下所示。
[root@test ~]# ll /mnt/cdrom
total 859
dr-xr-xr-x 4 root root 2048 Sep 4 2005 CentOS
-r--r--r-- 2 root root 8859 Mar 19 2005 centosdocs-man.css
-r--r--r-- 9 root root 18009 Mar 1 2005 GPL
dr-xr-xr-x 2 root root 241664 May 7 02:32 headers
dr-xr-xr-x 4 root root 2048 May 7 02:23 images
dr-xr-xr-x 2 root root 4096 May 7 02:23 isolinux
dr-xr-xr-x 2 root root 18432 May 2 18:50 NOTES
-r--r--r-- 2 root root 5443 May 7 01:49 RELEASE-NOTES-en.html
dr-xr-xr-x 2 root root 2048 May 7 02:34 repodata
-r--r--r-- 9 root root 1795 Mar 1 2005 rpm-GPG-KEY
-r--r--r-- 2 root root 1795 Mar 1 2005 RPM-GPG-KEY-centos4
-r--r--r-- 1 root root 571730 May 7 01:39 yumgroups.xml
ping命令用于测试主机之间网络的连通性。此命令使用ICMP协议,向测试的目标主机发出要求回应的信息,若与目标主机之间网络通畅,则会收到回应信息,从而能够判断该目标主机运行正常。ping命令的语法格式如下。
ping [选项] 目标主机名或IP地址
ping命令的常用选项及其说明见表3-22。
表3-22 ping命令的常用选项及其说明
选项 | 说明 |
---|---|
-c <完成次数> | 设置要求目标主机回应的次数 |
-i <间隔秒数> | 指定收发信息的时间间隔 |
-s <数据包大小> | 指定发送数据的大小 |
-t |
设置TTL值的大小 |
-v | 显示命令执行的过程信息 |
检查本机与www.baidu.com之间的连通性,命令如下。
[root@test ~]# ping www.baidu.com
PING www.a.shifen.com (111.13.100.92) 56(84) bytes of data.
64 bytes from 111.13.100.92 (111.13.100.92): icmp_seq=1 ttl=52 time=22.8 ms
64 bytes from 111.13.100.92 (111.13.100.92): icmp_seq=2 ttl=52 time=22.3 ms
^C
--- www.a.shifen.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3012ms
rtt min/avg/max/mdev = 22.048/23.236/25.687/1.451 ms
按
wget命令用于从网络上下载指定的软件,其语法格式如下。
wget 软件的网址
从阿里云镜像网站下载CentOS 7的Yum源文件,命令如下。
[root@test ~]# wget http://mirrors.aliyun.com/repo/Centos-7.repo
--2018-05-06 03:53:57-- http://mirrors.aliyun.com/repo/Centos-7.repo
Resolving mirrors.aliyun.com (mirrors.aliyun.com)... 120.221.156.38, 120.221.156.34, 120.221.156.36, ...
Connecting to mirrors.aliyun.com (mirrors.aliyun.com)|120.221.156.38|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2573 (2.5K) [application/octet-stream]
Saving to: 'Centos-7.repo'
100%[=========================>] 2,573 --.-K/s in 0.008s
2018-05-06 03:53:58 (296 KB/s) – 'Centos-7.repo' saved [2573/2573]
telnet命令用于通过telnet协议来登录远程主机,还可用于查看与远程主机端口之间的通信情况。telnet命令的语法格式如下。
telnet [远程主机名或IP地址] [远程主机端口]
通过telnet命令测试与IP地址为192.168.1.254的目标主机22端口之间的通信情况,命令如下。
[root@test ~]# telnet 192.168.1.254 22
Trying 192.168.1.254...
Connected to 192.168.1.254.
Escape character is '^]'.
SSH-2.0-OpenSSH_7.4
上述输出信息表明与目标主机22端口之间通信畅通。如果出现以下内容,则说明与目标主机22端口之间通信存在故障。
Trying 192.168.1.254...
telnet: connect to address 192.168.1.254: Connection refused
netstat命令用于显示Linux中的网络系统状态信息。需要注意的是,在CentOS 7系统中默认没有这个命令,如果需要使用此命令,可使用“yum install net-tools”命令来安装netstat命令。netstat命令的语法格式如下。
netstat [选项]
netstat命令的常用选项及其说明见表3-23。
表3-23 netstat命令的常用选项及其说明
选项 | 说明 |
---|---|
-a | 显示所有网络连接和监听端口 |
-l | 只显示状态为“LISTEN”的网络连接 |
-n | 以IP地址的形式显示 |
-t | 显示所有TCP协议的连接信息 |
-u | 显示所有UDP协议的连接信息 |
-p | 显示连接对应的PID与程序名称 |
-r | 显示系统路由表信息 |
(1)显示所有TCP协议且连接状态为“LISTEN”的连接信息,命令如图3-1所示。
图3-1 所有TCP协议且连接状态为“LISTEN”的连接信息
(2)显示系统当前处于连接状态的所有连接信息,命令如图3-2所示。
(3)查看当前系统的路由表信息,命令如下。
[root@test ~]# netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 ens33
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 ens33
curl命令是一个利用URL规则在命令行下工作的文件传输工具。curl支持HTTP、HTTPS、FTP等多种协议,也可以用于文件的下载。curl命令的语法格式如下。
curl[选项][URL]
curl命令的常用选项及其说明见表3-24。
表3-24 curl命令的常用选项及其说明
选项 | 说明 |
---|---|
-I | 只显示响应报文的头部信息 |
-H |
自定义头部信息传递给服务器 |
-G | 以GET方式发送数据 |
-o | 把输出信息写入文件中 |
-O | 把输出信息写入文件中,且保留远端文件的文件名 |
-X |
指定用什么命令 |
(1)显示URL(http://www.baidu.com)的头部信息,命令如下。
[root@test ~]# curl -I http://www.baidu.com
HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control:private,no-cache, no-store, proxy-revalidate, no-transform
Connection: Keep-Alive
Content-Length: 277
Content-Type: text/html
Date: Tue, 22 May 2018 13:42:02 GMT
Etag: "575e1f60-115"
Last-Modified: Mon, 13 Jun 2016 02:50:08 GMT
Pragma: no-cache
Server: bfe/1.0.8.18
(2)分别指定执行PUT、POST、GET、DELETE命令操作,命令如下。
[root@test ~]# curl -X PUT http://www.baidu.com
[root@test ~]# curl -X POST http://www.baidu.com
[root@test ~]# curl -X GET http://www.baidu.com
[root@test ~]# curl -X DELETE http://www.baidu.com
ss是socket statistics的缩写。ss命令可以用来获取socket统计信息,它可以显示和netstat命令类似的内容。ss命令的优势在于它能够显示更多、更详细的有关TCP和连接状态的信息,而且比netstat命令更快速、更高效。ss命令的语法格式如下。
ss[选项]
ss命令的常用选项及其说明见表3-25。
表3-25 ss命令的常用选项及其说明
选项 | 说明 |
---|---|
-n | 不解析服务名称 |
-r | 解析主机名 |
-l | 显示监听状态套接字 |
-a | 显示所有的套接字信息 |
-o | 显示计时器信息 |
-e | 显示套接字详细的内存使用情况 |
-p | 显示使用套接字的进程 |
-i | 显示TCP内部信息 |
-s | 显示套接字使用情况 |
-4 | 只显示IPv4的套接字 |
-t | 只显示TCP套接字 |
-u | 只显示UDP套接字 |
-d | 只显示DCCP套接字 |
-F | 使用此选项指定的过滤规则文件,过滤某种状态的连接 |
(1)显示TCP连接,命令如下。
[root@CentOS7 ~]# ss -ta
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:ssh *:*
LISTEN 0 100 127.0.0.1:smtp *:*
ESTAB 0 52 192.168.1.250:ssh 192.168.1.14:58719
LISTEN 0 128 :::ssh :::*
LISTEN 0 100 ::1:smtp :::*
(2)显示套接字的使用情况,命令如下。
[root@CentOS7 ~]# ss -s
Total: 572 (kernel 1020)
TCP: 5 (estab 1, closed 0, orphaned 0, synrecv 0, timewait 0/0), ports 0
Transport Total IP IPv6
* 1020 - -
RAW 1 0 1
UDP 2 1 1
TCP 5 3 2
INET 8 4 4
FRAG 0 0 0
uptime命令用于打印或显示系统总共运行时长和系统的平均负载。uptime命令显示的信息依次为现在时间,系统已运行时间,目前登录用户数,系统最近1分钟、5分钟、15分钟内的平均负载。uptime命令的语法格式如下。
uptime [选项]
uptime命令的常用选项是“-V”,用于显示版本信息。
查看当前系统的负载信息,命令如下。
[root@test ~]# uptime -V
uptime from procps-ng 3.3.10
[root@test ~]# uptime
10:06:35 up 28 min, 1 user, load average: 0.00, 0.01, 0.05
上述输出结果的说明如下。
top命令用于实时动态查看系统整体运行情况,是一个多方位监测系统性能的实用工具。top命令的语法格式如下。
top [选项]
top命令的常用选项及其说明见表3-26。
表3-26 top命令的常用选项及其说明
选项 | 说明 |
---|---|
-d | 指定刷新间隔时间 |
-u <用户名> | 指定用户名 |
-i <时间> | 设置时间间隔 |
续表
选项 | 说明 |
---|---|
-p <进程号> | 指定进程 |
-n <次数> | 指定循环显示的次数 |
在执行top命令的过程中,还可以使用一些交互式的命令。具体命令及其说明见表3-27。
表3-27 top命令的交互式命令及其说明
命令 | 说明 |
---|---|
h | 显示帮助信息 |
k | 终止或杀死一个进程 |
l | 切换显示平均负载和启动时间信息 |
q | 退出 |
m | 切换显示内存信息 |
t | 切换显示进程和CPU状态信息 |
P | 根据CPU使用百分比大小排序 |
T | 根据时间/累计时间排序 |
执行top命令,显示系统当前运行状态信息,输出结果如图3-3所示。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0G73ZcUw-1589509909388)(http://write.epubit.com:9000/api/storage/getbykey/original?key=20059cab919892399225)]
图3-3 top命令输出结果
top命令的输出信息说明如下。
本书系统全面、由浅入深地介绍了Linux系统运维的知识,以及在企业实际环境中用到的各类服务、架构和运维管理。本书分基础篇、LAMP/LNMP架构篇、应用服务篇和架构运用篇。基础篇详细介绍Linux系统的基础知识,LAMP/LNMP架构篇介绍时下企业中最常见的两种架构的部署与配置,应用服务篇以企业实际运维环境为出发点详细介绍当下企业用到的各类开源软件服务,架构运用篇对前三篇的知识进行总结,并结合企业的实际场景加以实践。