Ⅰ. 常用系统工作命令
1. echo 命令
echo命令用于在终端输出字符串货变量提取后的值,格式为"echo [字符串 | $变量]"
例:把指定字符串"LinxuHat"输出到终端屏幕的命令为:
[root@linuxprobe Desktop]# echo LinuxHat |
该命令会在终端屏幕上显示如下信息:
LinuxHat |
使用$变量的方式提取变量SHELL的值,并将其输出到屏幕上:
[root@linuxprobe Desktop]# echo $SHELL /bin/bash |
2. date 命令
date命令用于显示及设置系统的时间或日期,格式为"date [选项] [+指定的格式]"
参数 |
作用 |
%t |
跳格 |
%H |
小时(00..23) |
%I |
小时(01..12) |
%M |
分钟(00..59) |
%S |
秒(00..61) |
%j |
一年中的第几天 (001..366) |
按照默认格式查看当前系统时间的date命令如下所示:
[root@linuxprobe Desktop]# date Tue Aug 13 17:36:08 CST 2019 |
按照"年-月-日 小时:分钟:秒"的格式查看当前系统时间的date命令如下所示:
[root@linuxprobe Desktop]# date "+%Y-%m-%d %H:%M:%S" 2019-08-13 17:37:57 |
将系统的当前时间设置为2019年9月1日9点0分的date命令如下所示:
[root@linuxprobe Desktop]# date -s "20190901 9:00:00" Sun Sep 1 09:00:00 CST 2019 |
再次使用date命令并按照默认的格式查看当前的系统时间,如下所示:
[root@linuxprobe Desktop]# date Sun Sep 1 09:00:43 CST 2019 |
date命令中的参数%j可用来查看今天是当年中的第几天
[root@linuxprobe Desktop]# date "+%j" 244 |
3. reboot 命令
reboot命令用于重启系统,其格式为reboot:
由于重启计算机这种操作会涉及硬件资源的管理权限,因此默认只能使用root管理员来重启,其命令如下:
[root@linuxprobe Desktop]# reboot |
4. poweroff 命令
poweroff命令用于关闭系统,其格式为poweroff
由于关闭计算机这种操作会涉及硬件资源的管理权限,因此默认只能使用root管理员来重启,其命令如下:
[root@linuxprobe Desktop]# poweroff |
5. wget 命令
wget命令用于在终端中下载网络文件,格式为"wget [参数] 下载地址"
[root@linuxprobe Desktop]# wget http://www.linuxprobe.com/docs/LinuxProbe.pdf |
6. ps 命令
ps命令用于查看系统中的进程状态,格式为"ps [参数]"
l -A 列出所有的行程(包括其他用户的进程)
l -u 用户以及其他详细信息
l -x 显示没有控制终端的进程
进程有5种状态,分别为运行、中断、不可中断、僵死与停止
· R(运行):进程正在运行或在运行队列中等待
· S(中断):进程处于休眠中,当某个条件形成后或者接收到信号时,则脱离该状态
· D(不可中断):进程不响应系统异步信号,即便用kill命令也不能将其中断
· Z(僵死):进程以及终止,但进程描述符依然存在,直到父进程调用wait4()系统函数后将进程释放
· T(停止):进程收到停止信号后停止运行
[root@linuxprobe Desktop]# ps -aux |
进程状态
7. top 命令
top命令用于动态地监视进程活动与系统负载等信息,其格式为top
top命令相当于Windows任务管理器
[root@linuxprobe Desktop]# top |
top命令的运行界面
· 第1行:系统时间、运行时间、登录终端数、系统负载(三个数值分别为1分钟、5分钟、15分钟内的平均值,数值越小意味着负载越低)
· 第2行:进程总数、运行中的进程数、睡眠中的进程数、停止的进程数、僵死的进程数
· 第3行:用户占用资源百分比、系统内核占用资源百分比、改变过优先级的进程资源百分比、空闲的资源百分比等
· 第4行:物理内存总量、内存使用量、内存空闲量、作为内核缓存的内存量
· 第5行:虚拟内存总量、虚拟内存使用量、虚拟内存空闲量、已被提前加载的内存量
8. pidof 命令
pidof命令用于查询某个指定服务进程的PID值,格式为"pidof [参数] [服务名称]"
[root@linuxprobe Desktop]# pidof sshd 1805 |
9. kill 命令
kill命令用于终止某个指定PID的服务进程,格式为"kill [参数] [进程PID]"
[root@linuxprobe Desktop]# kill 1805 |
10. killall 命令
killall命令用于终止某个指定名称的服务所对应的全部进程,格式为:"killall [参数] [进程名称]"
[root@linuxprobe Desktop]# pidof httpd 13581 13580 13579 13578 13577 13576 [root@linuxprobe Desktop]# killall httpd [root@linuxprobe Desktop]# pidof httpd [root@linuxprobe Desktop]# |
Ⅱ. 系统状态监检测命令
1. ifconfig 命令
ifconfig命令用于获取网卡配置与网络状态等信息,格式为"ifconfig [网络设备] [参数]"
[root@linuxprobe Desktop]# ifconfig |
2. uname 命令
uname命令用于查看系统内核与系统版本等信息,格式为"uname [-a]"
[root@linuxprobe Desktop]# uname -a Linux linuxprobe.com 3.10.0-123.el7.x86_64 #1 SMP Mon May 5 11:16:57 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux |
顺带一提,如果要查看当前系统版本的详细信息,则需要查看redhat-release文件,其命令以及相应的结果如下:
[root@linuxprobe Desktop]# cat /etc/redhat-release Red Hat Enterprise Linux Server release 7.0 (Maipo) |
3. uptime 命令
uptime命令用于查看系统的负载信息,格式为"uptime"
[root@linuxprobe Desktop]# uptime 23:51:53 up 49 min, 2 users, load average: 0.05, 0.15, 0.19 |
4. free 命令
free用于显示当前系统中内存的使用量信息,格式为"free [-h]"
[root@linuxprobe Desktop]# free -h |
· total:内存总量
· used:已用量
· free:可用量
· shared:进程共享的内存量
· buffers:磁盘缓存的内存量
· cached:缓存的内存量
5. who命令
who命令用于查看当前登入主机的用户终端信息,格式为"who [参数]"
[root@linuxprobe Desktop]# who |
· 第1列:登录的用户名
· 第2列:终端设备
· 第3列:登录到系统的时间
6. last命令
last命令用于查看所有系统的登录记录,格式为"last [参数]"
[root@linuxprobe Desktop]# last |
7. history命令
history命令用于显示历史执行过的命令,格式为"history [-c]"
说明:
① 使用-c参数则会清空所有的命令历史记录
② 可以使用"!编码数字" 的方式来重复执行某一次的命令
[root@linuxprobe Desktop]# history |
8. sosreport命令
sosreport命令用于手机系统配置及架构信息并输出诊断文档,格式为"sosreport"
[root@linuxprobe Desktop]# sosreport |
· quit:此处敲击回车来确认收集信息
· name:此处敲击回车来确认主机编号
· for:此处敲击回车来确认主机编号
Ⅲ. 工作目录切换命令
1. pwd命令
pwd命令用于显示用户当前所处的工作目录,格式为"pwd [选项]"
[root@linuxprobe ~]# pwd /root |
2. cd命令
cd命令用于切换工作路径,格式为"cd [目录名称]"
例:切换到/etc目录中
[root@linuxprobe ~]# cd /etc [root@linuxprobe etc]# |
例:切换到/bin目录中
[root@linuxprobe etc]# cd /bin [root@linuxprobe bin]# |
例:返回到上一次的目录(即/etc目录)
[root@linuxprobe bin]# cd - /etc [root@linuxprobe etc]# |
例:快速切换到用户的家目录
[root@linuxprobe etc]# cd ~ [root@linuxprobe ~]# |
3. ls命令
ls命令用于显示目录中的文件信息,格式为"ls [选项] [文件]"
[root@linuxprobe ~]# ls -al total 52 dr-xr-x---. 17 root root 4096 Aug 13 23:40 . drwxr-xr-x. 17 root root 4096 Aug 14 2019 .. -rw-------. 1 root root 1032 Aug 14 2019 anaconda-ks.cfg -rw-r--r--. 1 root root 18 Dec 29 2013 .bash_logout -rw-r--r--. 1 root root 176 Dec 29 2013 .bash_profile -rw-r--r--. 1 root root 176 Dec 29 2013 .bashrc drwx------. 10 root root 4096 Aug 13 23:40 .cache drwx------. 15 root root 4096 Aug 13 23:37 .config -rw-r--r--. 1 root root 100 Dec 29 2013 .cshrc drwx------. 3 root root 24 Aug 13 17:40 .dbus drwxr-xr-x. 2 root root 6 Aug 13 23:40 Desktop drwxr-xr-x. 2 root root 6 Aug 13 23:37 Documents drwxr-xr-x. 2 root root 6 Aug 13 23:37 Downloads -rw-------. 1 root root 16 Aug 13 23:37 .esd_auth drwx------. 3 root root 19 Aug 13 23:40 .gnome2 drwx------. 2 root root 6 Aug 13 23:40 .gnome2_private -rw-------. 1 root root 314 Aug 13 23:37 .ICEauthority -rw-r--r--. 1 root root 1083 Aug 13 17:43 initial-setup-ks.cfg drwx------. 3 root root 18 Aug 13 23:37 .local drwxr-xr-x. 4 root root 37 Aug 13 23:40 .mozilla drwxr-xr-x. 2 root root 6 Aug 13 23:37 Music drwxr-xr-x. 2 root root 6 Aug 13 23:37 Pictures drwxr-xr-x. 2 root root 6 Aug 13 23:37 Public -rw-r--r--. 1 root root 129 Dec 29 2013 .tcshrc drwxr-xr-x. 2 root root 6 Aug 13 23:37 Templates drwxr-xr-x. 2 root root 6 Aug 13 23:37 Videos |
若想查看目录属性信息,则需要额外添加一个-d参数。
例:查看/etc目录的权限与属性信息
[root@linuxprobe ~]# ls -ld /etc drwxr-xr-x. 132 root root 8192 Aug 13 23:42 /etc |
Ⅳ. 文本文件编辑命令
1. cat命令
cat命令用于查看纯文本文件(内容较少),格式为"cat [选项] [文件]"
[root@linuxprobe ~]# cat -n initial-setup-ks.cfg |
2. more命令
more命令用于查看纯文本文件(内容较多的),格式为"more [选项]文件"
[root@linuxprobe ~]# more initial-setup-ks.cfg |
3. head命令
head命令用于查看纯文本文档的前N行,格式为"head [选项] [文件]"
[root@linuxprobe ~]# head -n 20 initial-setup-ks.cfg |
4. tail命令
tail命令用于查看纯文本文档的后N行或持续刷新内容,格式为"tail [选项] [文件]"
[root@linuxprobe ~]# tail -f /var/log/messages |
5. tr命令
tr命令用于替换文本文件中的字符,格式为"tr [原始字符] [目标字符]"
例:把anaconda文件的文本全部替换成大写
[root@linuxprobe ~]# cat anaconda-ks.cfg | tr [a-z] [A-Z] |
6. wc命令
wc命令用于统计指定文本的行数、字数、字节数,格式为"wc [参数] 文本"
[root@linuxprobe ~]# wc -l /etc/passwd 38 /etc/passwd |
7. stat命令
stat命令用于查看文件的具体存储信息和时间等信息,格式为"stat 文档名称"
[root@linuxprobe ~]# stat anaconda-ks.cfg File: ‘anaconda-ks.cfg’ Size: 1032 Blocks: 8 IO Block: 4096 regular file Device: fd00h/64768d Inode: 68915660 Links: 1 Access: (0600/-rw-------) Uid: ( 0/ root) Gid: ( 0/ root) Context: system_u:object_r:admin_home_t:s0 Access: 2019-08-14 00:27:15.065788018 +0800 Modify: 2019-08-14 01:25:23.744928793 +0800 Change: 2019-08-14 01:25:23.744928793 +0800 Birth: - |
8. cut命令
cut命令用于按"列"提取文本字符,格式为"cut [参数] 文本"
[root@linuxprobe ~]# head -n 2 /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin [root@linuxprobe ~]# cut -d: -f1 /etc/passwd root bin daemon adm lp sync shutdown halt operator games ftp nobody dbus polkitd unbound colord usbmuxd avahi avahi-autoipd libstoragemgmt saslauth qemu rpc rpcuser nfsnobody rtkit radvd ntp chrony abrt pulse gdm gnome-initial-setup postfix sshd tcpdump linuxprobe |
9. diff命令
diff命令用于比较多个文本文件的差异,格式为"diff [参数] 文件"
[root@linuxprobe ~]# cat diff_A.txt [root@linuxprobe ~]# cat diff_B.txt |
使用diff --brief命令显示比较后的结果,判断文件是否相同:
[root@linuxprobe ~]# diff --brief diff_A.txt diff_B.txt |
使用带有-c参数的diff命令来描述文件内容具体的不同
[root@linuxprobe ~]# diff -c diff_A.txt diff_B.txt |
Ⅴ. 文件目录管理命令
1. touch命令
touch命令用于创建空白文件或设置文件的时间,格式为"touch [选项] [文件]"
· a 仅修改"读取时间(atime)"
· m 仅修改"修改时间(mtime)"
· d 同时修改atime与mtime
[root@linuxprobe ~]# ls -l anaconda-ks.cfg -rw-------. 1 root root 1032 Aug 14 2019 anaconda-ks.cfg [root@linuxprobe ~]# echo "Visit the LinuxProbe.com to learn linux skills" >> anaconda-ks.cfg [root@linuxprobe ~]# ls -l anaconda-ks.cfg -rw-------. 1 root root 1079 Aug 14 00:40 anaconda-ks.cfg [root@linuxprobe ~]# touch -d "2017-05-04 15:30" anaconda-ks.cfg [root@linuxprobe ~]# ls -l anaconda-ks.cfg -rw-------. 1 root root 1079 May 4 2017 anaconda-ks.cfg |
2. mkdir命令
mkdir命令用于创建空白的目录,格式为"mkdir [选项] 目录"
[root@linuxprobe ~]# mkdir linuxprobe [root@linuxprobe ~]# cd linuxprobe [root@linuxprobe linuxprobe]# mkdir -p a/b/c/d/e [root@linuxprobe linuxprobe]# cd a [root@linuxprobe a]# cd b [root@linuxprobe b]# |
说明:结合-p参数来递归创建出具有嵌套叠层关系的文件目录
3. cp命令
cp命令用于复制文件或目录,格式为"cp [选项] 源文件 目录文件"
说明:在Linux系统中,复制操作具体分为3种情况:
① 如果目标文件是目录,则会把源文件复制到该目录中
② 如果目标文件也是普通文件,则会询问是否要覆盖它
③ 如果目标文件不存在,则执行正常的复制操作
· -a:相当于-pdr(p、d、r为上述参数)
· -d:若对象为"链接文件",则保留该"链接文件"的属性
· -i :若目标文件存在则询问是否覆盖
· -p:保留原始文件的属性
· -r :递归持续赋值(用于目录)
[root@linuxprobe b]# touch install.log [root@linuxprobe b]# cp install.log x.log [root@linuxprobe b]# ls c install.log x.log [root@linuxprobe b]# |
4. mv命令
mv命令用于剪切文件或将文件重命名,格式为"mv [选项] 源文件 [目标路径|目标文件名]"
[root@linuxprobe b]# mv x.log linux.log [root@linuxprobe b]# ls c install.log linux.log [root@linuxprobe b]# |
5. rm命令
rm命令用于删除文件或目录,格式为"rm [选项] 文件"
[root@linuxprobe b]# rm install.log rm: remove regular empty file ‘install.log’? y [root@linuxprobe b]# rm -f linux.log [root@linuxprobe b]# ls c [root@linuxprobe b]# |
6. dd命令
dd命令用于按照指定大小和个数的数据块来复制文件或转换文件,格式为"dd [参数]"
· if:输入的文件名称
· of:输出的文件名称
· bs:设置每个"块"的大小
· count:设置要复制"块"的个数
[root@linuxprobe ~]# dd if=/dev/zero of=560_file count=1 bs=560M 1+0 records in 1+0 records out 587202560 bytes (587 MB) copied, 1.3667 s, 430 MB/s |
例:将光盘制作成ISO格式的镜像文件
[root@linuxprobe ~]# dd if=/dev/cdrom of=RHEL-server-7.0-x86_64-LinuxProbe.Com.iso |
7. file命令
file命令用于查看文件的类型,格式为"file 文件名"
[root@linuxprobe ~]# file anaconda-ks.cfg anaconda-ks.cfg: ASCII text [root@linuxprobe ~]# file /dev/sda /dev/sda: block special |
Ⅵ. 打包压缩与搜索命令
1. tar命令
tar命令用于对文件进行打包压缩或解压,格式为"tar [选项] [文件]"
· -c:创建压缩文件
· -x:解开压缩文件
· -t:查看压缩包内有哪些文件
· -z:用Gzip压缩或解压
· -j:用bzip2压缩或解压
· -v:显示压缩或解压的过程
· -f:目标文件名
· -p:保留原始的权限与属性
· -P:使用绝对路径来压缩
· -C:指定解压到的目录
说明:
① 一般使用" tar -czvf 压缩包名称.tar.gz 要打包的目录"来进行文件打包压缩操作
② 一般使用" tar -xzvf 压缩包名称.tar.gz"来进行文件解压操作
例:压缩操作
[root@linuxprobe ~]# tar -czvf etc.tar.gz /etc |
例:解压操作
[root@linuxprobe ~]# tar -xzvf etc.tar.gz -C /root/etc |
2. grep命令
grep命令用于在文本中执行关键词搜索,并显示匹配的结果,格式为"grep [选项] [文件]"
· -b:将可执行文件(binary)当作文本文件(test)来搜索
· -c:仅显示找到的行数
· -i:忽略大小写
· -n:显示行号
· -v:反向旋转—仅列出没有"关键词"的行
[root@linuxprobe ~]# grep /sbin/nologin /etc/passwd |
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/e/p/l/f:匹配文件类型(后面的字母参数依次表示块设备、目录、字符设备、管道、链接文件、文本文件)
· -size:匹配文件的大小(+50KB为查找超过50KB的文件,而-50KB为查找小于50KB的文件)
· -prune:忽略某个目录
· -exec `````` { } ;:后面可跟用于进一步处理搜索结果的命令
例:获取到该目录中所有已host开头的文件列表
[root@linuxprobe ~]# find /etc -name "host*" -print /etc/avahi/hosts /etc/host.conf /etc/hosts /etc/hosts.allow /etc/hosts.deny /etc/selinux/targeted/modules/active/modules/hostname.pp /etc/hostname |
例:在整个系统中搜索权限中包括SUID权限的所有文件
[root@linuxprobe ~]# find / -perm -4000 -print |
例:在整个文件系统中找出所有归属于linuxprobe用户的文件并复制到/root/findresults目录
[root@linuxprobe ~]# find / -user linuxprobe -exec cp -a {} /root/findresults/ ; find: ‘/proc/44630/task/44630/fd/6’: No such file or directory find: ‘/proc/44630/task/44630/fdinfo/6’: No such file or directory find: ‘/proc/44630/fd/6’: No such file or directory find: ‘/proc/44630/fdinfo/6’: No such file or directory cp: cannot create special file ‘/root/findresults/’: No such file or directory cp: cannot overwrite non-directory ‘/root/findresults/linuxprobe’ with directory ‘/home/linuxprobe’ |