第2章 新手必须掌握的Linux命令

2.2 执行命令的必备知识(Ctrl+C/D/L)

Ctrl+C - 终止当前进程的运行
Ctrl+D - 键盘输入结束
Ctrl+L - 清空当前终端中已有的内容

2.3 常用系统工作命令( echo | date | timedatectl | reboot | poweroff | wget | ps | pstree | top | nice | pidof | kill | killall )

  1. echo命令,用于在终端设备上输出字符串或变量提取后的值,语法格式为echo [字符串] [$变量]
- 把指定字符串"Linuxprobe.com"输出到终端屏幕
[root@linuxprobe~]# echo Linuxprobe.com
- 提取出变量SHELL的值,并将其输出到屏幕上
[root@linuxprobe~]# echo $SHELL
  1. date命令,用于显式或设置系统的时间与日期,语法格式为data [+指定的格式]
参数作用
%S秒(00~59)
%M分钟(00~59)
%H小时(00~23)
%I小时(00~12)
%m月份(1~12)
%p显示出AM或PM
%a缩写的工作日名称(Sun)
%A完整的工作日名称(Sunday)
%b缩写的月份名称(Jan)
%B完整的月份名称(January)
%q季度(1~4)
%y简写年份(20)
%Y完整年份(2020)
%d本月中的第几天
%j今年中的第几天
%n换行符(相当于按下回车键)
%t跳格(相当于按下Tab键)
- 按照默认格式查看当前系统时间
[root@linuxprobe~]# date
- 按照“年--日 小时:分钟:秒”的格式查看当前系统时间
[root@linuxprobe~]# date "+%Y-%m-%d %H:%M:%S"
- 将系统当前时间设置为2020年11月1日8点30分
[root@linuxprobe~]# date -s "20201101 8:30:00"
- 查看今天是当年中的第几天
[root@linuxprobe~]# date "+%j"
  1. timedatectl命令,用于设置系统的时间,语法格式为timedatectl [参数]
参数作用
status显式状态信息
list-timezones列出已知时区
set-time设置系统时间
set-timezone设置生效时区
- 查看系统时间与时区
[root@linuxprobe~]# timedatectl status
- 手动设置上海时区
timedatectl set-timezone Asia/Shanghai
- 手动修改系统日期
[root@linuxprobe~]# timedatectl set-time 2024-04-23

-修改时间
[root@linuxprobe~]# timedatectl set-time 21:53
[root@linuxprobe~]# date
  1. reboot命令,用于重启系统

  2. poweroff命令,用于关闭系统

  3. wget命令,用于在终端命令行中下载网络文件,语法格式为wget [参数] 网址

参数作用
-b后台下载模式
-P下载到指定目录
-t最大尝试次数
-c断点续传
-p下载页面内所有资源,包括图片、视频等
-r递归下载
[root@linuxprobe~]# wget https://www.linuxprobe.com/docs/LinuxProbe.pdf
- 使用wget命令递归下载网站内的所有页面数据以及文件
[root@linuxprobe~]# wget -rp https://www.linuxprobe.com
  1. ps命令,用于查看系统中的进程状态,语法格式为ps [参数]
参数作用
-a显示所有进程(包括其他用户的进程)
-u用户以及其他详细信息
-x显示没有控制终端的进程

5种常见的进程状态:

  • R(运行):进程正在运行或在运行队列中等待
  • S(中断):进程处于休眠中,当某个条件形成后或者接收到信号时,则脱离该状态
  • D(不可中断):进程不响应系统异步信号,即便用kill命令也不能将其中断
  • Z(僵死):进程已经终止,但进程描述符依然存在吗,直到父进程调用wait4()系统函数后将进程释放
  • T(停止):进程收到停止信号后停止运行
  1. pstree命令,用于以树状图的形式展示进程之间的关系

  2. top命令,用于动态地监视进程活动及系统负载等信息

  3. nice命令,用于调整进程的优先级,语法格式为nice 优先级数字 服务名称

- 将bash服务的优先级调整到最高
[root@linuxprobe~]# nice -n -20 bash
  1. pidof命令,用于查询某个指定服务进程的PID号码值,语法格式为pidof [参数] 服务名称
- 查询本机上sshd服务程序的PID
[root@linuxprobe~]# pidof sshd
  1. kill命令,用于终止某个指定PID值得服务进程,语法格式为kill [参数] 进程的PID
- 以最高级别地强制杀死PID为2156的进程
[root@linuxprobe~]# kill -9 2156
  1. killall命令,用于终止某个指定名称的服务所对应的全部进程,语法格式为killall [参数] 服务名称

2.4 系统状态检测命令( ifconfig | uname | uptime | free | who | last | ping | tracepath | netstat | history | sosreport )

  1. ifconfig命令,用于获取网卡配置与网络状态等信息,语法格式为ifconfig [参数] [网络设备]

  2. uname命令,用于查看系统内核版本与系统架构等信息,语法格式为uname [-a]

  3. uptime命令,用于查看系统的负载信息

  4. free命令,用于显示当前系统中内存的使用量信息,语法格式为free [-h]

  5. who命令,用于查看当前登入主机的用户终端信息

  6. last命令,用于调取主记的被访记录

  7. ping命令,用于测试主机之间的网络连通性,语法格式为ping [参数] 主机地址

参数作用
-c总共发送次数
-l指定网卡名称
-I每次间隔时间(秒)
-W最长等待时间(秒)
- 测试一台IP地址为192.168.10.10的主机
[root@linuxprobe~]# ping -c 4 192.168.10.10
  1. tracepath命令,用于显示数据包到达目的主机时途中经过的所有路由信息,语法格式为tracepath [参数] 域名

  2. netstat命令,用于显示如网络连接、路由表、接口状态等的网络相关信息,语法格式为netstat [参数]

参数作用
-a显示所有连接中的Socket
-p显示正在使用的Socket信息
-t显示TCP协议的连接状态
-u显示UDP协议的连接状态
-n使用IP地址,不使用域名
-l仅列出正在监听的服务状态
-i现在网卡列表信息
-r显示路由表信息
- 显示详细的网络状态
[root@linuxprobe~]# netstat -a 
- 显示网卡列表
[root@linuxprobe~]# netstat -i
  1. history命令,用于显示执行过的命令历史,语法格式为history [-c]
- 清除当前用户在本机上执行的Linux命令历史记录信息
[root@linuxprobe~]# history -c
  1. sosreport命令,用于收集系统配置及架构信息并输出诊断文档

2.5 查找定位文件命令( pwd | cd | ls | tree | find | locate | whereis | which )

  1. pwd命令,用于显示用户当前所处的工作目录

  2. cd命令,用于切换当前的工作路径,语法格式为cd [参数] [目录]

- 切换进/etc目录中
[root@linuxprobe~]# cd /etc
- 返回到上一次的目录
[root@linuxprobe~]# cd -
- 快速切换到用户的家目录
[root@linuxprobe~]# cd ~
  1. ls命令,用于显示目录中的文件信息,语法格式为ls [参数] [文件名称]

  2. tree命令,用于以树状图的形式列出目录内容及结构

  3. 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的问价u你,而-50KB为查找小于50KB的文件)
-prune忽略某个目录
-exec… {};后面可跟用于进一步处理搜索结果的命令
- 获取/etc目录中所有以host开头的文件列表
[root@linuxprobe~]# find /etc -name "host*"
- 在整个系统中搜索权限中包括SUID权限的所有文件
[root@linuxprobe~]# find / -perm -4000 -print
- 在整个文件系统中找出所有归属于linuxprobe用户的文件并复制到/root/findresults目录中
[root@linuxprobe~]# find / -user linuxprobe -exec cp -a {} /root/findresult \
  1. locate命令,用于按照名称快速搜索文件所对应的位置,语法格式为locate 文件名称
- 第一次使用locate命令之前,先执行updatedb命令来生成索引数据库,然后再进行查找
[root@linuxprobe~]# updatedb
[root@linuxprobe~]# ls -l /var/lib/mlocate/mlocate.db
[root@linuxprobe~]# locate whereis
  1. whereis命令,用于按照名称快速搜索二进制程序(命令)、源代码以及帮助文件所对应的位置,语法格式为whereis 命令名称

  2. which命令,用于按照指定名称快速搜索二进制程序(命令)所对应的位置,语法格式为which 命令名称

2.6 文本文件编辑命令( cat | more | head | tail | tr | wc | stat | grep | cut | diff | uniq | sort )

  1. cat命令,用于查看纯文本文件(内容较少的),语法格式为cat [参数] 文件名称
- 查看文本内容顺便显示行号
[root@linuxprobe~]# cat -n initial-setup-ks.cfg
  1. more命令,用于查看纯文本文件(内容较多的),语法格式为more [参数] 文件名称

  2. head命令,用于查看纯文本文件的前N行,语法格式为head [参数] 文件名称

- 查看文本前10行的内容
[root@linuxprobe~]# head -n 10 initial-setup-ks.cfg
  1. tail命令,用于查看纯文本文件的后N行或持续刷新文件的最新内容,语法格式为tail [参数] 文件名称
- 查看文本内容的最后10行
[root@linuxprobe~]# tail -n 10 initial-setup-ks.cfg
- 实时查看最新的日志文件
[root@linuxprobe~]# tail -f /var/log/messages
  1. tr命令,用于替换文本内容中的字符,语法格式为tr [原始字符] [目标字符]
- 把某个文本内容中的英文全部替换为大写
[root@linuxprobe~]# cat anaconda-ks.cfg | tr [a-z] [A-Z]
  1. wc命令,用于统计指定文本文件的行数、字数或字节数,语法格式为wc [参数] 文件名称
参数作用
-l只显示行数
-w只显示单词数
-c只显示字节数
- 统计当前系统中有多少个用户
[root@linuxprobe~]# wc -l /etc/passwd
  1. stat命令,用于查看文件的具体存储细节和时间等信息,语法格式为stat 文件名称
- 查看文件的内容最后一次被访问时间、内容最后一次被修改时间和属性最后一次被修改时间
[root@linuxprobe~]# stat anaconda-ks.cfg
  1. grep命令,用于按行提取文本内容,语法格式为grep [参数] 文件名称
参数作用
-b将可执行文件(binary)当作文本文件(text)来搜索
-c仅显示找到的行数
-I忽略大小写
-n显示行号
-v反向选择——仅列出没有“关键词”的行
- 查找出当前系统中不允许登录系统的所有用户的信息
[root@linuxprobe~]# grep /sbin/nologin /etc/passwd
  1. cut命令,用于按列提取文本内容,语法格式为cut [参数] 文件名称
- 提取出passwd文件中的用户名信息,即提取以冒号为间隔符号的第一列的内容
[root@linuxprobe~]# cut -d : -f 1 /etc/passwd
  1. diff命令,用于比较多个文件之间内容的差异,语法格式为diff [参数] 文件名称A 文件名称B
- 判断两个文件是否相同
[root@linuxprobe~]# diff --brief A.txt B.txt
[root@linuxprobe~]# diff -c A.txt B.txt
  1. uniq命令,用于去除文本中连续的重复行,语法格式为uniq [参数] 文件名称

  2. sort命令,用于对文本内容进行再排序,语法格式为sort [参数] 文件名称

参数作用
-f忽略大小写
-b忽略缩进与空格
-n以数值型排序
-r反向排序
-u去除重复行
-t指定间隔符
-k设置字段范围
- 想以第三个字段中的数字作为排序依据
[root@linuxprobe~]# cat user.txt
tss:x:59:59: used by the trousers package to sandbox the tcsd daemon
polkitd:x:998:996:User for polkited
geoclue:x:997:995:User for geoclue
rtkit:x:172:172:RealtimeKit
pulse:x:171:171:PulseAudio System Daemon
[root@linuxprobe~]# sort -t : -k 3 -n user.txt

2.7 文件目录管理命令( touch | mkdir | cp | mv | rm | dd | file | tar )

  1. touch命令,用于创建空白文件或设置文件的时间,语法格式为touch [参数] 文件名称
参数作用
-a仅修改“访问时间”(Atime)
-m仅修改“修改时间”(Mtime)
-d同时修改Atime与Mtime
[root@linuxprobe~]# ls -l anaconda-ks.cfg
[root@linuxprobe~]# echo "Visit the LinuxProbe.com to learn linux skills" >> anaconda-ks.cfg
[root@linuxprobe~]# touch -d "2024-04-24 8:47" anaconda-ks.cfg
  1. mkdir命令,用于创建空白的目录,语法格式为mkdir [参数] 目录名称
- 创建出具有嵌套层叠关系的文件目录
[root@linuxprobe~]# mkdir -p a/b/c/d/e
  1. cp命令,用于复制文件或目录,语法格式为cp [参数] 源文件名称 目标文件名称
参数作用
-p保留原始文件的属性
-d若对象为“链接文件”,则保留该“链接文件”的属性
-r递归持续复制(用于目录)
-i若目标文件存在则询问是否覆盖
-a相当于-pdr
[root@linuxprobe~]# touch install.txt
[root@linuxprobe~]# cp install.txt x.txt
  1. mv命令,用于剪切或重命名文件,语法格式为mv [参数] 源文件名称 目标文件名称
[root@linuxprobe~]# mv x.txt linux.txt
  1. rm命令,用于删除文件或目录,语法格式为rm [参数] 文件名称
参数作用
-f强制执行
-i删除前询问
-r删除目录
-v显示过程
  1. dd命令,用于按照指定大小和个数的数据块来复制文件或转换文件,语法格式为dd if=参数值 of=参数值 count=参数值 bs=参数值
参数作用
if输入的文件名称
of输出的文件名称
bs设置每个“块”的大小
count设置要复制“块”的个数
-/dev/zero设备文件中取出一个大小为560MB的数据块,然后保存成名为560_file的文件
[root@linuxprobe~]# dd if=/dev/zero of=560_file bs=560M count=1
- 压制出光盘镜像文件
[root@linuxprobe~]# dd if=/dev/cdrom of=RHEL-server-8.0-x86_64-LinuxProbe.Com.ios
  1. file命令,用于查看文件的类型,语法格式为file 文件名称

  2. tar命令,用于对文件进行打包压缩或解压,语法格式为tar 参数 文件名称

参数作用
-c创建压缩文件
-x解开压缩文件
-t查看压缩包内有哪些文件
-z用gzip压缩或解压
-j用bzip2压缩或解压
-v显示压缩或解压的过程
-f目标文件名
-p保留原始的权限和属性
-P使用绝对路径来压缩
-C指定解压到的目录
-/etc目录通过gzip格式进行打包压缩
[root@linuxprobe~]# tar czvf etc.tar.gz /etc
- 将打包后的压缩包文件指定解压到/root/etc目录中
[root@linuxprobe~]# mkdir /root/etc
[root@linuxprobe~]# tar xzvf etc.tar.gz -C /root/etc

复习题

1

在RHEL 8 及众多的Linux系统中,最常用的Shell终端是什么?
Bash(Bourne-Again SHell)解释器

2

执行Linux系统命令时,添加参数的目的是什么?
为了让Linux系统命令能够更贴合用户的实际需求进行工作

3

Linux系统命令、命令参数以命令对象之间,应该使用什么来间隔
空格

4

请写出用echo命令把SHELL变量值输出到屏幕终端的命令

[root@linuxprobe~]# echo $SHELL

5

简述Linux系统中5种进程的名称及含义
R(运行)、S(中断)、D(不可中断)、Z(僵死)、T(停止)

6

请尝试使用Linux系统命令关闭PID为5529的服务进程

[root@linuxprobe~]# kill 5529

7

使用ifconfig命令查看网络状态信息时,需要重点查看的4项信息分别是什么
网卡名称、IP地址、网卡的物理地址(MAC地址)、RX/TX的收发流量数据大小

8

使用uptime命令查看系统负载时,对应的负载数值如果是0.91、0.56、0.32,那么最近15分钟内负载压力最大的是哪个时间段
最近1分钟内

9

使用history命令查看历史命令的执行记录时,命令前面的编码数字除了排序外还有什么用处

- 重复执行某一次的命令
[root@linuxprobe~]# !编码数字

10

若想查看的文件具有较长的内容,那么使用cat、more、head、tail中的哪个命令最合适

[root@linuxprobe~]# more

11

在使用mkdir命令创建有嵌套关系的目录时,应该加上什么参数呢

[root@linuxprobe~]# mkdir -p

12

在使用rm命令删除文件或目录时,可使用哪个参数来避免二次确认呢

[root@linuxprobe~]# rm -f

13

若有一个名为backup.tar.gz的压缩包文件,那么解压的命令应该是什么

[root@linuxprobe~]# tar -xzvf backup.tar.gz

14

使用grep命令对某个文件进行关键词搜索时,若想要进行文件内容反选,应使用什么参数

[root@linuxprobe~]# grep -v
  • 28
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值