03、新手必须掌握的Linux命令
ⅰ. 常用系统工作命令
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’ |
上一篇: Linux下载——下载文件的命令
下一篇: 炸杏鲍菇的做法,赶紧学起来