必须掌握的Linux命令

关于刘遄老师《Linux就该这样学》的相关学习笔记总结

这一章节中,主要讲解了一些常见并且比较重要的Linux命令。

2.1 Shell

1、系统内核

系统内核: 计算机硬件是由运算器、控制器、存储器、输入/输出设备等共同组成的,系统内核就是让各种硬件设备各司其职且协同运行的东西。

  • Linux系统的内核负责完成对硬件资源的分配、调度等管理任务。
  • 用户与系统内核的交互是通过基于系统调用接口开发出的程序或服务来管理计算机。

2、Shell

Shell: 也称为终端或壳。 Shell为命令行工具,充当人与内核(硬件)之间的翻译官,用户把一些命令“告诉”终端,然后就会调用相应的程序服务区完成某些相应的工作。

  • 常见的终端:Bash解释器。
  • Bash解释器的特点:
    (1)可以通过上下键来调取查看历史执行过的命令;
    (2)命令以及参数仅需输入前几位便可以通过Tab键补全;
    (3)具有强大的批处理脚本;
    (4)具有实用的环境变量功能。

2.2 执行查看帮助命令

  • 常见的Linux执行命令格式为:命令名称 [命令参数] [ 命令对象]
  • 命令参数有长格式、短格式两种表示方法,两者分别用–和-作为前缀。其中长格式和长格式,长格式和短格式之间不能进行合并,而短格式和短格式可以进行合并,合并之后仅保留一个 - 仅可。

1、常用按键

按键 用途
空格/PgDn 向下翻一页
PgUp 向上翻一页
home 跳往首页
end 跳往尾页
/ 从上至下搜索某个关键词,如“/linux”
从下至上搜索某个关键词,如“?linux”
n 定位到下一个搜索到的关键词
N 定位到上一个搜索到的关键词
q 退出帮助文档

2、man命令

man就是manual(手册)的缩写。该命令为Linux中的帮助指令,通过该命令可以查看相应的帮助信息。

  • 查看man命令自身的帮助信息
    [root@linuxprobe ~]# man man

2.3 常用系统工作命令

1、echo命令

  • 作用:(echo含有重复、回响的含义)该命令用于在终端输出字符串或者变量提取后的值。
  • 格式:echo [字符串|$变量]
  • 例如:
    输出字符串
    [root@linuxprobe ~]# echo LINUX
    LINUX
    

2、date命令

  • 作用:该命令用于显示及设置系统的时间或日期。

  • 格式:date [选项][+指定的格式]

  • 例如:
    显示时间

    [root@linuxprobe ~]# date
    

    按照特定的格式查看时间

    [root@linuxprobe ~]# date "+%Y-%m-%d %H:%M%S"
    2020-4-6 15:30:00
    

    设置时间

    [root@linuxprobe ~]# date -s "20200406 18:00:00"
    

    查看今天是当年的第几天

    [root@linuxprobe ~]# date "+%j"
    

3、reboot命令

  • 作用:该命令用于重启系统。
  • 权限:只能使用root管理员来重启。

4、poweroff命令

  • 作用:该命令用于关闭系统。
  • 权限:只能使用root管理员来关闭。

5、wget命令

  • 作用:该命令用于在终端中下载网络文件。
  • 格式:wget [参数] 下载地址。

6、ps命令

  • 作用:该命令用于查看系统中的进程状态。
  • 格式:ps [参数] 。
  • ps命令常与管道符技术搭配使用,用于抓取与某个指定服务进程相对应的PID号码。
  • 常见参数:
    -a 显示所有进程(包括其他用户的进程)(aux)
    -u 用户及其他详细信息
    -x 显示没有控制终端的进程
  • 常见的进程状态:
    R(运行):进程正在运行或在运行队列中等待。
    S(中断):进程处于休眠中,当某个条件形成后或者接收到信号时,则脱离该状态。
    D(不可中断):进程不响应系统异步信号,即使使用kill命令也不能使其中断。
    Z(僵死):进程已经终止,但进程描述依然存在,直到父进程调用wait4()系统函数后将其释放。
    T(停止):进程收到停止信号后停止运行。
  • ps命令可允许参数不加减号(-)

7、top命令

  • 作用:该命令用于动态地监视进程活动与系统负载等信息。
  • 相当于“强化版的Windows任务管理器”。

8、pidof命令

  • 作用:该命令用于查询某个指定服务进程的PID值。
  • 格式:pidof [参数] [服务名称]
  • 每个进程的进程号码值(PID)是唯一的。
  • 例如:
    [root@linuxprobe ~]# pidof sshd
    2156 
    

9、kill命令

  • 作用:该命令用于终止某个指定PID的服务进程。
  • 格式:kill [参数] [进程PID]
  • 例如:
    [root@linuxprobe ~]# kill 2156
    

10、killall命令

  • 作用: 该命令用于终止某个指定名称的服务所对应的全部进程。
  • 格式: killall [参数] [进程名称]

若系统中正在执行一个命令,想要立即停止,可以使用快捷键Ctrl+C;
如果有些命令在执行时不断地在屏幕上输出信息,可以在执行命令时在末尾添加一个&符号,这样命令将进入系统后台执行。

2.4 系统状态检测命令

1、ifconfig命令

  • 作用:(config含有计算机系统配置的含义)该命令用于获取网卡配置与网络状态等信息,主要查看的是网卡名称、inet参数后的IP地址、ether参数后面的网卡物理地址(MAC地址)以及RX、TX的接收数据包与发送数据包的个数及累计流量。
  • 格式:idconfig [网络设备] [参数]

2、uname命令

  • 作用:该命令用于查看系统内核与系统版本等信息。

  • 格式: uname [-a]

  • 查看当前系统版本的详细信息,则需要查看redhat-release文件

    [root@linuxprobe ~]# cat /etc/reshat-release
    

3、uptime命令

  • 作用:该命令用于查看系统的负载信息

4、free命令

  • 作用: 用于显示当前系统中内存的使用量信息。
  • 格式:freea [-h]

5、who命令

  • 作用:用于查看当前登入主机的用户终端信息。
  • 格式:who[参数]

6、last命令

  • 作用:用于查看所有系统的登录记录。
  • 格式:last[参数]

7、history命令

  • 作用:用于当前用户查看历史执行过的命令。
  • 格式:history [-c]
    -c参数会清空所有的命令历史记录。
  • “!数字”可以用来重复执行某一次的命令。
  • 历史命令记录会被保存在用户家目录中的.bash-history文件中。
  • Linux系统中以点开通的文件代表隐藏文件,可以用cat命令查看其文件内容。

8、sosreport命令

  • 作用:用于收集系统配置及架构信息并输出诊断文档。

2.5 工作目录切换命令

工作目录指的是用户当前在系统中所处的位置。

1、pwd命令

  • 作用:用于显示用户当前所处的工作目录。
  • 格式:pwd [选项]

2、cd命令

  • 作用:用于切换工作路径。
  • 格式:cd [目录名称]
  • 例如:
    返回上一次所处的目录  cd -
    进入上级目录      cd …
    切换到当前用户的家目录 cd ~
    切换到其他用户的家目录 cd ~usename

3、ls命令

  • 作用:用于显示目录中的文件信息。
  • 格式:ls [选项] [文件]
  • 例如:
    查看全部文件,包括隐藏文件    ls -a
    查看文件的属性、大小等详细信息  ls -l
    查看目录属性信息          ls -ld /etc (查看/etc目录的权限与属性信息)
    查看当前目录中所有文件并输出相应的属性信息  ls -al

2.6 文本文件编辑命令

Linux系统中“一切都是文件”,对服务程序进行配置实际上就是编辑程序的配置文件。

1、cat命令

  • 作用:用于查看纯文本文件(内容较少的)。
  • 格式:cat [选项] [文件]
  • 查看时若想显示行号,则可以加入参数 -n

2、more命令

  • 作用:用于查看纯文本文件(内容较多的)。
  • 格式:more [选项] [文件]
  • 该命令会在最下面使用百分比显示已经阅读了多少内容,可以使用空格键或回车键向下翻页。

3、head命令

  • 作用:用于查看纯文本文档的前N行。
  • 格式:head [选项] [文件]
  • 例如:
    [root@linuxprobe ~]# head -n 20 initial-setup-ks.cfg
    

4、tail命令

  • 作用:(tail含有尾部的含义)用于查看纯文本文档的后N行或持续刷新内容。
  • 格式:tail [选项] [文件]
  • 例如:
    查看最后20行   tail -n 20 文件名
    持续刷新一个文件的内容,实时查看最新日志文件    tail -f 文件名

5、tr命令

  • 作用:用于替换文本文件中的字符。
  • 格式:tr [原始字符] [目标字符]
  • 例如:
    将某个文本内容中的英文全部替换为大写,首先使用cat命令读取待处理 的文本,然后通过管道符把这些文本内容传递给tr命令进行替换操作
    cat 文件名 | tr [a-s] [A-Z]

6、wc命令

  • 作用:用于统计指定文本的行数、字数、字节数。
  • 格式:wc [参数] 文本
  • 参数:
    只显示行数  -l
    只显示单词书 -w
    只显示字节数 -c

7、stat命令

  • 作用:用于查看文件的具体存储信息和时间等信息。
  • 格式:stat 文件名称
  • 例如:
    stat anaconda-ks.cfg
    会显示出文件的三种时间状态:Access、Modify、Change

8、cut命令

  • 作用:用于按“列”提取文本字符。
  • 格式:cut [参数] 文本
  • 参数:
    设置需要查看的列数 -f
    设置间隔符号    -d
  • 例如:
    passwd是用于保存系统账户信息的文件,用户信息的每一项值之间采用冒号来间隔。
    若我们想要提取出passwd文件中的用户名信息,即提取以冒号:为间隔符号的第一列内容:
    [root@linuxprobe ~]# cut -d: -f1 /etc/passwd
    

9、diff命令

  • 作用:用于比较多个文本文件的差异。

  • 格式:diff [参数] 文件

  • 参数:
    确认两个文件是否不同     --brieff
    详细比较多个文件的差异之处  -c

  • 例如:

     [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
    

2.7 文本目录管理命令

这一部分主要讲解的是关于文件的创建、修改、剪切、复制、更名与删除等操作。

1、touch命令

  • 作用:用于创建空白文件或者设置文件的时间(修改时间mtime、文件权限或属性的更改时间(ctime)与文件的读取时间atime)。
  • 格式:touch [选项] [文件]
  • 参数:
    仅修改“读取时间”(atime)     -a
    仅修改“修改时间”(mtime)     -m
    同时修改 atime与mtime       -d
  • 例如:
[hanna7@hanna ~]# touch -d "2020-04-09 10:00"  anaconda-ks.cfg

2、mkdir命令

  • 作用:用于创建空白目录。
  • 格式:mkdir [选项] 目录
  • 例如:
    创建空白目录
    [hanna7@hanna ~]# mkdir linuxprobe
    
    结合-p参数递归创建具有嵌套叠层关系的文件目录
    [hanna7@hanna ~]# mkdir -p a/b/c/d
    

3、cp命令

  • 作用:用于复制文件或目录。
  • 格式:cp [选项] 源文件 目标文件
  • 如果目标文件是目录,则会把源文件复制到该目录中;
    如果目标文件也是普通文件,则会询问是否覆盖;
    如果目标文件不存在,则执行征程的复制操作。
  • 参数
参数 作用
-p 保留原始文件的属性
-d 若对象为“链接文件”,则保留该文件的属性
-r 递归持续复制(用于目录)
-i 若目标文件存在则询问是否覆盖
-a 相当于-pdr

4、mv命令

  • 作用:用于剪切文件或将文件重命名;
  • 格式:mv [选项] 源文件 [目标路径|目标文件名]
  • 剪切操作不同于复制操作,它会默认把源文件删除,只保留剪切后的文件。
  • 若在同一个目录中对一个文件进行剪切操作,相当于对其进行重命名。

5、rm命令

  • 作用:用于删除文件或目录
  • 格式:rm [选项] 文件
  • 参数:
    删除一个目录  -r
    强制删除    -f
    (删除文件时系统会询问是否执行删除操作,加上-f之后会强制删除)

6、dd命令

  • 作用:用于按照指定大小和个数的数据块复制文件或转换文件。
  • 格式:dd [参数]
  • 参数:
参数 作用
if 输入的文件名称
of 输出的文件名称
bs 设置每个“块”的大小
count 设置要复制的“块”的个数
  • 例如
    从/dev/zero设备文件中取出一个大小为560MB的数据块,然后保存成名为560_file的文件

    [hanna7@hanna ~]# dd if=/dev/zero of=560_file count = 1 bs=560M
    

    把光驱设备中的光盘制作成iso格式的镜像文件

    [hanna7@hanna ~]# dd if=/dev/cdrom of=RHEL-server-7.0-x86_64-LinuxProbe.Com.iso
    

7、file命令

  • 作用:用于查看文件的类型
  • 格式:file 文件名

2.8 打包压缩与搜索命令

这一部分主要是关于文件的打包压缩与解压,以及让用户基于关键词在文本文件中搜索相匹配的信息、在整个文件系统中基于指定的名称或属性搜索特定的文件。

1、tar命令

  • 作用:用于对文件进行打包压缩或解压。
  • 格式:tar [选项] [文件]
  • Linux系统中文件常见格式:.tar或 .tar.gz 或 .tar.bz2
  • 参数在这里插入图片描述
  • 用户根据文件的后缀决定使用何种格式参数进行解压。
  • 参数-f必须放到擦书的最后一位,代表要压缩或解压的软件包名称。
  • 常用组合:
    “tar -czvf 压缩包名称.tar.gz 要打包的目录”
    “tar -xzvf 压缩包名称.tar.gz”

2、grep命令

  • 作用:用于文本中执行关键词搜索,并显示匹配的结果。
  • 格式:grep [选项] [文件]
  • 参数:
    在这里插入图片描述

3、find命令

  • 作用:用于按照指定条件来查找文件。
  • 格式:find [查找路径] 寻找条件 操作
  • 参数:
    在这里插入图片描述
  • 例如:
    -exec参数用于把find命令搜索到的结果交给紧随其后的命令作进一步的处理(虽然是长格式形式,但只需要一个减号-)。
    在整个文件系统中(/)找出所有归属于hanna用户的文件并复制到/root/findresults/目录,其中{ }表示find命令搜索出的每一个文件,并且命令的结尾必须是“;”
    [hanna7@hanna ~]# find /  -user  hanna -exec cp -a { } /root/findresults/  \;
    

复习题

1.在RHEL 7 系统及众多的Linux 系统中,最常使用的Shell 终端是什么?
答:==Bash(Bourne-Again SHell)==解释器。

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

3.Linux 系统命令、命令参数及命令对象之间,普遍应该使用什么来间隔?
答:应该使用一个或多个空格进行间隔。

4.请写出用echo 命令把SHELL 变量值输出到屏幕终端的命令。
答:echo $SHELL。

5.简述Linux 系统中5 种进程的名称及含义。
答:在Linux 系统中,有下面5 种进程名称。
R(运行):进程正在运行或在运行队列中等待。
S(中断):进程处于休眠中,当某个条件形成后或者接收到信号时,则脱离该状态。
D(不可中断):进程不响应系统异步信号,即便用kill 命令也不能将其中断。
Z(僵死):进程已经终止,但进程描述符依然存在, 直到父进程调用wait4()系统函数
后将进程释放。
T(停止):进程收到停止信号后停止运行。

6.请尝试使用Linux 系统命令关闭PID 为5529 的服务进程。
答:执行kill 5529 命令即可;若知道服务的名称,则可以使用killall 命令进行关闭。

7.使用ifconfig 命令查看网络状态信息时,需要重点查看的4 项信息分别是什么?
答:这4 项重要信息分别是网卡名称、IP 地址、网卡物理地址以及RX/TX 的收发流量数据大小。

8.使用uptime 命令查看系统负载时,对应的负载数值如果是0.91、0.56、0.32,那么最近15分钟内负载压力最大的是哪个时间段?
答:通过负载数值可以看出,最近1 分钟内的负载压力是最大的。

9.使用history 命令查看历史命令的执行记录时,命令前面的数字除了排序外还有什么用处?
答:还可以用“!数字”的命令格式重复执行某一次的命令记录,从而避免了重复输入较长命令的麻烦。

10.若想查看的文件具有较长的内容,那么使用cat、more、head、tail 中的哪个命令最合适?
答:文件内容较长,使用more 命令;反之使用cat 命令。

11.在使用mkdir 命令创建有嵌套关系的目录时,应该加上什么参数呢?
答:应该加上==-p ==递归迭代参数,从而自动化创建有嵌套关系的目录。

12.在使用rm 命令删除文件或目录时,可使用哪个参数来避免二次确认呢?
答:可使用== -f ==参数,这样即可无需二次确认。

13.若有一个名为backup.tar.gz 的压缩包文件,那么解压的命令应该是什么?
答:应该用tar 命令进行解压,执行tar -xzvf backup.tar.gz 命令即可。

14.使用grep 命令对某个文件进行关键词搜索时,若想要进行文件内容反选,应使用什么参数?
答:可使用==-v== 参数来进行匹配内容的反向选择,即显示出不包含某个关键词的行。

发布了31 篇原创文章 · 获赞 4 · 访问量 2451

猜你喜欢

转载自blog.csdn.net/weixin_44412429/article/details/105346495