常用系统工作命令
1、echo命令
echo 命令用于在终端输出字符串或变量提取后的值,格式为“echo [字符串 | $变量]”。 例如,把指定字符串“hello world”输出到终端屏幕的命令为:
# echo Linuxprobe.Com
该命令会在终端屏幕上显示如下信息:hello world
下面,我们使用$变量的方式提取变量 SHELL 的值,并将其输出到屏幕上:
# echo $SHELL
输出为:/bin/bash
2、date命令
date 命令用于显示及设置系统的时间或日期,格式为“date [选项] [+指定的格式]”。 只需在强大的 date 命令中输入以“+”号开头的参数,即可按照指定格式来输出系统的时 间或日期,这样在日常工作时便可以把备份数据的命令与指定格式输出的时间信息结合到一 起。例如,把打包后的文件自动按照“年-月-日”的格式打包成“backup-2017-9-1.tar.gz”,用 户只需要看一眼文件名称就能大概了解到每个文件的备份时间了。
参数 | 作用 |
%t | 跳格[Tab 键] |
%H | 小时(00~23) |
%I | 小时(00~12) |
%M | 分钟(00~59) |
%S | 秒(00~59) |
%j | 今年中的第几天 |
按照默认格式查看当前系统时间的 date 命令如下所示:
# date
输出为:Mon Aug 24 16:11:23 CST 2017
按照“年-月-日 小时:分钟:秒”的格式查看当前系统时间的 date 命令如下所示:
# date "+%Y-%m-%d %H:%M:%S"
输出为:2018-09-3 16:29:12
将系统的当前时间设置为 2017 年 9 月 1 日 8 点 30 分的 date 命令如下所示:
# date -s "20170901 8:30:00"
输出为:Fri Sep 1 08:30:00 CST 2017
再次使用 date 命令并按照默认的格式查看当前的系统时间,如下所示:
# date
输出为:Fri Sep 1 08:30:01 CST 2017
date 命令中的参数%j 可用来查看今天是当年中的第几天。这个参数能够很好地区分备份时 间的新旧,即数字越大,越靠近当前时间。该参数的使用方式以及显示结果如下所示。
# date "+%j"
输出为:246
3、reboot命令
reboot 命令用于重启系统,由于重启计算机这种操作会涉及硬件资源的管理权限,因此默认只能使用 root 管理员来 重启
# reboot
4、poweroff命令
poweroff 命令用于关闭系统,该命令与 reboot 命令相同,都会涉及硬件资源的管理权限,因此默认只有 root 管理员才 可以关闭电脑
# poweroff
5、ps命令
ps 命令用于查看系统中的进程状态,格式为“ps [参数]”。
参数:
-a 显示所有进程(包括其他用户的进程)
-u 用户以及其他详细信息
-x 显示没有控制终端的进程
Linux系统中时刻运行着许多进程,如果能够合理地管理它们,则可以优化系统的性能。在 Linux 系统中,有 5 种常见的进程状态,分别为运行、中断、不可中断、僵死与停止,其各自 含义如下所示。
➢ R(运行)进程正在运行或在运行队列中等待。
➢ S(中断)进程处于休眠中,当某个条件形成后或者接收到信号时,则脱离该
状态。
➢D(不可中断) 进程不响应系统异步信号,即便用 kill 命令也不能将其中断。
➢Z(僵死) 进程已经终止,但进程描述符依然存在, 直到父进程调用 wait4()系统函数
后将进程释放。
➢T(停止) 进程收到停止信号后停止运行。
# ps -aux
6、top命令
top 命令用于动态地监视进程活动与系统负载等信息,其格式为 top
➢ 第 1 行:系统时间、运行时间、登录终端数、系统负载(三个数值分别为 1 分钟、5 分钟、15 分钟内的平均值,数值越小意味着负载越低)。
➢ 第 2 行:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程 数。
➢ 第 3 行:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源 百分比、空闲的资源百分比等。
➢ 第 4 行:物理内存总量、内存使用量、内存空闲量、作为内核缓存的内存量。
➢ 第 5 行:虚拟内存总量、虚拟内存使用量、虚拟内存空闲量、已被提前加载的内存量。
7、pidof命令
pidof 命令用于查询某个指定服务进程的 PID 值,格式为“pidof [参数] [服务名称]”
# pidof sshd
1665
8、kill命令
kill 命令用于终止某个指定 PID 的服务进程,格式为“kill [参数] [进程 PID]”。
# kill 2156
系统状态检测命令
1、ifconfig命令
ifconfig命令用于获取网卡配置与网络状态等信息,格式为“ifconfig [网络设备] [参数]”。
# ifconfig
# uptime
18:19:10 up 38 min, 2 users, load average: 0.01, 0.04, 0.06
4、free命令
free 用于显示当前系统中内存的使用量信息,格式为“free [-h]”。
# free -h
5、who命令
who 用于查看当前登入主机的用户终端信息,格式为“who [参数]”。
# who
6、last命令
last 命令用于查看所有系统的登录记录,格式为“last [参数]”。
# last
7、history命令
history 命令用于显示历史执行过的命令,格式为“history [-c]”。
-c参数会清空所有的命令历史记录
!命令序列号 表示执行该条命令,例如 !4 ,则再次执行ifconfig命令
# history
1 ifconfig
2 ifconfig -a
3 reboot
4 ifconfig
5 vim /etc/sysconfig/network-scripts/ifcfg-eno16777728
6 su
7 ls
8 xeit
9 ls
10 ps -aux
11 clear
12 python
13 python3
14 lks
7、runlevel命令
查看系统当前运行级别
# runlevel
who -r 也可以打印当前运行级别
工作切换命令
1、pwd命令
pwd 命令用于显示用户当前所处的工作目录,格式为“pwd [选项]”。
# pwd
/etc
2、cd命令
cd 命令用于切换工作路径,格式为“cd [目录名称]”。
cd .. 切换到上一级目录
cd ~ 切换到当前用户的家目录
3、ls命令
ls 命令用于显示目录中的文件信息,格式为“ls [选项] [文件] ”。
使用 ls 命令的“-a”参数看 到全部文件(包括隐藏文件)以 . 开头的文件就是隐藏文件,使用“-l”参数可以查看文件的属性、大小等详细信息
文本切换命令
1、cat命令
cat 命令用于查看纯文本文件(内容较少的),格式为“cat [选项] [文件]”。
$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
unbound:x:998:997:Unbound DNS resolver:/etc/unbound:/sbin/nologin 下面的省略
2、more命令
more 命令用于查看纯文本文件(内容较多的),格式为“more [选项]文件”。空格键向下翻一页,回车键向下翻一行
3、head命令
head 命令用于查看纯文本文档的前 N 行,格式为“head [选项] [文件]”。
例如,查看passwd文件的前20行
$ head -n 20 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
unbound:x:998:997:Unbound DNS resolver:/etc/unbound:/sbin/nologin
colord:x:997:996:User for colord:/var/lib/colord:/sbin/nologin
usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
avahi-autoipd:x:170:170:Avahi IPv4LL Stack:/var/lib/avahi-autoipd:/sbin/nologin
4、tail命令
tail 命令用于查看纯文本文档的后 N 行或持续刷新内容,例如查看一个文件的后20行,格式为“tail -n 20 文件名”。
tail命令最强悍的功能是可以持续刷新一个文件的内容,当想要实时查看最新日志文件时,这特别有用,此时的命令格式为“tail -f 文件名
$ tail -n 20 /etc/passwd
5、diff命令
diff 命令用于比较多个文本文件的差异,格式为“diff [参数] 文件”。
还可以使用 -c 参数来详细比较出多个文件的差异之处
# cat diff_A.txt
Welcome to linuxprobe.com
Red Hat certified
Free Linux Lessons
Professional guidance
Linux Course
# cat diff_B.txt
Welcome tooo linuxprobe.com
Red Hat certified
Free Linux LeSSonS
////////.....////////
Professional guidance
Linux Course
# diff --brief diff_A.txt diff_B.txt
Files diff_A.txt and diff_B.txt differ
6、wc命令
wc命令用于统计指定文本的行数、字数、字节数,格式为“wc [参数] 文本”。
参数:
-l | 只显示行数 |
-w | 只显示单词数 |
-c | 只显示字节数 |
# wc -l /etc/passwd
38 /etc/passwd
7、stat命令
stat命令用于查看文件的具体存储信息和时间等信息,格式为“stat 文件名称”。
# stat a.py
Access: 文件的最后一次访问时间
Modify: 文件内容的最后一次修改时间
Change: 文件的属性的最后一次修改时间
8、cut命令
cut命令用于按“列”提取文本字符,格式为“cut [参数] 文本”。
使用 -d 参数来设置间隔符号,-f 来设置提取第几列
例如:以冒号为间隔符,提取passwd文件的第一列
文件目录管理命
1、touch命令
touch 命令用于创建空白文件或设置文件的时间,格式为“touch [选项] [文件]”。
参数 | 作用 |
-a | 仅修改“读取时间”(atime) |
-m | 仅修改“修改时间”(mtime) |
-d | 同时修改atime与mtime |
例如,要修改一个文件的读取时间和修改时间则这样写:touch -d 时间 文件名
$ touch a.txt
$ ls
a.txt
2、mkdir命令
mkdir 命令用于创建空白的目录,格式为“mkdir [选项] 目录”。
mkdir命令还可以结合-p参数来递归创建出具有嵌套叠层关系的文件目录。 例如:mkdir -p 1/2/3/4 ,不加-p则生成不了,加了-p才可以递归生成目录。
$ mkdir aaa
$ ls
aa a.txt
3、cp命令
cp 命令用于复制文件或目录,格式为“cp [选项] 源文件 目标文件”。
复制操作具体分为3种情况:
如果目标文件是目录,则会把源文件复制到该目录中;
如果目标文件也是普通文件,则会询问是否要覆盖它;
如果目标文件不存在,则执行正常的复制操作。
参数 | 作用 |
-p | 保留原始文件的属性 |
-d | 若对象为“链接文件”,则保留该“链接文件”的属性 |
-r | 递归持续复制(用于目录) |
-i | 若目标文件存在则询问是否覆盖 |
-a | 相当于-pdr(p、d、r为上述参数) |
$ cp a.txt b.txt
$ ls
a.txt b.txt
4、mv命令
mv 命令用于剪切文件或将文件重命名,格式为“mv [选项] 源文件 [目标路径|目标文件名]”。
剪切操作不同于复制操作,因为它会默认把源文件删除掉,只保留剪切后的文件。如果 在同一个目录中对一个文件进行剪切操作,其实也就是对其进行重命名
$ mv a.txt c.txt
$ ls
aa b.txt c.txt
5、rm命令
rm 命令用于删除文件或目录,格式为“rm [选项] 文件”。
可在rm命令后跟上 -f 参数来强制删除。另外,想要删除一个目录,需要在rm命令后面一个 -r 参数才可以,否则删除不掉。
rm删除是没有回收站的,谨慎使用
6、dd命令
dd命令用于按照指定大小和个数的数据块来复制文件或转换文件,格式为“dd [参数]”。
它能够让用户按照指定大小和个数的数据块来复制文件的内容。
参数 | 作用 |
if | 输入的文件名称 |
of | 输出的文件名称 |
bs | 设置每个“块”的大小(可以加单位,如 M) |
count | 设置要复制“块”的个数 |
例如,要从passwd文件中取300个字节的数据复制到当前目录下的pass文件中
# dd if=/etc/passwd of=pass bs=300 count=1
1+0 records in
1+0 records out
300 bytes (300 B) copied, 0.000565005 s, 531 kB/s
7、file命令
file命令用于查看文件的类型,格式为“file 文件名”。
在Linux系统中,由于文本、目录、设备等所有这些一切都统称为文件,而我们又不能单凭后缀就知道具体的文件类型,这时就需要使用file命令来查看文件类型了。
# file a.py
a.py: ASCII text
# file /opt
/opt: directory
打包压缩与搜索命令
1、tar命令
其中主要使用的是.tar或.tar.gz或.tar.bz2格式
-c 创建压缩文件 -z 用 Gzip 压缩或解压 -f 目标文件名
-x 解开压缩文件 -j 用 bzip2 压缩或解压 -p 保留原始的权限与属性
-t 查看压缩包内有哪些文件 -v 显示压缩或解压的过程 -P 使用绝对路径来压缩
-C 指定解压到的目录
打包
打包:tar -cvf FileName.tar 文件名
解包:tar -xvf FileName.tar (默认解压到当前路径)
--------------------------------------------------
打包和压缩 .gz 可以加参数 -C 解压到指定目录
2、grep命令
grep 命令用于在文本中执行关键词搜索,并显示匹配的结果,格式为“grep [选项] [文件]”。
-b 将可执行文件(binary)当作文本文件(text)来搜索
-c 仅显示找到的行数
-i 忽略大小写
-n 显示行号
-v 反向选择—仅列出没有“关键词”的行
# grep /sbin/nologin /etc/passwd
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
………………省略部分输出过程信息………………
3、find命令
find命令用于按照指定条件来查找文件,格式为“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 …… {}; | 后面可跟用于进一步处理搜索结果的命令 |
重点讲解一下-exec参数重要的作用。这个参数用于把find命令搜索到的结果交由紧随其后的命令作进一步处理,十分类似于管道符,以 ; 为结尾,是固定格式,{}则表示为搜索到的内容
例如,查找名为 fstab 的文件并且复制到 /root目录下
# find / -name fstab -exec cp {} /opt ;
cp: ‘/opt/fstab’ and ‘/opt/fstab’ are the same file