三、Linux Shell

3.1 文件管理

3.1.1 ls 命令

显示指定工作目录下的内容及属性信息

ls 命令是Linux下最常用的指令之一。ls命令为英文单词 list 的缩写,正如英文单词 list 的意思,其功能是列出指定目录下的内容及其相关属性信息。

默认状态下,ls命令会列出当前目录的内容。而带上参数后,我们可以用ls做更多的事情。

语法格式: ls [选项] [文件]

常用参数:

-a 显示所有文件及目录 (包括以“.”开头的隐藏文件)
-l 使用长格式列出文件及目录信息
-r 将文件以相反次序显示(默认依英文字母次序)
-t 根据最后的修改时间排序
-A 同 -a ,但不列出 “.” (当前目录) 及 “..” (父目录)
-S 根据文件大小排序
-R 递归列出所有子目录

3.1.2 pwd命令

显示当前路径

pwd命令是“print working directory”中每个单词的首字母缩写,其功能正如所示单词一样,为打印工作目录,即显示当前工作目录的绝对路径。
在实际工作中,我们经常会在不同目录之间进行切换,为了防止“迷路”,我们可以使用pwd命令快速查看当前我们所在的目录路径。 语法格式: pwd [参数]

常用参数:

-L 显示逻辑路径

3.1.3 mkdir命令

mkdir命令是“make directories”的缩写,用来创建目录。

默认状态下,如果要创建的目录已经存在,则提示已存在,而不会继续创建目录。 所以在创建目录时,应保证新建的目录与它所在目录下的文件没有重名。
语法格式 : mkdir [参数] [目录]

常用参数:

-p 递归创建多级目录
-m 建立目录的同时设置目录的权限
-z 设置安全上下文
-v 显示目录的创建过程

3.1.4 cp命令

cp命令可以理解为英文单词copy的缩写,其功能为复制文件或目录。

cp命令可以将多个文件复制到一个具体的文件名或一个已经存在的目录下,也可以同时复制多个文件到一个指定的目录中。

语法格式:cp [参数] [文件]

常用参数:

-f 若目标文件已存在,则会直接覆盖原文件
-i 若目标文件已存在,则会询问是否覆盖
-p 保留源文件或目录的所有属性
-r 递归复制文件和目录
-d 当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录
-l 对源文件建立硬连接,而非复制文件
-s 对源文件建立符号连接,而非复制文件
-b 覆盖已存在的文件目标前将目标文件备份
-v 详细显示cp命令执行的操作过程
-a 等价于“dpr”选项

3.1.5 mv命令

改名|移动

mv命令是“move”单词的缩写,其功能大致和英文含义一样,可以移动文件或对其改名。

这是一个使用频率超高的文件管理命令,我们需要特别留意它与复制的区别:mv与cp的结果不同。mv命令好像文件“搬家”,文件名称发生改变,但个数并未增加。而cp命令是对文件进行复制操作,文件个数是有增加的。
语法格式:mv [参数]

常用参数:

-i 若存在同名文件,则向用户询问是否覆盖
-f 覆盖已有文件时,不进行任何提示
-b 当文件存在时,覆盖前为其创建一个备份
-u 当源文件比目标文件新,或者目标文件不存在时,才执行移动此操作

3.2 文档编辑

3.2.1 cat命令

显示文件内容

当文件内容较大时,文本内容会在屏幕上快速闪动(滚屏),用户往往看不清所显示的具体内容。因此对于较长文件内容可以按Ctrl+S键,停止滚屏;以及Ctrl+Q键可以恢复滚屏;而按Ctrl+C(中断)键则可以终止该命令的执行。或者对于大文件,干脆用more命令吧!

语法格式:cat [参数] [文件]

常用参数:

-n 显示行数(空行也编号)
-s 显示行数(多个空行算一个编号)
-b 显示行数(空行不编号)
-E 每行结束处显示$符号
-T 将TAB字符显示为 ^I符号
-v 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
-e 等价于”-vE”组合
-t 等价于”-vT”组合
-A 等价于 -vET组合
–help 显示帮助信息
–version 显示版本信息

3.2.2 echo命令

输出字符或者 提取Shell 变量的值

echo命令用于在终端设备上输出字符串或变量提取后的值,这是在Linux系统中最常用的几个命令之一,但操作却非常简单。

人们一般使用在变量前加上$符号的方式提取出变量的值,例如:$PATH,然后再用echo命令予以输出。或者直接使用echo命令输出一段字符串到屏幕上,起到给用户提示的作用。

语法格式:echo [参数] [字符串]

常用参数:

-n 不输出结尾的换行符
-e “\a” 发出警告音
-e “\b” 删除前面的一个字符
-e “\c” 结尾不加换行符
-e “\f” 换行,光标扔停留在原来的坐标位置
-e “\n” 换行,光标移至行首
-e “\r” 光标移至行首,但不换行
-E 禁止反斜杠转移,与-e参数功能相反
—version 查看版本信息
–help 查看帮助信息

3.2.3 tail命令

查看尾部内容

tail用于显示文件尾部的内容,默认在屏幕上显示指定文件的末尾10行。如果给定的文件不止一个,则在显示的每个文件前面加一个文件名标题。如果没有指定文件或者文件名为“-”,则读取标准输入。

语法格式:tail [参数]

常用参数:

–retry 即是在tail命令启动时,文件不可访问或者文件稍后变得不可访问,都始终尝试打开文件。使用此选项时需要与选项“——follow=name”连用
-c或——bytes= 输出文件尾部的N(N为整数)个字节内容
-f<name/descriptor> –follow:显示文件最新追加的内容
-F 与选项“-follow=name”和“–retry”连用时功能相同
-n或——line= 输出文件的尾部N(N位数字)行内容
–pid=<进程号> 与“-f”选项连用,当指定的进程号的进程终止后,自动退出tail命令
–help 显示指令的帮助信息
–version 显示指令的版本信息

3.2.4 expr命令

命令行计数器

expr命令的英文全称是“expression”,即是表达式的意思,作用是一个命令行的计数器,常用于在UNIX/LINUX系统中求表达式变量的值,一般用于整数值,也可用于字符串。

语法格式:expr [表达式]

常用参数:

空格 隔开每个项
\(反斜杠) 放在 shell 特定的字符前面
“”(引号) 对包含空格和其他特殊字符的字符串要用引号括起来

1、计算字串长度

> expr length “this is a test”
14

2、抓取字串

> expr substr “this is a test” 3 5
is is

3、抓取第一个字符数字串出现的位置

> expr index "sarasara"  a
2

4、整数运算

 > expr 14 % 9
5
> expr 10 + 10
20
> expr 1000 + 900
1900
> expr 30 / 3 / 2
5
> expr 30 \* 3 (使用乘号时,必须用反斜线屏蔽其特定含义。因为shell可能会误解显示星号的意义)
90
> expr 30 * 3
expr: Syntax error

3.2.5 grep命令

文本搜索工具

grep是“global search regular expression and print out the line”的简称,意思是全面搜索正则表达式,并将其打印出来。这个命令可以结合正则表达式使用,它也是linux使用最为广泛的命令。

grep命令的选项用于对搜索过程的补充,而其命令的模式十分灵活,可以是变量、字符串、正则表达式。需要注意的是:一当模式中包含了空格,务必要用双引号将其引起来。

linux系统支持三种形式的grep命令,大儿子就是grep,标准,模仿的代表。二儿子兴趣爱好多-egrep,简称扩展grep命令,其实和grep -E等价,支持基本和扩展的正则表达式。小儿子跑的最快-fgrep,简称快速grep命令,其实和grep -F等价,不支持正则表达式,按照字符串表面意思进行匹配。

语法格式: grep [参数]

常用参数:

-i 搜索时,忽略大小写
-c 只输出匹配行的数量
-l 只列出符合匹配的文件名,不列出具体的匹配行
-n 列出所有的匹配行,显示行号
-h 查询多文件时不显示文件名
-s 不显示不存在、没有匹配文本的错误信息
-v 显示不包含匹配文本的所有行
-w 匹配整词
-x 匹配整行
-r 递归搜索
-q 禁止输出任何结果,已退出状态表示搜索是否成功
-b 打印匹配行距文件头部的偏移量,以字节为单位
-o 与-b结合使用,打印匹配的词据文件头部的偏移量,以字节为单位

3.3 系统管理

3.3.1 rpm命令

RPM软件管理器

rpm命令是Red-Hat Package Manager(RPM软件包管理器)的缩写, 该命令用于管理Linux 下软件包的软件。在 Linux 操作系统下,几乎所有的软件均可以通过RPM 进行安装、卸载及管理等操作。

概括的说,rpm命令包含了五种基本功能:安装、卸载、升级、查询和验证。

语法格式:rpm [参数] [软件包]

常用参数:

-a 查询所有的软件包
-b或-t 设置包装套件的完成阶段,并指定套件档的文件名称;
-c 只列出组态配置文件,本参数需配合”-l”参数使用
-d 只列出文本文件,本参数需配合”-l”参数使用
-e或–erase 卸载软件包
-f 查询文件或命令属于哪个软件包
-h或–hash 安装软件包时列出标记
-i 显示软件包的相关信息
–install 安装软件包
-l 显示软件包的文件列表
-p 查询指定的rpm软件包
-q 查询软件包
-R 显示软件包的依赖关系
-s 显示文件状态,本参数需配合”-l”参数使用
-U或–upgrade 升级软件包
-v 显示命令执行过程
-vv 详细显示指令执行过程

3.3.2 find命令

查找和搜索文件

find命令可以根据给定的路径和表达式查找的文件或目录。find参数选项很多,并且支持正则,功能强大。和管道结合使用可以实现复杂的功能,是系统管理者和普通用户必须掌握的命令。

find如不加任何参数,表示查找当前路径下的所有文件和目录,如果服务器负载比较高尽量不要在高峰期使用find命令,find命令模糊搜索还是比较消耗系统资源的。

语法格式:find [参数] [路径] [查找和搜索范围]

常用参数

-name 按名称查找
-size 按大小查找
-user 按属性查找
-type 按类型查找
-iname 忽略大小写

3.3.3 crontab命令

定时任务

crontab是英文“cron table”的简写。该命令被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。

Linux下的任务调度分为两类,系统任务调度和用户任务调度。

系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等。/etc/crontab文件是系统任务调度的配置文件。用户任务调度:用户定期要执行的工作,比如用户数据备份、定时邮件提醒等。用户可以使用 crontab 工具来定制自己的计划任务。所有用户定义的crontab 文件都被保存在 /var/spool/cron目录中。其文件名与用户名一致。

语法格式:crontab [参数]

常用参数:

-e 编辑该用户的计时器设置
-l 列出该用户的计时器设置
-r 删除该用户的计时器设置
-u 指定要设定计时器的用户名称
–help 显示帮助信息

3.3.4 reboot命令

重启计算机

Linux reboot命令用于用来重新启动计算机,和Windows系统中的restart一样。但是机器重启必须要root用户才有权限。

语法格式: reboot [参数]

常用参数:

-n 在重开机前不做将记忆体资料写回硬盘的动作 帮助
-w 并不会真的重开机,只是把记录写到 /var/log/wtmp 档案里
-d 不把记录写到 /var/log/wtmp 档案里(-n 这个参数包含了 -d)
-f 强迫重开机,不呼叫 shutdown 这个指令
-i 在重开机之前先把所有网络相关的装置先停止

3.3.5 halt命令

关机

halt命令用来关闭正在运行的Linux操作系统,如果是线上跑了业务的服务器,执行此命令需谨慎。

halt命令会先检测系统的runlevel,若runlevel为0或6,则关闭系统,否则即调用shutdown来关闭系统。

语法格式:halt [参数]

常用参数

-w 并不是真正的重启或关机,只是写wtmp(/var/log/wtmp)纪录
-d 不写wtmp纪录(已包含在选项[-n]中)
-f 没有调用shutdown而强制关机或重启
-i 关机(或重启)前关掉所有的网络接口
-p 该选项为缺省选项,就是关机时调用poweroff

3.3.6 uname 命令

显示系统信息

uname命令的英文全称即“Unix name”。

用于显示系统相关信息,比如主机名、内核版本号、硬件架构等。

如果未指定任何选项,其效果相当于执行”uname -s”命令,即显示系统内核的名字。

语法格式:uname [参数]

常用参数:

-a 显示系统所有相关信息
-m 显示计算机硬件架构
-n 显示主机名称
-r 显示内核发行版本号
-s 显示内核名称
-v 显示内核版本
-p 显示主机处理器类型
-o 显示操作系统名称
-i 显示硬件平台

3.3.7 clear命令

清除屏幕

clear命令用于清除屏幕。这个命令将会刷新屏幕,本质上只是让终端显示页向后翻了一页,如果向上滚动屏幕还可以看到之前的操作信息。

语法格式:clear [参数]

常用参数:

–help 在线帮助
–vesion 显示版本信息

3.3.8 nohup命令

后端运行程序

nohup命令的全称为“no hang up”,该命令可以将程序以忽略挂起信号的方式运行起来,被运行的程序的输出信息将不会显示到终端。

无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中。如果当前目录的 nohup.out 文件不可写,输出重定向到$HOME/nohup.out文件中。如果没有文件能创建或打开以用于追加,那么 command 参数指定的命令不可调用。如果标准错误是一个终端,那么把指定的命令写给标准错误的所有输出作为标准输出重定向到相同的文件描述符。

语法格式:nohup [参数]

常用参数

–help 在线帮助
–version 显示版本信息

3.3.9 top命令

实时显示进程状态

top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,常用于服务端性能分析。

在top命令中按f按可以查看显示的列信息,按对应字母来开启/关闭列,大写字母表示开启,小写字母表示关闭。带*号的是默认列。

语法格式:top [参数]

常用参数:

-d 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s
-q 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行
-c 切换显示模式
-s 安全模式,将交谈式指令取消, 避免潜在的危机
-i 不显示任何闲置 (idle) 或无用 (zombie) 的行程
-n 更新的次数,完成后将会退出 top
-b 批次档模式,搭配 “n” 参数一起使用,可以用来将 top 的结果输出到档案内

3.3.10 init命令

切换系统运行级别

init命令是Linux下的进程初始化工具,init进程是所有Linux进程的父进程,它的进程号为1。init命令是Linux操作系统中不可缺少的程序之一,init进程是Linux内核引导运行的,是系统中的第一个进程。

语法格式:init [参数]

常用参数:

0 关机
1 单用户
2 多用户
3 完全多用户模式
5 图形界面
6 重启

3.3.11 kill命令

杀死进程

kill正如这个单词的意思一样,就是杀死。linux系统中kill命令用来删除执行中的程序或工作。

kill命令可将指定的信号发送给相应的进程或工作。 kill命令默认使用信号为15,用于结束进程或工作。如果进程或工作忽略此信号,则可以使用信号9,强制杀死进程或作业。

语法格式:kill [参数] [进程号]

常用参数:

-l 列出系统支持的信号
-s 指定向进程发送的信号
-a 处理当前进程时不限制命令名和进程号的对应关系
-p 指定kill命令只打印相关进程的进程号,而不发送任何信号

3.3.12 ps命令

显示进程状态

ps命令是“process status”的缩写,ps命令用于显示当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。

ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的。

语法格式:ps [参数]

常用参数:

-a 显示所有终端机下执行的程序,除了阶段作业领导者之外
a 显示现行终端机下的所有程序,包括其他用户的程序
-A 显示所有程序
-c 显示CLS和PRI栏位
c 列出程序时,显示每个程序真正的指令名称,而不包含路径,选项或常驻服务的标示
-C <指令名称> 指定执行指令的名称,并列出该指令的程序的状况
-d 显示所有程序,但不包括阶段作业领导者的程序
-e 此选项的效果和指定”A”选项相同
e 列出程序时,显示每个程序所使用的环境变量
-f 显示UID,PPIP,C与STIME栏位
f 用ASCII字符显示树状结构,表达程序间的相互关系
-g <群组名称> 此选项的效果和指定”-G”选项相同,当亦能使用阶段作业领导者的名称来指定
g 显示现行终端机下的所有程序,包括群组领导者的程序
-G <群组识别码> 列出属于该群组的程序的状况,也可使用群组名称来指定
h 不显示标题列
-H 显示树状结构,表示程序间的相互关系
-j或j 采用工作控制的格式显示程序状况
-l或l 采用详细的格式来显示程序状况
L 列出栏位的相关信息
-m或m 显示所有的执行绪
n 以数字来表示USER和WCHAN栏位
-N 显示所有的程序,除了执行ps指令终端机下的程序之外
-p <程序识别码> 指定程序识别码,并列出该程序的状况
p <程序识别码> 此选项的效果和指定”-p”选项相同,只在列表格式方面稍有差异
r 只列出现行终端机正在执行中的程序
-s <阶段作业> 指定阶段作业的程序识别码,并列出隶属该阶段作业的程序的状况
s 采用程序信号的格式显示程序状况
S 列出程序时,包括已中断的子程序资料
-t <终端机编号> 指定终端机编号,并列出属于该终端机的程序的状况
t <终端机编号> 此选项的效果和指定”-t”选项相同,只在列表格式方面稍有差异
-T 显示现行终端机下的所有程序
-u <用户识别码> 此选项的效果和指定”-U”选项相同
u 以用户为主的格式来显示程序状况
-U <用户识别码> 列出属于该用户的程序的状况,也可使用用户名称来指定
U <用户名称> 列出属于该用户的程序的状况
v 采用虚拟内存的格式显示程序状况
-V或V 显示版本信息
-w或w 采用宽阔的格式来显示程序状况
x 显示所有程序,不以终端机来区分
X 采用旧式的Linux i386登陆格式显示程序状况
-y 配合选项”-l”使用时,不显示F(flag)栏位,并以RSS栏位取代ADDR栏位
– <程序识别码> 此选项的效果和指定”p”选项相同
–cols <每列字符数> 设置每列的最大字符数
–columns <每列字符数> 此选项的效果和指定”–cols”选项相同
–cumulative 此选项的效果和指定”S”选项相同
–deselect 此选项的效果和指定”-N”选项相同
–forest 此选项的效果和指定”f”选项相同
–headers 重复显示标题列
–help 在线帮助
–info 显示排错信息
–lines <显示列数> 设置显示画面的列数
–no-headers 此选项的效果和指定”h”选项相同,只在列表格式方面稍有差异
–group <群组名称> 此选项的效果和指定”-G”选项相同
–Group <群组识别码> 此选项的效果和指定”-G”选项相同
–pid <程序识别码> 此选项的效果和指定”-p”选项相同
–rows <显示列数> 此选项的效果和指定”–lines”选项相同
–sid <阶段作业> 此选项的效果和指定”-s”选项相同
-tty <终端机编号> 此选项的效果和指定”-t”选项相同
–user <用户名称> 此选项的效果和指定”-U”选项相同
–User <用户识别码> 此选项的效果和指定”-U”选项相同
–version 此选项的效果和指定”-V”选项相同
–widty <每列字符数> 此选项的效果和指定”-cols”选项相同

3.4 磁盘管理

3.4.1 df命令

显示磁盘空间使用情况

df命令的英文全称即“Disk Free”,顾名思义功能是用于显示系统上可使用的磁盘空间。默认显示单位为KB,建议使用“df -h”的参数组合,根据磁盘容量自动变换合适的单位,更利于阅读。

日常普遍用该命令可以查看磁盘被占用了多少空间、还剩多少空间等信息。

语法格式: df [参数] [指定文件]

常用参数:

-a 显示所有系统文件
-B <块大小> 指定显示时的块大小
-h 以容易阅读的方式显示
-H 以1000字节为换算单位来显示
-i 显示索引字节信息
-k 指定块大小为1KB
-l 只显示本地文件系统
-t <文件系统类型> 只显示指定类型的文件系统
-T 输出时显示文件系统类型
– -sync 在取得磁盘使用信息前,先执行sync命令

3.4.2 lsblk命令

查看系统的磁盘

lsblk命令的英文是“list block”,即用于列出所有可用块设备的信息,而且还能显示他们之间的依赖关系,但是它不会列出RAM盘的信息。

lsblk命令包含在util-linux-ng包中,现在该包改名为util-linux。

语法格式:lsblk [参数]

常用参数:

-a 显示所有设备
-b 以bytes方式显示设备大小
-d 不显示 slaves 或 holders
-D print discard capabilities
-e 排除设备
-f 显示文件系统信息
-h 显示帮助信息
-i use ascii characters only
-m 显示权限信息
-l 使用列表格式显示
-n 不显示标题
-o 输出列
-P 使用key=”value”格式显示
-r 使用原始格式显示
-t 显示拓扑结构信息

3.4.3 fdisk命令

磁盘分区

fdisk命令的英文全称是“Partition table manipulator for Linux”,即作为磁盘的分区工具。进行硬盘分区从实质上说就是对硬盘的一种格式化, 用一个形象的比喻,分区就好比在一张白纸上画一个大方框,而格式化好比在方框里打上格子。

语法格式:fdisk [参数]

常用参数:

-b 指定每个分区的大小
-l 列出指定的外围设备的分区表状况
-s 将指定的分区大小输出到标准输出上,单位为区块
-u 搭配”-l”参数列表,会用分区数目取代柱面数目,来表示每个分区的起始地址
-v 显示版本信息

3.4.4 quota命令

显示磁盘已经使用的空间与限制

quota命令用于显示磁盘已使用的空间与限制。执行quota命令可查询磁盘空间的限制,并得知已使用多少空间。

语法参数:quota [参数]

常用参数:

-g 列出群组的磁盘空间限制
-q 简明列表,只列出超过限制的部分
-u 列出用户的磁盘空间限制
-v 显示该用户或群组,在所有挂入系统的存储设备的空间限制
-V 显示版本信息

3.4.5 arpd命令

收集arp信息

arpd命令是用来收集免费arp信息的一个守护进程,它将收集到的信息保存在磁盘上或者在需要时,提供给内核用户用于避免多余广播。

语法格式:arpd [参数]
启动arpd进程:
arpd -b /var/tmp/arpd.db 运行一段时间后,查看结果:
arpd -b /var/tmp/arpd.db

参考实例

-l 将arp数据库输出到标准输出设备显示并退出
-f 指定读取和加载arpd数据库的文本文件,文件的格式与“-l”输出信息类似
-b 指定arpd数据库文件,默认的位置为“/var/lib/arpd.db
-a 指定目标被认为死掉前查询的次数
-k 禁止通过内核发送广播查询
-n 设定缓冲失效时间

3.5 文件传输

3.5.1 curl命令

文件传输命令

curl命令是一个利用URL规则在shell终端命令行下工作的文件传输工具;它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯称curl为下载工具。

作为一款强力工具,curl支持包括HTTP、HTTPS、ftp等众多协议,还支持POST、cookies、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征;做网页处理流程和数据检索自动化。

语法格式:curl [参数] [网址]

常用参数:

-O 把输出写到该文件中,保留远程文件的文件名
-u 通过服务端配置的用户名和密码授权访问

3.5.2 ftpwho命令

显示FTP会话信息

ftpwho命令用于显示当前所有以FTP登入的用户会话信息。

执行该命令可得知当前用FTP登入系统的用户有哪些人,以及他们正在进行的操作。

语法格式:ftpwho [参数]

常用参数:

-h 显示帮助信息
-v 详细模式,输出更多信息

3.5.3 fsck命令

检查并修复Linux文件系统

fsck命令的英文全称是“filesystem check”,即检查文件系统的意思,常用于检查并修复Linux文件系统的一些错误信息,操作文件系统需要先备份重要数据,以防丢失。

Linux fsck命令用于检查并修复Linux文件系统,可以同时检查一个或多个 Linux 文件系统;若系统掉电或磁盘发生问题,可利用fsck命令对文件系统进行检查。

语法格式:fsck [参数] [文件系统]

常用参数:

-a 自动修复文件系统,不询问任何问题
-A 依照/etc/fstab配置文件的内容,检查文件内所列的全部文件系统
-N 不执行指令,仅列出实际执行会进行的动作
-P 当搭配”-A”参数使用时,则会同时检查所有的文件系统
-r 采用互动模式,在执行修复时询问问题,让用户得以确认并决定处理方式
-R 当搭配”-A”参数使用时,则会略过/目录的文件系统不予检查
-t 指定要检查的文件系统类型
-T 执行fsck指令时,不显示标题信息
-V 显示指令执行过程

3.6 网络通讯

3.6.1 ping命令

测试主机间网络连通性

ping命令主要用来测试主机之间网络的连通性,也可以用于。执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。

不过值得我们注意的是:Linux系统下的ping命令与Windows系统下的ping命令稍有不同。Windows下运行ping命令一般会发出4个请求就结束运行该命令;而Linux下不会自动终止,此时需要我们按CTR+C终止或者使用-c参数为ping命令指定发送的请求数目。

语法格式:ping [参数] [目标主机]

常用参数:

-d 使用Socket的SO_DEBUG功能
-c 指定发送报文的次数
-i 指定收发信息的间隔时间
-I 使用指定的网络接口送出数据包
-l 设置在送出要求信息之前,先行发出的数据包
-n 只输出数值
-p 设置填满数据包的范本样式
-q 不显示指令执行过程
-R 记录路由过程
-s 设置数据包的大小
-t 设置存活数值TTL的大小
-v 详细显示指令的执行过程

3.6.2 netstat命令

显示网络状态

netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。

从整体上看,netstat的输出结果可以分为两个部分:一个是Active Internet connections,称为有源TCP连接,其中”Recv-Q”和”Send-Q”指%0A的是接收队列和发送队列。这些数字一般都应该是0。如果不是则表示软件包正在队列中堆积。这种情况只能在非常少的情况见到;另一个是Active UNIX domain sockets,称为有源Unix域套接口(和网络套接字一样,但是只能用于本机通信,性能可以提高一倍)。

语法格式:netstat [参数]

常用参数:

-a 显示所有连线中的Socket
-p 显示正在使用Socket的程序识别码和程序名称
-u 显示UDP传输协议的连线状况
-i 显示网络界面信息表单
-n 直接使用IP地址,不通过域名服务器

3.6.3 ifconfig命令

显示或者设置网络设备

ifconfig命令的英文全称是“network interfaces configuring”,即用于配置和显示Linux内核中网络接口的网络参数。用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在。要想将上述的配置信息永远的存的电脑里,那就要修改网卡的配置文件了。

语法格式:ifconfig [参数]

常用参数:

add<地址> 设置网络设备IPv6的IP地址
del<地址> 删除网络设备IPv6的IP地址
down 关闭指定的网络设备
up 启动指定的网络设备
IP地址 指定网络设备的IP地址

3.6.4 ss命令

显示活动套接字信息

ss是Socket Statistics的缩写。ss命令用来显示处于活动状态的套接字信息。它可以显示和netstat类似的内容。但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。

语法格式:ss [参数]

常用参数:

-n 不解析服务名称,已数字方式显示
-a 显示所有套接字
-l 显示处于监听状态的套接字
-o 显示计时器信息
-e 显示详细的套接字信息
-m 显示套接字的内存使用情况
-p 显示使用套接字的进程
-i 显示内部的TCP信息
-s 显示套接字使用概况
-4 仅显示ipv4的套接字
-6 仅显示ipv6的套接字
-0 显示PACKET套接字
-t 只显示TCP套接字
-u 只显示UDP套接字
-d 只显示DCCP套接字
-w 只显示RAW套接字
-x 只显示 Unix套接字
-D 将原始TCP套接字信息转储到文件

3.6.5 ipcalc命令

简单的IP地址计算器

ipcalc命令的全称是:Calculate IP information for a host(计算主机的IP信息)

ipcalc命令是一个简单的ip地址计算器,可以完成简单的IP地址计算任务。

语法格式: ipcalc [参数] [IP地址]
[root@GuoJiafeng01 ~]# ipcalc -h 192.168.123.129
HOSTNAME=guojiafeng01

常用参数:

-b 由给定的IP地址和网络掩码计算出广播地址
-h 显示给定IP地址所对应的主机名
-m 由给定的IP地址计算器网络掩码
-p 显示给定的掩码或IP地址的前缀
-n 由给定的IP地址和网络掩码计算网络地址
-s 安静模式,不显示任何错误信息
–help 显示帮助信息

3.7 设备管理

3.7.1 mount命令

文件系统挂载

mount命令用于加载文件系统到指定的加载点。此命令的最常用于挂载cdrom,使我们可以访问cdrom中的数据,因为你将光盘插入cdrom中,Linux并不会自动挂载,必须使用Linux mount命令来手动完成挂载。

语法格式:mount [参数]

常用参数:

-t 指定挂载类型
-l 显示已加载的文件系统列表
-h 显示帮助信息并退出
-V 显示程序版本
-n 加载没有写入文件“/etc/mtab”中的文件系统
-r 将文件系统加载为只读模式
-a 加载文件“/etc/fstab”中描述的所有文件系统

3.7.2 setleds命令

设定键盘上方三个LED的状态

setleds即是英文词组“set leds”的合并,翻译为中文就是设置LED灯。setleds命令用来设定键盘上方三个 LED 灯的状态。在 Linux 中,每一个虚拟主控台都有独立的设定。

这是一个十分神奇的命令,竟然可以通过命令来控制键盘的灯的状态。

语法格式:setleds [参数]

常用参数:

-F 设定虚拟主控台的状态
-D 改变虚拟主控台的状态和预设的状态
-L 直接改变 LED 显示的状态
+num/-num 将数字键打开或关闭
+caps/-caps 把大小写键打开或关闭
+scroll /-scroll 把选项键打开或关闭

3.7.3 loadkeys命令

改变lInux键盘驱动程序

loadkeys命令可以根据一个键盘定义表改变 linux 键盘驱动程序转译键盘输入过程。

语法格式:loadkeys [参数] [文件]

常用参数:

-v 印出详细的资料,你可以重复以增加详细度
-q 不要显示任何讯息
-c 清除所有 composite 定义
-s 将定串定义表清除

3.8 备份压缩

3.8.1 unarj命令

解压 unarj

unarj命令用于解压缩.arj文件。

语法格式:unarj [参数] [.arj压缩文件]

常用参数:

-e 解压缩.arj文件
-l 显示压缩文件内所包含的文件
-t 检查压缩文件是否正确
-x 解压缩时保留原有的路径

3.8.2 compress命令

unix 档案压缩命令

compress命令是一个相当古老的 unix 档案压缩指令,压缩后的档案会加上一个 .Z 延伸档名以区别未压缩的档案,压缩后的档案可以以 uncompress 解压。若要将数个档案压成一个压缩档,必须先将档案 tar 起来再压缩。由于 gzip 可以产生更理想的压缩比例,一般人多已改用 gzip 为档案压缩工具。

语法格式: compress [参数]

常用参数:

-c 输出结果至标准输出设备(一般指荧幕)
-f 强迫写入档案,若目的档已经存在,则会被覆盖 (force)
-v 将程序执行的讯息印在荧幕上 (verbose)
-b 设定共同字串数的上限,以位元计算,可以设定的值为 9 至 16 bits 。由于值越大,能使用的共同字串就 越多,压缩比例就越大,所以一般使用预设值 16 bits (bits)
-d 将压缩档解压缩
-V 列出版本讯息

3.8.3 zipinfo命令

查看压缩文件信息

zipinfo命令的全称为“zip information”,该命令用于列出压缩文件信息。执行zipinfo指令可得知zip压缩文件的详细信息。

语法格式:zipinfo [参数]

常用参数:

-1 只列出文件名称
-2 此参数的效果和指定”-1″参数类似,但可搭配”-h”,”-t”和”-z”参数使用
-h 只列出压缩文件的文件名称
-l 此参数的效果和指定”-m”参数类似,但会列出原始文件的大小而非每个文件的压缩率
-m 此参数的效果和指定”-s”参数类似,但多会列出每个文件的压缩率
-M 若信息内容超过一个画面,则采用类似more指令的方式列出信息
-s 用类似执行”ls -l”指令的效果列出压缩文件内容
-t 只列出压缩文件内所包含的文件数目,压缩前后的文件大小及压缩率
-T 将压缩文件内每个文件的日期时间用年,月,日,时,分,秒的顺序列出
-v 详细显示压缩文件内每一个文件的信息
-x<范本样式> 不列出符合条件的文件的信息
-z 如果压缩文件内含有注释,就将注释显示出来

3.8.4 uudecode命令

还原档案

uudecode命令将uuencode编码后的档案还原,uudecode只会将begin与end标记之间的编码资料还原,程序会跳过标记以外的资料。

语法格式:uuencode [参数]

常用参数:

h 列出指令使用格式
v 列出版本讯息

3.8.4 zipsplit命令

分割压缩包

zipsplit命令用于将较大的“zip”压缩包分割成各个较小的“zip”压缩包。

语法格式:zipsplit [参数]

常用参数:

-n 指定分割后每个zip文件的大小
-t 报告将要产生的较小的zip文件的大小
-b 指定分割后的zip文件的存放位置

3.8.5 gzip命令

压缩和解压文件

gzip命令的英文是“GNUzip”,是常用来压缩文件的工具,gzip是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多处“.gz”扩展名。

gzip是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令,既方便又好用。gzip不仅可以用来压缩大的、较少使用的文件以节省磁盘空间,还可以和tar命令一起构成Linux操作系统中比较流行的压缩文件格式。据统计,gzip命令对文本文件有60%~70%的压缩率。减少文件大小有两个明显的好处,一是可以减少存储空间,二是通过网络传输文件时,可以减少传输的时间。

语法格式:gzip [参数]

常用参数:

-a 使用ASCII文字模式
-d 解开压缩文件
-f 强行压缩文件
-l 列出压缩文件的相关信息
-c 把压缩后的文件输出到标准输出设备,不去更动原始文件
-r 递归处理,将指定目录下的所有文件及子目录一并处理
-q 不显示警告信息

3.8.6 bzip2命令

bz2的文件压缩程序

Linux系统中bzip2命令的英文是“bunzip2”,即.bz2文件格式的压缩程序; bzip2命令系统默认是没有安装的,需要安装bzip2库才可以使用此命令。

bzip2命令采用新的压缩演算法,压缩效果比传统的LZ77/LZ78压缩演算法来得好。若没有加上任何参数,bzip2压缩完文件后会产生.bz2的压缩文件,并删除原始的文件。

语法格式:bzip2 [参数] 文件系统

常用参数:

-c 将压缩与解压缩的结果送到标准输出
-d 执行解压缩
-f bzip2在压缩或解压缩时,若输出文件与现有文件同名,预设不会覆盖现有文件。若要覆盖,请使用此参数
-k bzip2在压缩或解压缩后,会删除原始的文件。若要保留原始文件,请使用此参数
-s 降低程序执行时内存的使用量
-t 测试.bz2压缩文件的完整性
-v 压缩或解压缩文件时,显示详细的信息
-z 强制执行压缩

3.8.7 unzip命令

解压缩zip文件

unzip命令是用于.zip格式文件的解压缩工具 ,unzip命令将列出、测试或从zip格式存档中提取文件,这些文件通常位于MS-DOS系统上。

默认行为(就是没有选项)是从指定的ZIP存档中提取所有的文件到当前目录(及其下面的子目录)。一个配套程序zip(1L)创建ZIP存档;这两个程序都与PKWARE的PKZIP和PKUNZIP为MS-DOS创建的存档文件兼容,但许多情况下,程序选项或默认行为是不同的。

语法格式:unzip [参数] [文件]

常用参数:

-l 显示压缩文件内所包含的文件
-v 执行时显示详细的信息
-c 将解压缩的结果显示到屏幕上,并对字符做适当的转换
-n 解压缩时不要覆盖原有的文件
-j 不处理压缩文件中原有的目录路径

3.8.8 tar 命令

格式:
tar[必要参数][选择参数][文件]

常用参数

-c: 建立压缩档案
-x:解压
-t:查看内容
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件

这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。

-z:有gzip属性的
-j:有bz2属性的
-Z:有compress属性的
-v:显示所有过程
-O:将文件解开到标准输出

下面的参数-f是必须的

-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。

常用命令

tar
解包:tar xvf FileName.tar
打包:tar cvf FileName.tar DirName .tar.gz 和 .tgz
解压:tar zxvf FileName.tar.gz
压缩:tar zcvf FileName.tar.gz DirName

3.9 其他命令

3.9.1 rmmod命令

删除模块

rmmod即“remove module”的简称,rmmod命令用于删除模块。 执行rmmod命令,可删除不需要的模块。Linux操作系统的核心具有模块化的特性,因此在编译核心时,不需要吧全部功能都放入核心,可以将这些功能编译成一个个单独的模块,待有需要时再分别载入它们。

语法格式:rmmod [参数] [模块名称]

常用参数:

-a 删除所有目前不需要的模块
-s 把信息输出至syslog常驻服务,而非终端机界面
-v 显示指令执行的详细信息
-f 强制移除模块,使用此选项比较危险
-w 等待着,知道模块能够被除时再移除模块

3.9.2 bc命令

浮点运算

bc的英文全拼为“ Binary Calculator ”,是一种支持任意精度的交互执行的计算器语言。bash内置了对整数四则运算的支持,但是并不支持浮点运算,而bc命令可以很方便的进行浮点运算,当然整数运算也不再话下。

语法格式:bc [选项]

常用参数:

-i 强制进入交互式模式
-l 定义使用的标准数学库
-w 定义使用的标准数学库
-q 打印正常的GNU bc环境信息

Linux-(3)Linux Shell 使用的更多相关文章

  1. Linux中的shell

    shell的含义: 首先shell的英文含义是"壳": 它是相对于内核来说的,因为它是建议在核的基础上,面向于用户的一种表现形式,比如我们看到一个球,见到的是它的壳,而非核. Li ...

  2. linux 学习10 shell 基础

    10.1 Shell概述 .Shell是什么 Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序,用户可以用Shell来启动.挂起.停止甚至是编写一 ...

  3. linux下的shell运算(加、减、乘、除)

    linux下的shell运算(加.减.乘.除) 标签: linuxshell运算加减乘除 2014-03-12 16:25 15127人阅读 评论(0) 收藏 举报 分类: linux(17) ((i ...

  4. 如何在java程序中调用linux命令或者shell脚本

    转自:http://blog.sina.com.cn/s/blog_6433391301019bpn.html 在java程序中如何调用linux的命令?如何调用shell脚本呢? 这里不得不提到ja ...

  5. [转] 关于linux下通过shell命令(自动)修改用户密码

    关于linux下通过shell命令(自动)修改用户密码 2012-04-23 18:47:39 分类: 原文地址:关于linux下(自动)修改用户密码 作者:ubuntuer 本文章总结了如何手动.自 ...

  6. 时隔两年最近再次折腾opensuse 的一些笔记 - opensuse linux java service shell

    时隔两年最近再次折腾opensuse 的一些笔记 - opensuse linux java service shell opensuse 一些常用命令:    service xxx start/s ...

  7. Linux生产服务器Shell脚本分享

    Linux生产服务器Shell脚本分享 2012-6-6 86市场网 linux 作为一名Linux/unix系统管理员,我经常遇到人问这个问题:shell能做什么?PHP这么强大,为什么不用PHP来 ...

  8. linux下的shell命令的编写,以及java怎样调用linux的shell命令(java怎样获取linux上的网卡的ip信息)

    程序猿都非常懒,你懂的! 近期在开发中,须要用到server的ip和mac信息.可是server是架设在linux系统上的,对于多网口,在获取ip时就产生了非常大的问题.以下是在windows系统上, ...

  9. (原创)鸟哥linux学习script shell相关笔记

    在使用鸟哥linux进行script shell学习的过程中碰到一些不太明白的知识点,在这里进行一些记录 1. [root@www scripts]# vi sh03.sh #!/bin/bash # ...

  10. linux基础之Shell Script入门介绍

    本文介绍下,学习shell script编程的入门知识,通过几个入门实例,带领大家走进shell script的神圣殿堂,呵呵,有需要的朋友参考下. 本文转自:http://www.jbxue.com ...

随机推荐

  1. Ubuntu清空回收站

    ubuntu 回收站的具体位置:$HOME/.local/share/Trash/ 执行如下命令清空回收站: sudo rm -fr $HOME/.local/share/Trash/files/ 如 ...

  2. nyoj 64-鸡兔同笼 (解二元一次方程)

    64-鸡兔同笼 内存限制:64MB 时间限制:3000ms Special Judge: No accepted:26 submit:58 题目描述: 已知鸡和兔的总数量为n,总腿数为m.输入n和m, ...

  3. 【Vue | ElementUI】Vue离开当前页面时弹出确认框实现

    Vue离开当前页面时弹出确认框实现 1. 实现目的 在某种业务场景下,用户不允许跳转到其他页面.于是,需要在用户误操作或者是点击浏览器跳转时提示用户. 2. 实现原理 使用路由守卫beforeRout ...

  4. python gui tkinter快速入门教程 | python tkinter tutorial

    本文首发于个人博客https://kezunlin.me/post/d5c57f56/,欢迎阅读最新内容! python tkinter tutorial Guide main ui messageb ...

  5. 2018092609-2 选题 Scrum立会报告+燃尽图 02

    此作业要求参见:[https://edu.cnblogs.com/campus/nenu/2019fall/homework/8683] 一.小组情况组长:迟俊文组员:宋晓丽 梁梦瑶 韩昊 刘信鹏队名 ...

  6. SpringBoot 项目脚手架

    写在前面 之前也一直很少有写SpringBoot项目相关的文章,今天 准备整理一个我自己初始化SpringBoot项目时的一个脚手架,便于自己后面查阅.因为SpringBoot的约定大于配置,在整合各 ...

  7. 在Windows Server 2019通过Docker Compose部署Asp.Net Core

    一.安装Docker Enterprise 安装文档是: https://docs.docker.com/install/windows/docker-ee/ 安装完成后,如下图 二.首先,拉取一个W ...

  8. NTP服务编译安装报错:ntpd.c:124:29: 致命错误:sys/capability.h:没有那个文件或目录

    缺少libcap-devel [root@localhost libcap]# cd /mnt/ [root@localhost mnt]# rpm -Uvh libcap*

  9. [翻译] 使用 Serverless 和 .NET Core 构建飞速发展的架构

    原文:Fast growing architectures with serverless and .NET Core 作者:Samuele Resca Serverless 技术为开发人员提供了一种 ...

  10. createTextNode

    createTextNode()方法将创建一个包含给定文本的新文本文档节点.这个方法的返回值是一个指向新建文本节点的引用指针: reference = document.createTextNode( ...