目录
- 第二章 新手必须掌握的Linux命令
- 2.1 Shell
- 2.2 命令格式及帮助命令 man
-
- 2.3 常用的系统工作命令
- 2.3.1 echo
- 2.3.2 date
- 2.3.3 reboot
- 2.3.4 poweroff
- 2.3.5 wget
- 2.3.6 ps
- 2.3.7 top
- 2.3.8 pidof
- 2.3.9 kill
- 2.3.10 killall
- 2.4 系统状态检测命令
- 2.4.1 ifconfig
- 2.4.2 uname
- 2.4.3 uptime
- 2.4.4 free
- 2.4.5 who
- 2.4.6 last
- 2.4.7 history
- 2.4.8 sosreport
- 2.4.9 ping
- 2.5 工作目录切换命令
- 2.5.1 pwd
- 2.5.2 cd
- 2.5.3 ls
- 2.6 文本文件编辑命令
- 2.6.1 cat
- 2.6.2 more
- 2.6.3 head
- 2.6.4 tail
- 2.6.5 tr
- 2.6.6 wc
- 2.6.7 stat
- 2.6.8 cut
- 2.6.9 diff
- 2.7 文件目录管理命令
- 2.7.1 touch
- 2.7.2 mkdir
- 2.7.3 cp
- 2.7.4 mv
- 2.7.5 rm
- 2.7.6 dd
- 2.7.7 file
- 2.8 打包压缩与搜索命令
- 2.8.1 tar
- 2.8.2 grep
- 2.8.3 find
第二章 新手必须掌握的Linux命令
2.1 Shell
- 命令行工具(终端),Shell充当用户与内核(硬件)交互的翻译官,用户将命令告诉终端,它就会调用相应的程序服务去完成某些工作;目前主流为Bash,Bash不仅好用,而且应用广泛;
2.2 命令格式及帮助命令 man
2.2.1 命令格式
- 通常命令格式如下,且分为长和短格式(有例外);
- 参数之间的合并原则是:只有短格式之间才能合并,并且只保留一个“-”
命令名称 [命令参数] [命令对象]
man --help
man -h
2.2.2 帮助命令 man
man
命令可以帮助我们了解各个命令的作用、参数等等
man ls
在使用man命令后,会出现篇幅较长的帮助内容,对此,有相应的快捷键帮助我们浏览:
作用 | 按键 |
---|
上一页 | Page Up |
下一页 | Page Down / 空格 |
首页 | Home |
尾页 | End |
从上至下搜索某个关键词,如“/linux” | / |
从下至下搜索某个关键词,如“?linux” | ? |
定位到下一个搜索到的关键词 | n |
定位到上一搜索到的关键词 | N |
退出帮助文档 | q |
man命令–帮助内容的构成及意义
结构名称 | 意义 |
---|
NAME | 命令的名称 |
SYNOPSIS | 参数大致使用方法 |
DESCRIPTION | 介绍说明 |
EXAMPLES | 演示(附带简单说明) |
OVERVIEW | 概述 |
DEFAULTS | 默认的功能 |
OPTIONS | 具体的可用选项(带介绍) |
ENVIRONMENT | 环境变量 |
FILES | 用到的文件 |
SEE ALSO | 相关的资料 |
HISTORY | 维护历史与联系方式 |
2.3 常用的系统工作命令
命令末尾加上&,这样命令就会在后台执行,不会不断在屏幕上输出信息
2.3.1 echo
- 功能:在终端输出(打印)字符串或变量的值;
- 格式:
echo 内容
- 示例:
[root@localhost ~]$ echo "this is a print demo"
this is a print demo
2.3.2 date
- 功能:显示及设置系统的时间或日期;
- 格式:
date [参数] “+格式参数”
作用 | 格式参数 |
---|
跳格(tab) | %t |
年(yyyy)/ (yy) | %Y / %y |
月 | %m |
日 | %d |
时(0~24) /(0~12) | %H / %I |
分 | %M |
秒 | %S |
今年第几天 | %j |
[root@localhost ~]$ date
Wed Jan 13 23:26:26 CST 2021
[root@localhost ~]$ date "+%Y/%m/%d %H:%M:%S"
2021/01/13 23:26:43
[root@localhost ~]$ date -s "20201201 8:30:00"
2.3.3 reboot
- 功能:重启系统;涉及硬件资源的管理权限,因此默认只能使用root 管理员来重启;
2.3.4 poweroff
- 功能:关闭系统;同样默认只能root管理员来关闭;
2.3.5 wget
- 功能:下载网络文件;
- 格式:
wget [参数] 下载地址
作用 | 参数 |
---|
后台下载模式 | -b |
下载到指定目录 | -P |
最大尝试次数 | -t |
断点续传 | -c |
下载页面内所有的资源,包括图片、视频等 | -p |
递归下载 | -r |
[root@localhost ~]$ wget http://www.baidu.com
2.3.6 ps
作用 | 参数 |
---|
显示所有进程(包括其他用户的进程) | -a |
显示用户以及其他详细信息 | -u |
显示没有控制终端的进程 | -x |
常见进程状态有:
R(运行):进程正在运行或在运行队列中等待。
S(中断):进程处于休眠中,当某个条件形成后或者接收到信号时,则脱离该状态。
D(不可中断):进程不响应系统异步信号,即便用kill命令也不能将其中断。
Z(僵死):进程已经终止,但进程描述符依然存在, 直到父进程调用wait4()系统函数后将进程释放。
T(停止):进程收到停止信号后停止运行。
除了上面的五种常见进程状态,还有可能是高优先级(<),低优先级(N),被锁进内存(L),包含子进程(s)以及多线程(l)这五种补充形式。
[root@localhost ~]$ ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.5 0.6 179016 13916 ? Ss 06:53 0:02 /usr/lib/systemd/systemd --switched-root --system --deserialize 17
2.3.7 top
- 功能:动态地监视进程活动及系统负载等信息;
- 格式:
top
,退出使用q
或ctrl+c
- 示例:
top - 07:10:11 up 16 min, 1 user, load average: 0.00, 0.02, 0.06
Tasks: 316 total, 1 running, 315 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.3 us, 1.2 sy, 0.0 ni, 98.3 id, 0.0 wa, 0.2 hi, 0.0 si, 0.0 st
MiB Mem : 1966.1 total, 197.2 free, 1232.7 used, 536.2 buff/cache
MiB Swap: 2048.0 total, 2048.0 free, 0.0 used. 557.2 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2097 root 20 0 3360668 161364 89780 S 1.3 8.0 0:12.49 gnome-shell
1 root 20 0 179016 13916 9144 S 0.3 0.7 0:02.58 systemd
524 root 20 0 0 0 0 I 0.3 0.0 0:00.05 kworker/u256:
2.3.8 pidof
- 功能:查询某个指定服务进程的PID号码值;
- 格式:
pidof [参数] 服务名称
- 示例:
[root@localhost ~]$ pidof sshd
1050
2.3.9 kill
- 功能:终止某个指定PID值的服务进程;
- 格式:
kill [参数] 进程的PID
- 示例:
[root@localhost ~]$ kill 1050
2.3.10 killall
- 功能:终止某个指定名称的服务所对应的全部进程;复杂的软件服务程序会有多个进程协同(PID),逐个结束进程比较麻烦,此命令可以批量结束全部进程。
- 格式:
killall [参数] 服务名称
- 示例:
[root@localhost ~]$ killall httpd
2.4 系统状态检测命令
2.4.1 ifconfig
- 功能:获取网卡配置与网络状态等信息,英文全称为:“interface config”;
- 格式:
ifconfig [参数] 网络设备
- 示例:
[root@localhost ~]$ ifconfig
ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.10.10 netmask 255.255.255.0 broadcast 192.168.10.255
ether 00:0c:29:d2:4e:cc txqueuelen 1000 (Ethernet)
RX packets 57 bytes 4512 (4.4 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 124 bytes 10452 (10.2 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 124 bytes 10452 (10.2 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:5a:7a:59 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
2.4.2 uname
- 功能:查看系统内核版本与系统架构等信息;
- 格式:
uname [-a]
, - 示例:
[root@localhost ~]$ uname
Linux
[root@localhost ~]$ uname -a
Linux localhost.localdomain 4.18.0-80.el8.x86_64
2.4.3 uptime
[root@localhost ~]$ uptime
08:25:16 up 1:31, 1 user, load average: 0.00, 0.00, 0.00
2.4.4 free
- 功能:显示当前系统中内存的使用量信息;
- 格式:
free [-h]
- 示例:
[root@localhost ~]$ free -h
total used free shared buff/cache available
Mem: 1.9Gi 1.2Gi 194Mi 16Mi 536Mi 554Mi
Swap: 2.0Gi 0B 2.0Gi
2.4.5 who
[root@localhost ~]$ w
08:30:47 up 1:37, 1 user, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty2 tty2 06:54 1:37m 41.83s 0.23s /usr/libexec/tracker-miner-fs
[root@localhost ~]$ who
root tty2 2021-01-14 06:54 (tty2)
2.4.6 last
[root@localhost ~]$ last
root tty2 tty2 Thu Jan 14 06:54 still logged in
reboot system boot 4.18.0-80.el8.x8 Thu Jan 14 06:53 still running
root tty2 tty2 Wed Jan 13 22:16 - crash (08:37)
...
2.4.7 history
- 功能:显示执行过的命令历史,默认1000条,可用在/etc/profile文件中的HISTSIZE变量值;
- 格式:
history [-c]
- 示例:
[root@localhost ~]$ history
1 ls
2 vim anaconda-ks.cfg
3 cd /etc/sysconfig/network-scripts/
4 ls
5 vim ifcfg-ens160
6 mkdir -p test
7 cd test
8 ls
9 vim shtest.sh
10 ls
11 bash shtest.sh
12 echo [ -d shtest.sh ]
[root@localhost ~]$ history -c
[root@localhost ~]$ history
1 history
2.4.8 sosreport
- 功能:用于收集系统配置及架构信息并输出诊断文档,不断回车执行即可;
2.4.9 ping
- 功能:测试主机之间的网络连通性;
- 格式:
ping [参数] 主机地址
参数 | 作用 |
---|
-c | 总共发送次数 |
-l(小写L) | 指定网卡名称(Lan) |
-i | 每次间隔时间(秒) |
-W | 最长等待时间(秒) |
[root@localhost ~]$ ping -c 4 192.168.10.10
2.5 工作目录切换命令
2.5.1 pwd
[root@localhost ~]$ pwd
/root
2.5.2 cd
- 功能:切换当前的工作路径;
- 格式:
cd [参数]目录
- 示例:
[root@localhost ~]$ cd -
[root@localhost ~]$ cd ..
[root@localhost ~]$ cd ~
[root@localhost ~]$ cd ~username
2.5.3 ls
- 功能:显示目录中的文件信息;
- 格式:
ls [参数]文件名称
-a 全部文件
-l 显示文件属性
以 . 开头的文件是隐藏文件,白字:文件,蓝字:文件夹/目录文件;红字:压缩包。
[root@localhost ~]$ alias ll
alias ll='ls -l --color=auto'
[root@localhost ~]$ ll
total 6184
-rw-------. 1 root root 1395 Jan 9 01:00 anaconda-ks.cfg
-rw-r--r--. 1 root root 6316925 Jan 10 03:32 backup.tar.gz
drwxr-xr-x. 2 root root 6 Jan 9 01:22 Desktop
...
[root@localhost ~]$ ls -ld /etc
drwxr-xr-x. 135 root root 8192 Jan 10 04:10 /etc/
[root@localhost ~]$ ls -al
total 6236
dr-xr-x---. 15 root root 4096 Jan 14 06:54 .
dr-xr-xr-x. 17 root root 224 Jan 9 00:49 ..
2.6 文本文件编辑命令
2.6.1 cat
- 功能:查看纯文本文件(内容较少的);
- 格式:
cat [参数]文件名称
- 示例:
[root@localhost ~]$ cat -n initial-setup-ks.cfg
1
2
3 xconfig --startxonboot
4
5 eula --agreed
6
7 graphical
2.6.2 more
- 功能:查看纯文本文件(内容较多的),回车下一行,空格下一页;
- 格式:
more [参数] 文件名称
- 示例:
[root@localhost ~]$ more initial-setup-ks.cfg
xconfig --startxonboot
...
2.6.3 head
- 功能:查看纯文本文件的前N行;
- 格式:
head [参数] 文件名称
- 示例:
[root@linuxprobe ~]$ head -n 6 initial-setup-ks.cfg
xconfig --startxonboot
eula --agreed
2.6.4 tail
- 功能:查看纯文本文件的后N行或持续刷新文件的最新内容;
- 格式:
tail [参数] 文件名称
- 示例:
[root@localhost ~]$ tail -n 5 initial-setup-ks.cfg
%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
%end
[root@localhost ~]$ tail -f /var/log/messages
2.6.5 tr
- 功能:替换文本内容中的字符,不写回,不影响原文件;
- 格式:
tr [原始字符] [目标字符]
- 示例:
[root@linuxprobe ~]$ cat anaconda-ks.cfg | tr [a-z] [A-Z]
IGNOREDISK --ONLY-USE=SDA
AUTOPART --TYPE=LVM
...
2.6.6 wc
- 功能:统计指定文本文件的行数、字数或字节数(word counts);
- 格式:
wc [参数] 文件名称
作用 | 参数 |
---|
只显示行数 | -l |
只显示(英文)单词数 | -w |
只显示字节数(中文要除2) | -c |
[root@localhost ~]$ wc initial-setup-ks.cfg
49 135 1550 initial-setup-ks.cfg
[root@localhost ~]$ wc -l initial-setup-ks.cfg
49 initial-setup-ks.cfg
[root@localhost ~]$ ls | wc -l
12
2.6.7 stat
- 功能:查看文件的具体存储细节和时间等信息;
- 格式:
stat 文件名称
- 示例:
[root@localhost ~]
File: initial-setup-ks.cfg
Size: 1550 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 35330319 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: system_u:object_r:admin_home_t:s0
Access: 2021-01-14 09:20:19.228976824 +0800
Modify: 2021-01-09 01:22:24.158688637 +0800
Change: 2021-01-09 01:22:24.158688637 +0800
Birth: -
2.6.8 cut
- 功能:按列提取文本内容;
- 格式:
cut [参数] 文件名称
- 示例:
[root@localhost ~]$ head -n 2 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[root@localhost ~]$ cut -d: -f1 /etc/passwd
root
bin
daemon
adm
lp
sync
2.6.9 diff
- 功能:比较多个文件之间内容的差异;
- 格式:
diff [参数] 文件名称A 文件名称B
- 示例:
[root@linuxprobe ~]$ diff --brief diff_A.txt diff_B.txt
Files diff_A.txt and diff_B.txt differ
[root@linuxprobe ~]$ diff -c diff_A.txt diff_B.txt
*** diff_A.txt 2020-08-30 18:07:45.230864626 +0800
--- diff_B.txt 2020-08-30 18:08:52.203860389 +0800
***************
*** 1,5 ****
! Welcome to linuxprobe.com
Red Hat certified
! Free Linux Lessons
Professional guidance
Linux Course
--- 1,7 ----
! Welcome tooo linuxprobe.com
!
Red Hat certified
! Free Linux LeSSonS
! .....
Professional guidance
Linux Course
2.7 文件目录管理命令
2.7.1 touch
- 功能:创建空白文件或设置文件的时间(atime,mtime);
- 格式:
touch [参数] 文件名称
作用 | 参数 |
---|
仅修改“读取时间”(atime) | -a |
仅修改“修改时间”(mtime) | -m |
同时修改atime和mtime | -d |
[root@localhost ~]$ touch a.txt
[root@localhost ~]$ ls
anaconda-ks.cfg backup.tar.gz Documents initial-setup-ks.cfg Pictures Templates xiaozai
a.txt Desktop Downloads Music Public Videos
[root@linuxprobe ~]$ ls -l anaconda-ks.cfg
-rw-------. 1 root root 1213 May 4 15:44 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 1260 Aug 2 01:26 anaconda-ks.cfg
[root@linuxprobe ~]$ touch -d "2020-05-04 15:44" anaconda-ks.cfg
[root@linuxprobe ~]$ ls -l anaconda-ks.cfg
-rw-------. 1 root root 1260 May 4 15:44 anaconda-ks.cfg
2.7.2 mkdir
- 功能:用于创建空白的目录;
- 格式:
mkdir [参数] 目录名称
- 示例:
[root@localhost ~]$ mkdir a
[root@localhost ~]$ mkdir -p b/c/d
2.7.3 cp
- 功能:复制文件或目录;
- 格式:
cp [参数] 源文件名称 目标文件名称
作用 | 参数 |
---|
保留原始文件属性 | -p |
若对象为“链接文件”,则保留该“链接文件”的属性 | -d |
递归持续复制(用于目录) | -r |
若目标文件存在则询问是否覆盖 | -i |
相当于-pdr(p、d、r为上述参数) | -a |
[root@localhost b]$ ls
c
[root@localhost b]$ cp -r c c1
[root@localhost b]$ ls
c c1
[root@localhost b]$ cd c1
[root@localhost c1]$ ls
d
2.7.4 mv
- 功能:剪切或重命名文件;
- 格式:
mv [参数] 源文件名称 目标文件名称
- 示例:
[root@localhost ~]$ mv a.txt ax.txt
[root@localhost ~]$ ls
a ax.txt
2.7.5 rm
- 功能:删除文件或目录;
- 格式:
rm [参数] 文件/目录名称
[root@localhost ~]$ rm -rf ax.txt
[root@localhost ~]$ rm -rf /
2.7.6 dd
- 功能:按照指定大小的数据块个数来复制文件或转换文件;
- 格式:
dd if=参数值 of=参数值 count=参数值 bs=参数值
作用 | 参数 |
---|
输入的文件名称(input file) | if |
输出的文件名称(output file) | of |
设置复制的每个块的大小(block size) | bs |
设置要复制的块的数量 | count |
[root@localhost ~]$ dd if=/dev/zero of=test_file count=1 bs=100M
1+0 records in
1+0 records out
104857600 bytes (105 MB, 100 MiB) copied, 0.411219 s, 255 MB/s
[root@linuxprobe ~]$ dd if=/dev/cdrom of=RHEL-server-8.0-x86_64-LinuxProbe.Com.iso
13873152+0 records in
13873152+0 records out
7103053824 bytes (7.1 GB, 6.6 GiB) copied, 27.8812 s, 255 MB/s
2.7.7 file
- 功能:查看文件的类型(Linux中一切皆文件);
- 格式:
file 文件名称
- 示例:
[root@localhost ~]$ file a
a: directory
2.8 打包压缩与搜索命令
rhel考题
2.8.1 tar
- 功能:对文件进行打包压缩或解压;
- 格式:
tar 参数 文件名称
作用 | 参数 |
---|
创建压缩文件 | -c |
解开压缩文件 | -x |
查看压缩包内有哪些文件 | -t |
用Gzip压缩或解压 | -z |
用bzip2压缩或解压 | -j |
显示压缩或解压的过程 | -v |
目标文件名 | -f |
保留原始的权限与属性 | -p |
使用绝对路径来压缩 | -P |
指定解压到的目录 | -C |
z :gzip压缩, 常用命名为xxxx.tar.gz
j :bzip2压缩,常用命令为xxxx.tar.bz2
压缩和解压时,参数的 “-” 可以省略
[root@localhost ~]$ tar -czvf test.tar.gz a
[root@localhost ~]$ tar xzvf test.tar.gz -C a
2.8.2 grep
- 功能:用于按行提取文本内容 (关键词搜索);关联cut时按列提取内容,但cut是针对文本文件。。。
- 格式:
grep [参数] 文件名称
作用 | 参数 |
---|
将可执行文件(binary)当作文本文件(text)来搜索 | -b |
仅显示找到的行数 | -c |
忽略大小写 | -i |
显示行号 | -n |
反向选择——仅列出没有“关键词”的行 | -v |
[root@localhost a]$ 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
2.8.3 find
- 功能:按照指定条件来查找文件所对应的位置;(文件检索)
- 格式:
find [查找范围] 寻找条件
作用 | 参数 |
---|
匹配名称 | -name |
匹配权限(mode为完全匹配,-mode为包含即可) | -perm |
匹配所有者 | -user |
匹配所有组 | -group |
匹配修改内容的时间(-n指n天以内,+n指n天以前) | -mtime -n +n |
匹配访问文件的时间(-n指n天以内,+n指n天以前) | -atime -n +n |
匹配修改文件权限的时间(-n指n天以内,+n指n天以前) | -ctime -n +n |
匹配无所有者的文件 | -nouser |
匹配无所有组的文件 | -nogroup |
匹配比文件f1新但比f2旧的文件 | -newer f1 !f2 |
匹配文件类型(后面的字幕字母依次表示块设备、目录、字符设备、管道、链接文件、文本文件) | --type b/d/c/p/l/f |
匹配文件的大小(+50KB为查找超过50KB的文件,而-50KB为查找小于50KB的文件) | -size |
忽略某个目录 | -prune |
后面可跟用于进一步处理搜索结果的命令(下文会有演示) | -exec …… {}\; |
[root@localhost a]$ find / -name "host" -print
find: ‘/proc/4268’: No such file or directory
/usr/bin/host
/usr/lib/modules/4.18.0-80.el8.x86_64/kernel/drivers/memstick/host
/usr/lib/modules/4.18.0-80.el8.x86_64/kernel/drivers/mmc/host
/usr/lib/modules/4.18.0-80.el8.x86_64/kernel/drivers/nvme/host
/usr/lib/modules/4.18.0-80.el8.x86_64/kernel/drivers/usb/host
/usr/share/bash-completion/completions/host
[root@linuxprobe ~]$ find / -perm -4000 -print
/usr/bin/fusermount
/usr/bin/chage
/usr/bin/gpasswd
/usr/bin/newgrp
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)