文章目录
- 第一章:Linux命令介绍及Linux常用命令
- 常用按键
-
-
- Tab键
- Ctrl+c 1
- Ctrl+d
- Shift+Page Up/Page Down
-
- 帮助文档命令
-
-
- help参数
- man命令
-
- man page详解
- 基础信息
- NAME
- SYNOPSIS
- DESCRIPTION
- COMMANDS
- FILES
- SEE ALSO
- EXAMPLE
- 如何查看man page
-
- 浏览步骤
- 特殊操作
- info命令
-
- info命令的用法
- page head
- page tail
- info page的用法
-
- 常用的系统工作命令
-
-
- echo命令
- date命令
- reboot命令
- poweroff命令
- wget命令
- ps命令
- top命令
- pidof命令
- kill命令
- killall命令
-
- 系统状态监测
-
-
- ifconfig命令
- uname命令
- uptime命令
- free命令
- who命令
- last命令
- history命令
- sosreport命令
-
- 工作目录切换命令
-
-
- pwd命令
- cd命令
- ls命令
- 文件编辑命令
-
- cat命令
- more命令
- head命令
- tail命令
- tr命令
- wc命令
- stat命令
- cut命令
- diff命令
-
- 文件目录管理命令
-
-
- touch命令
- mkdir命令
- cp命令
- mv命令
- rm命令
- dd命令
- file命令
-
- 打包与压缩命令
-
-
- tar命令
- grep命令
- find命令
-
第一章:Linux命令介绍及Linux常用命令
在开始系统学习Linux之前,必须要先了解Linux的命令以及一些具体的常用命令,否则入门都无从说起.
常见的执行Linux命令的格式如下
命令名称 [命令参数] [命令对象]
其中: 命令参数是要执行的功能选择,命令对象是指要处理的文件,目录,用户等资源
命令参数可以输入全称,也可以输出缩写,例如输入: --help或-h
[]表示可以选择,真正输入时候不加括号
当有多个需要命令对象的命令参数时,要一一对应并且命令对象紧跟在命令参数后面,例如
wget -t 3 -P LinuxProbe http://www.linuxprobe.com/docs/Linuxprobe.pdf
表示最大尝试下载3次,将http://www.linuxprobe.com/docs/Linuxprobe.pdf中的内容下载到指定的LinuxProbe文件夹中
本章包含以下内容:
- 常用的按键
- 帮助文档命令
- 常用系统工作命令
- 系统状态检测命令
- 工作目录切换命令
- 文本文件编辑命令
- 文件目录管理命令
- 打包压缩与搜索命令
常用按键
Tab键
[tab] 补全命令或文件(当前文件或命令只有一个时)
[tab][tab] 罗列所有可能的文件或命令(当前文件或命令不唯一时)
例如:
假设有三个命令:roscore, rosrun, rostry
输入rosc之后按[tab]即可补全为roscore
输入ros后按[Tab]没有反应,按[Tab][Tab]显示三个可能的命令
Ctrl+c 1
[Ctrl]+[c] 终止当前运行的程序
Ctrl+d
[Ctrl]+[d] 关闭当前终端
Shift+Page Up/Page Down
[Shift]+[Page Up] 向上翻页
[Shift]+[Page Down] 向下翻页
帮助文档命令
随着Linux逐渐的发展壮大,Linux中的各种命令肯定是越来越多的,而每个命令都可能会有命令参数还有命令对象,因此将所有命令及对应的参数和对象记下来是不可能的.
对此Linux中有帮助文档命令,帮助我们调出某一命令的说明文档,在说明文档中我们就可以学习了解命令的具体使用规则
Linux的调出说明文档的方法具体有三种:
- help参数
- info命令
- man命令
help参数
Linux中的命令通常是以脚本的形式写成的,因此一般都会配备相应的说明文档.
因此我们对某一个命令使用help参数,就可以调出相应的说明文档
语法:
命令名称 -h/--help
例如:
查询date命令的用法
date --help
不过需要注意的是:
使用help参数查询用法的时候,命令是知道拼写的
man命令
man是manul(说明手册)的缩写,man命令查到的说明文档相比于help参数查询到的更加详细,甚至会包括该命令的作者,乃至于与该命令相关的其他命令.
语法:
man 命令名称
实例:
查询date命令的详细说明
man date
输入代码之后,就会弹出date这个代码的相关内容的界面(打印在屏幕上),叫做man page,十分的详尽.
整个man page分为好几个部分,会有点难看懂,下面解释man page的每个部分和相关代号表示的含义以及如何操作.
man page详解
date的man page页面如下:
[ wangsh ]~ $ man date
DATE(1) User Commands DATE(1)
# 请注意上面这个括号内的数字
NAME <==这个命令的完整全名,如下所示为date且说明简单用途为配置与显示日期/时间
date - print or set the system date and time
SYNOPSIS <==这个命令的基本语法如下所示
date [OPTION]... [+FORMAT]
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
DESCRIPTION <==详细说明刚刚语法谈到的选项与参数的用法
Display the current time in the given FORMAT, or set the system
date.
-d, --date=STRING <==左边-d为短选项名称,右边--date为完整选项名称
display time described by STRING, not 'now'
-f, --file=DATEFILE
like --date once for each line of DATEFILE
-r, --reference=FILE
display the last modification time of FILE
....(中间省略)....
# 找到了!底下就是格式化输出的详细数据!
FORMAT controls the output. The only valid option for the second
form specifies Coordinated Universal Time. Interpreted sequences
are:
%% a literal %
%a locale's abbreviated weekday name (e.g., Sun)
%A locale's full weekday name (e.g., Sunday)
....(中间省略)....
ENVIRONMENT <==与这个命令相关的环境参数有如下的说明
TZ Specifies the timezone, unless overridden by command line
parameters. If neither is specified, the setting from
/etc/localtime is used.
AUTHOR <==这个命令的作者啦!
Written by David MacKenzie.
REPORTING BUGS <==有问题请留言给底下的email的意思!
Report bugs to <[email protected]>.
COPYRIGHT <==受到著作权法的保护!用的就是 GPL 了!
Copyright ? 2006 Free Software Foundation, Inc.
This is free software. You may redistribute copies of it under the
terms of the GNU General Public License
<http://www.gnu.org/licenses/gpl.html>. There is NO WARRANTY, to
the extent permitted by law.
SEE ALSO <==这个重要,你还可以从哪里查到与date相关的说明文件之意
The full documentation for date is maintained as a Texinfo manual.
If the info and date programs are properly installed at your site,
the command
info date
should give you access to the complete manual.
date 5.97 Nov 2019 DATE(1)
下面将分块介绍整个man page的每一个部分是什么意思
基础信息
DATE(1) User Commands DATE(1)
- date是命令的全称
- 数字(如这里的(1))表明查询内容的属性
具体数字代表的含义见下表:
数字 | 含义 |
---|---|
1 | 用户在shell环境中可以操作的命令或可执行文件 |
2 | 系统内核可调用的函数与工具 |
3 | 一些常用的函数(function)与函数库(library),大部分为c语言库(libc) |
4 | 设备文件的说明,通常是在/dev下的文件 |
5 | 配置文件或是某些文件的格式 |
6 | 游戏(games) |
7 | 惯例与协议等,例如linux文件系统,网络协议,ASCII代码等说明 |
8 | 系统管理员可用的管理命令 |
9 | 跟内核有关的文件 |
注意:
- 加粗的比较重要
- 其实man也是一个命令,所以他也具有自己对应的man page ,查询时候直接输入man man即可
NAME
NAME <==这个命令的完整全名,如下所示为date且说明简单用途为配置与显示日期/时间
date - print or set the system date and time
- Name这里表示命令的完整全名,并且给出相应的简短说明
SYNOPSIS
SYNOPSIS <==这个命令的基本语法如下所示
date [OPTION]... [+FORMAT]
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
- SYNOPSIS这里表示命令的语法(syntax)的简介
DESCRIPTION
DESCRIPTION <==详细说明刚刚语法谈到的选项与参数的用法
Display the current time in the given FORMAT, or set the system
date.
-d, --date=STRING <==左边-d为短选项名称,右边--date为完整选项名称
display time described by STRING, not 'now'
-f, --file=DATEFILE
like --date once for each line of DATEFILE
-r, --reference=FILE
display the last modification time of FILE
....(中间省略)....
# 找到了!底下就是格式化输出的详细数据!
FORMAT controls the output. The only valid option for the second
form specifies Coordinated Universal Time. Interpreted sequences
are:
%% a literal %
%a locale's abbreviated weekday name (e.g., Sun)
%A locale's full weekday name (e.g., Sunday)
....(中间省略)....
- 这个部分首先给出了这个命令的详细介绍
- 然后给出了针对前面语法中给出的选项与参数进行说明
COMMANDS
这个部分给出了当程序(软件)正在之行时候,可以在这个程序(软件)中执行的命令
注:
- date命令的man page并没有这一部分
FILES
这个程序或者数据所使用的或参考或链接到的文件
SEE ALSO
SEE ALSO <==这个重要,你还可以从哪里查到与date相关的说明文件之意
The full documentation for date is maintained as a Texinfo manual.
If the info and date programs are properly installed at your site,
the command
info date
should give you access to the complete manual.
- 这里给出和这个命令或数据相关的其他说明
EXAMPLE
example里面会给出命令的一些实例,这里没有给出
如何查看man page
浏览步骤
- 先NAME
- 再DESCRIPTION
- 然后是OPTION
- 初学者多看看EXAMPLE
- 有能力了看看FILES
特殊操作
按键 | 说明 |
---|---|
Space | 向下翻一页 |
Page Down | 向下翻一页 |
Page Up | 向上翻一页 |
Home | 回到第一页 |
End | 跳转到最后一页 |
/String | 从当前页面向下查找关键词 |
?String | 从当前页面想上寻找关键词 |
n,N | 在查找关键词时候,n是到下一个关键词出,N是到上一个关键词处 |
q | 退出当前命令或者文件的man page |
info命令
在所有的基于Unix的系统中,都有man命令这样的查询方式,但是在Linux系统中,又提供了另外一种查询方式,就是info命令.
通过man命令打印出来的内容称为man page,那么通过info命令打印出来的称为info page.
info page其实在内容上与man page 差不多.但是和man page相比info page结构更加清晰,内容能够更好地被展现出来.
info page是将所有的内容拆成一个一个的段落,每个段落都有自己独立的page,不同的page之间用类似于网页的跳转的方式进行连接
不过需要注意的是支持info命令的说明文件首先必须以info格式写成才能够使用info的特殊功能.
其次支持info命令的文件必须放在/user/share/info/这个目录下面.
下面将介绍info 的用法
info命令的用法
和man类似
info 查询的命令
下面介绍info page中的具体内容
page head
首先info page的头部包含了许多重要信息
[ wangsh ]~$ info info
File:info.info, Node: Top, Next:Getting Started, Up: (dir)
Info:An instruction
******************
略
- File:表明当前page的位置
- Node:表示当前界面所在整个info文件中的位置,这里是Top节点,也就是最前面的节点
- Next:表示下一个节点的名称,这里是Getting Started
- Up:回到上一层的节点总览画面,就是查看与当前节点同级的所有节点
- Prv:前一个节点,但是由于这里是Top节点,没有上一个节点,所以没有显示
page tail
页面尾的地方通常表示的是当前节点的下一级节点(没错,整个info文件类似于树)
Menu:
Getting Started:
Advanced:
Expert Info:
Index:
info page的用法
按键什么与man page一模一样,但是不知道怎么用info的时候,可以按下h(help)来查看按键的作用
后面的命令指示简单的提一下,更多的使用帮助命令去查阅
常用的系统工作命令
对于新手来说,在使用linux系统的时候,如果遇到了问题,在网上查到了解决办法,可是却完全看不懂,这个时候就很头疼了.
其实这些解决问题的命令往往都是系统工作命令,下面就将讲解
echo命令
echo命令用于在终端输出字符串或变量提取后的值.
语法:
echo [字符串]
或
echo [$变量]
例如:
输出字符串Jack Wang
echo Jack Wang
提取变量SHELL的值输出
echo $SHELL
date命令
date命令用于显示及设置系统时间和日期
语法:
date [命令参数] [指定格式]
当指定格式(命令对象)以==加号+==开头时,将按照指定的格式输出当前时间
一些常用参数如下:
参数 | 作用 |
---|---|
%t | 制表符[Tab键] |
%H | 24小时( 00 ~ 23 ) |
%I | 12小时( 00 ~ 12 ) |
%M | 分钟( 00 ~ 59 ) |
%S | 秒( 00 ~ 59 ) |
%j | 当前年份的第几日 |
例如:
按照默认格式显示当前时间
date
按照"年-月-日 小时:分钟:秒"的格式查看当前系统时间
date "+%Y-%m-%d%t%H:%M:%S""
查看当前日期是当前年份的第几日
date "+%j"
设置系统日期
date -s "20200416 8:30:00"
- 将当前时间设置为2020年4月16日8点30分
reboot命令
reboot命令用于重启计算机
由于涉及到硬件资源管理,因此需要root用户来使用
poweroff命令
poweroff命令用于关闭计算机
和reboot一样,也涉及到了硬件资源管理,需要root权限
wget命令
wget命令用于在终端中下载网络文件
语法:
wget [参数] [下载地址]
常用的参数如下:
参数 | 作用 |
---|---|
-b | 后台下载模式 |
-P | 下载到指定目录 |
-t | 最大尝试次数 |
-c | 断点续传 |
-p | 下载页面所有资源,包括图片,视频等 |
-r | 递归下载 |
例如:
下载http://www.linuxprobe.com/docs/LinuxProbe.pdf这一地址中的Linux教学文件
wget -P LinuxProbe http:www.linuxprobe.com/docs/LinuxProbe.pdf
>>>将会把下载下来的文件存放到命名为LinuxProbe的文件夹下(没有的话会新创建)
下载http://www.linuxprobe.com的所有数据
wget -r -p http://www.linuxprobe.com
>>>将会把所有内容保存到当前工作目录下一个名为www.linuxprobe.com的目录中
ps命令
ps命令用于查看系统中的进程状态
语法:
ps [参数]
一般会配合管道符技术(在后面讲解)来查找特定的进程的pid
常用的参数如下:
参数 | 作用 |
---|---|
-a | 显示所有进程(包括其他用户的进程) |
-u | 用户以及其他详细信息 |
-x | 显示没有控制终端的进程 |
Linux中时刻都运行着许多进程,合理的管理他们能够优化系统性能.Linux系统中有5种常见的进程状态,分别为: 运行,中断,不可中断,僵死,停止
- R :Running,运行中,进程正在运行或者在运行队列中等待
- S :Stop,中断,进程处于休眠中,当某个条件形成或者接收到信号时,脱离该状态
- D :不可中断,进程不响应系统异步信号,即使使用kill命令也不能将其中断
- Z :Zombie,僵死,进程已经终止,但是进程描述符依然存在,知道父进程调用wait4()系统函数后将进程释放
- T :进程收到停止信号后停止运行
例如:
ps -au
得到结果如下
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 3979 0.1 2.3 203224 43204 tty1 Ss+ 06:53 0:05 /usr/bin/Xorg
root 4715 0.0 0.1 116256 3044 pts/0 Ss 06:54 0:00 /bin/bash
root 32917 0.0 0.0 123356 1376 pts/0 R+ 07:54 0:00 ps -au
其中每栏的含义如下
名称 | 含义 |
---|---|
USER | 进程所有者 |
PID | 进程ID号 |
%CPU | CPU占用率 |
%MEM | 内存占用率 |
VSZ | 虚拟内存使用量(单位是KB) |
RSS | 占用的固定内存量(单位是KB) |
TTY | 所在终端 |
STAT | 进程状态 |
START | 被启动的时间 |
TIME | 实际使用CPU时间 |
COMMAND | 命令名称与参数 |
top命令
top命令用于动态地见识进程活动与系统负载等信息
语法:
top
使用top命令后,将会看到下面的界面
top - 08:10:18 up 1:26, 2 users, load average: 0.40, 0.15, 0.08
Tasks: 477 total, 3 running, 474 sleeping, 0 stopped, 0 zombie
%Cpu(s): 33.9 us, 1.3 sy, 0.0 ni, 64.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem: 1870760 total, 1327452 used, 543308 free, 1080 buffers
KiB Swap: 2097148 total, 0 used, 2097148 free. 482864 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
4359 root 20 0 1676796 327100 38576 S 32.6 17.5 2:16.75 gnome-shell
3979 root 20 0 203224 43204 7916 S 2.3 2.3 0:08.50 Xorg
4706 root 20 0 771500 18860 12408 S 0.7 1.0 0:01.06 gnome-term+
1 root 20 0 52840 6724 3756 S 0.0 0.4 0:01.51 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.02 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:00.01 ksoftirqd/0
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:+
7 root rt 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
前五行命令如下:
- 系统时间,运行时间,登录终端数,1分钟系统负载平均数,5分钟系统平均负载,15分钟系统平均负载
- 进程总数,运行中进程数,睡眠中进程数,停止的进程数,僵死的进程数
- 用户占用资源百分比,系统内核占用资源百分比,改变过优先级的进程资源百分比,空闲的资源百分比
- 物理内存总量,内存使用量,内存空限量,作为内核缓存的内存量
- 虚拟内存总量,虚拟内存使用量,虚拟内存空限量,已被提前加载的内存量
pidof命令
pidof命令用于查询某个指定服务的PID值
语法:
pidof [参数] [服务名称]
例如:
查询sshd服务程序的PID
pidof sshd
kill命令
kill命令用于终止某个指定PID的服务进程
通常是用pidof查出服务的pid号码,然后用kill命令结束进程
语法:
kill [参数] [进程PID]
killall命令
killall命令用于终止某个指定名称的服务所对应的全部进程
往往复杂软件的服务程序会有多个进程协同为用户提供服务,使用killall能结束所有的进程
语法:
killall [参数] [进程名称]
系统状态监测
Linux系统作为服务器,我们需要具备快速查看Linux系统运行状态的能力
下面将讲解与网卡网络,系统内核,系统负载,内存使用情况,当前启动终端数量,历史登录记录,命令执行记录及救援诊断等相关命令的使用方法
ifconfig命令
ifconfig命令用于获取网卡配置与网络状态等信息
语法:
ifconfig [网络设备] [参数]
需要注意的是,Ubuntu中ifconfig命令并非安装时自带的,需要下载net-tools组件
单纯使用ifconfig命令查看本机当前的网卡配置与网络状态等信息,其实主要看的就是网卡名称,inet参数后面的IP地址,ether参数后面的网卡物理地址(又称为MAC地址),以及RX,TX的接收数据包与发送数据包的个数和累计流量
eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.218.128 netmask 255.255.255.0 broadcast 192.168.218.255
inet6 fe80::20c:29ff:fef3:b4e6 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:f3:b4:e6 txqueuelen 1000 (Ethernet)
RX packets 445 bytes 38554 (37.6 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1418 bytes 103785 (101.3 KiB)
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 0 (Local Loopback)
RX packets 525 bytes 52048 (50.8 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 525 bytes 52048 (50.8 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
uname命令
uname命令用于查看系统内核与系统版本等信息
语法:
uname [参数]
如果要查看系统内核与系统版本等信息,语法为
uname -a
uptime命令
uptime命令用于查看系统的负载信息
显示当前系统时间,系统已运行时间,启动终端数量以及平均负载值(1分钟,5分钟,15分钟)等信息
语法:
uptime
得到的结果如下
08:50:50 up 2:07, 2 users, load average: 0.08, 0.07, 0.06
free命令
free命令用于显示当前系统中内存的使用量信息
语法:
free [选项]
通常为了更人性化的查看会加上==-h==参数(自动转换单位)
查看当前系统中的内存使用量:
free -h
得到结果如下:
total used free shared buffers cached
Mem: 1.8G 1.3G 516M 10M 1.1M 471M
-/+ buffers/cache: 837M 989M
Swap: 2.0G 0B 2.0G
其中:
- total:内存总量
- used:已用量
- free:可用量
- shared:进程共享的内存量
- buffers:磁盘缓存的内存量
- cached:缓存的内存量
who命令
who命令用于查看当前登录主机的用户终端信息
语法:
who [参数]
直接使用who得到的结果如下
root :0 2020-06-28 06:54 (:0)
root pts/0 2020-06-28 06:54 (:0)=
其中:
- 第一列为登录的用户名
- 第二列为登录的终端设备
- 第三列为登录到系统的时间
last命令
last命令用于查看所有系统的登录记录
语法:
last 参数
得到的结果和who命令的结果类似
history命令
history命令用于显示历史执行过的前1000条命令
如果觉得不够,可以在/etc/profile文件中修改HISTSIZE变量值
语法:
history [参数]
可以使用==-c==参数来清除历史记录
sosreport命令
sosreport命令用于手机系统配置及架构信息并输出诊断文档
语法:
sosreport
和ifconfig一样sosreport命令Ubuntu中不是自带的,需要下载sosreport`
工作目录切换命令
工作目录是指用户在当前系统中所处的位置
由于工作目录牵涉系统储存结构相关的只是,因此在后面详细讲解.这里只是介绍下使用
pwd命令
pwd命令用于显示用户当前所处的工作目录
语法:
pwd
cd命令
cd命令用于切换工作命令
语法:
cd 目录名称
常用的用法:
cd ~ //返回当前用户的家目录
cd.. //进入上级目录
cd ~username //进入其他用户的家目录
cd - //返回上一次所处的目录
ls命令
ls命令用于输出当前目录下的文件信息
语法:
ls 选项 文件
文件编辑命令
Linux系统中==“万物皆文件”==,因此我们必不可少的需要对文本进行编辑
下面就将讲解文件编辑命令
cat命令
cat命令用于查看纯文本文件(内容较少时候)
语法:
cat [选项] [文件]
使用==-n==选项显示行号
more命令
more命令用于查看纯文本文件(内容较多的)
使用more可以查看当前阅读百分比和空格/回车向下翻页
语法:
more [选项] [文件]
head命令
head命令由于查看纯文本文档的前n行
具体使用就是使用==-n==参数指定看的行数
语法
head [选项] [文件]
tail命令
tail命令用于查看纯文本文档的后n行
同样也是加上==-n==参数指定看的行数
可以使用-f参数来持续刷新文件
语法:
tail [选项] [文件]
tr命令
tr命令由于替换文本中的字符
语法:
tr [原始字符] [目的字符]
一般和管道符结合起来进行快速修改
wc命令
wc用于统计指定文本的行数,字数,字节数
语法:
wc 参数 文本
得到的结果分别是查询文件的行数,字数和字节数
stat命令
stat命令用于查看文件的具体存储信息和时间等信息
语法:
stat 文件名称
使用stat查看当下文件中的profile文件
[[email protected] Desktop]# stat profile
File: ‘profile’
Size: 1750 Blocks: 8 IO Block: 4096 regular file
Device: fd01h/64769d Inode: 102579774 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2020-06-28 09:30:16.847868217 -0400
Modify: 2020-06-28 09:30:08.916869121 -0400
Change: 2020-06-28 09:30:08.916869121 -0400
Birth: -
可以看到profile文件具有三种状态: Access,Modify,Change
这三种状态在后面的touch命令讲解中将会讲到
cut命令
cut命令用于按列提取文本字符
语法:
cut 参数 文本
diff命令
diff命令多用于比较多个文本文件的差异
语法:
diff [参数] [文件]
如果要比较两个文本是否一样,可以使用–brief参数
如果两个文件内容一样,则不会产生任何信息
如果文件不一样,那么就用==-c==参数来描述文件内容的具体不同
多出的内容会在这一行前面有加号,不同的内容会在这一行前面有叹号
文件目录管理命令
前面的讲解更像是在打地基.在日常的linux运维中好需要掌握对文件的创建,修改,复制,剪切,更名与删除等操作
下面就将讲解linux中的文件目录管理命令
touch命令
touch命令用于创建空白文件或者设置文件时间
语法:
touch [选项] [文件]
使用touch创建空白文件很简单,不加选项直接后面加文件名即可,所以问题关键在于使用touch参数修改文件时间
touch的参数如下
参数 | 作用 |
---|---|
-a | 仅修改读取时间(atime) |
-m | 仅修改修改时间(mtime) |
-d | 同时修改atime和mtime |
所以我们可以先用ls查看一个文件修改时间然后修改这个文件,最后通过touch再改回修改之前的时间
mkdir命令
mkdir命令用于创建空白目录
语法:
mkdir 选项 目录
可以使用-p选项来递归创建具有重叠关系的目录
cp命令
cp命令用于复制文件或目录
语法:
cp 选项 源文件 目标文件
mv命令
mv命令用于剪切文件或者将文件重命名
语法:
mv 选项 源文件 目标路径/目标文件名
rm命令
rm命令用于删除文件或目录
语法:
rm 选项 文件
dd命令
dd命令用于按照指定大小和个数的数据块来复制文件或者转移文件
语法:
dd 参数
file命令
file命令用于查看文件的类型
语法:
file 文件名
需要注意的是,linux中不能通过后缀名来查看文件类型,因此需要用file来查看
打包与压缩命令
在网络上,人们倾向于传输压缩文件,因为体积更小,效率更高
下面就将讲解linux中的打包与压缩命令
但是由于每个都很复杂,所以还是需要看查看说明文档
tar命令
tar命令用于对文件进行打包压缩或解压
语法:
tar 选项 文件
tar命令常用参数如下:
参数 | 作用 |
---|---|
-c | 创建压缩文件 |
-x | 解开压缩文件 |
-t | 查看压缩包内有哪些文件 |
-z | 用Gzip压缩或者解压 |
-j | 用bzip压缩或解压 |
-v | 显示压缩或者解压的过程 |
-f | 目标文件名 |
-p | 保留原始的权限和属性 |
-P | 使用绝对路径来压缩 |
-C | 指定解压到的目录 |
一般压缩时候用==-czvf==,解压缩用==-xzvf==
grep命令
grep命令用于在文本中执行关键词搜索,并显示匹配结果
语法:
grep 选项 文件
常用选项如下:
参数 | 作用 |
---|---|
-b | 将可执行文件(binary)当做文本文件(text)搜索 |
-c | 仅显示找到的行数 |
-i | 忽略大小写 |
-n | 显示行号 |
-v | 反向选择,仅列出没有关键词的行 |
例如,在/etc/passwd这个文本文件中匹配/sbin/nologin
find命令
find命令用于按照指定条件来查找文件
格式:
find [查找路径] [寻找条件] [操作]
其中找条件是使用参数实现的
find命令常用的参数和作用如下:
参数 | 作用 |
---|---|
-name | 匹配名称 |
-perm | 匹配权限 |
-user | 匹配所有者 |
-group | 匹配所有组 |
-mtime -n +n | 匹配修改内容的时间(-n指n天以内,+n指n天以前) |
-atime -n +n | 匹配访问文件的时间(-n指n天以内,+n指n天以前) |
-ctime -n +n | 匹配修改文件权限的时间(-n指n天以内,+n指天以前) |
-nouser | 匹配无所有者的文件 |
-nogroup | 匹配无所有组的文件 |
-newer f1 !f2 | 匹配比文件f1新但比文件f2旧的文件 |
–type b/d/c/p/l/f | 匹配文件类型,后面的字母参数分别表示块设备,目录,字符设备,管道,链接文件,文本文件 |
-size | 匹配文件的大小(+50KB表示大于50KB的文件,-50KB表示小于50KB的文件) |
-preune | 忽略某个目录 |
-exec … {}; | 可用于后面进一步处理搜索结果的命令 |
例如
我们想要找出/etc文件夹下所有以host开头的文件并打印出来
[[email protected] Desktop]# find /etc -name "host*" -print
在整个系统中搜索权限包含SUID权限的所有文件 只需要使用-perm参数匹配-4000即可