linux系统
linux是一种操作系统,需记住linux是一个树状图,根目录 “ / ” ,是进入linux系统文件的总入口,也是唯一入口。
操作系统是一组程序,操作系统的最主要作用就是用于调度硬件,指挥硬件(而内核是操作系统中的一部分,是操作系统中最主要的一部分用于调度硬件,指挥硬件)
程序:
程序是静态的
- 1.执行特定任务的
- 2.一串代码
linux系统中命令的本质就是程序
1.linux系统路径
linux的系统路径分为两类,一类是绝对路径,一类是相对路径,快捷方式就是指向文件路径,它的大小就是指向文件路径的长度
绝对路径:从根开始且唯一 相对路径:从当前路径开始
路径:描述一个文件所在系统位置
每个文件夹都有 . 和 .. . 代表当前文件夹 .. 代表上一级目录
pwd :打印当前路径
/ 在开头是绝对路径 /前面有乱7八遭的是相对路径,路径用/分开,/不在第一位就是分隔符
“ / ”是根目录
2.linux系统文件目录和七类常用文件(六个常用文件夹(目录)
| 一级目录 | 功能(作用) |
|---|---|
| /bin/ | 存放系统命令,普通用户和 root 都可以执行。放在 /bin 下的命令在单用户模式下也可以执行 |
| /boot/ | 系统启动目录,保存与系统启动相关的文件,如内核文件和启动引导程序(grub)文件等 |
| /dev/ | 设备文件保存位置 |
| /etc/ | 配置文件保存位置。系统内所有采用默认安装方式(rpm 安装)的服务配置文件全部保存在此目录中,如用户信息、服务的启动脚本、常用服务的配置文件等 |
| /home/ | 普通用户的主目录(也称为家目录)。在创建用户时,每个用户要有一个默认登录和保存自己数据的位置,就是用户的主目录,所有普通用户的主目录是在 /home/ 下建立一个和用户名相同的目录。如用户 liming 的主目录就是 /home/liming |
| /lib/ | 系统调用的函数库保存位置(c语言 写的一些固定格式的代码,方便调用) |
| /media/ | 挂载目录。系统建议用来挂载媒体设备,如软盘和光盘 |
| /mnt/ | 挂载目录。早期 Linux 中只有这一个挂载目录,并没有细分。系统建议这个目录用来挂载额外的设备,如 U 盘、移动硬盘和其他操作系统的分区 |
| /misc/ | 挂载目录。系统建议用来挂载 NFS 服务的共享目录。虽然系统准备了三个默认挂载目录 /media/、/mnt/、/misc/,但是到底在哪个目录中挂载什么设备可以由管理员自己决定。例如,笔者在接触 Linux 的时候,默认挂载目录只有 /mnt/,所以养成了在 /mnt/ 下建立不同目录挂载不同设备的习惯,如 /mnt/cdrom/ 挂载光盘、/mnt/usb/ 挂载 U 盘,都是可以的 |
| /opt/ | 第三方安装的软件保存位置。这个目录是放置和安装其他软件的位置,手工安装的源码包软件都可以安装到这个目录中。不过笔者还是习惯把软件放到 /usr/local/ 目录中,也就是说,/usr/local/ 目录也可以用来安装软件 |
| /root/ | root 的主目录。普通用户主目录在 /home/ 下,root 主目录直接在“/”下 |
| /sbin/ | 保存与系统环境设置相关的命令,只有 root 可以使用这些命令进行系统环境设置,但也有些命令可以允许普通用户查看 |
| /srv/ | 服务数据目录。一些系统服务启动之后,可以在这个目录中保存所需要的数据 |
| /tmp/ | 临时目录。系统存放临时文件的目录,在该目录下,所有用户都可以访问和写入。建议此目录中不能保存重要数据,最好每次开机都把该目录清空 |
- 六个常用文件夹(目录)【均为一级目录】
boot:系统启动文件 opt:空文件 第三方软件 dev:放硬件设备,类硬盘(黄色) tmp:临时文件 etc:系统默认文件 /var/log:日志文件
- 七类常用文件
-
d 目录文件directory
-
b 块设备文件block 块设备文件,就是保存大块数据的设备,比如最常见的硬盘。
-
c 字符设备character 这些文件通常隐藏在 /dev/ 目录下,当进行设备读取或外设交互时才会被使用
-
l 符号链接文件link
-
p 管道文件pipe 主要用于进程间通信单向传输 一个发一个输管道文件
-
s 套接字文件socket 套接字文件一般隐藏在 /var/run/ 目录下,用于进程间的网络通信
-
**-**普通文件 普通文件,包括纯文本文件、二进制文件、各种压缩文件等
第一个字符 文件类型 - 普通文件,包括纯文本文件、二进制文件、各种压缩文件等。 d 目录,类似 Windows 系统中的文件夹。 b 块设备文件,就是保存大块数据的设备,比如最常见的硬盘。 c 字符设备文件,例如键盘、鼠标等。 s 套接字文件,通常用在网络数据连接,可以启动一个程序开监听用户的要求,用户可以通过套接字进行数据通信。 p 管道文件,其主要作用是解决多个程序同时存取一个文件所造成的错误。 l 链接文件,类似 Windows 系统中的快捷方式。
补充三条查看硬件和系统信息的命令:
sblk : 查看当前分区情况
arch:查看机器架构
uname -r:查看内核版本
3.linux系统命令
3.1.命令提示符及命令提示符各字段含义
[root@localhost ~ ] :
root :用户名 localhost:主机名
~ 当前所在目录
“ : ”后面一般有 # 和 $ 分别代表的权限也有所不同
- “ # ”:超级管理员
- “ $ ”:普通用户
这里需要加入一个理解家目录
3.2.家目录
家目录: 存放用户个性化设置(cd ~切换到当前用户的家目录)
普通用户的家目录位于home下同名文件,超级管理员的家目录位于 根“ / ” 下
3.3.manual手册
- man 1 用户指令
- man 2 系统调用
- man 3 程序库调用
- man 4 设备
- man 5 文件格式
当你不知道某一命令是做什么的时候,判断命令,
如果是内部命令:“ help ”+命令
如果是外部命令:命令+“ - - help ”
(PS:也可以直接 mac + 命令(可以不用判断是内部命令还是外部命令))
3.4.ln
- 建立软连接 ln -s 建立软连接(软连接必须要绝对路径)
- 建立硬连接 ln 源文件的绝对路径 文件名
3.4.1.硬连接和软连接以及两者的区别
软连接:类似快捷方式,给源文件增加一个直接打开的路径链接
硬连接:给文件增加另外一个名字,本质仍是同一个文件使用同一inode号,硬连接不在硬盘中真实存在,硬连接的文件两者内容始终保持同步。(ps:需注意建立硬连接不能跨分区建立连接 无法对文件夹创建,这也是软硬连接的区别 )
| 对比项 | 硬链接 | 软链接 |
|---|---|---|
| 本质 | 本质是同一个文件 | 本质不是同一个文件 |
| inode(身份证号) | 相同 | 不同 |
| 连接数 | 创建新的硬链接,链接数会增加,删除硬链接,链接数减少 | 删除,新建都不会改变 |
| 文件夹 | 不支持 | 支持 |
| 删除源文件 | 只是链接数减一,但链接文件的访问不受影响 | 无法访问连接文件 |
| 文件类型 | 和源文件相同 | 链接文件,和源文件无关 |
| 文件大小 | 和源文件相同(指向硬盘上的同一个文件) | 源文件的路径的长度 |
4、shell
chos7 默认 shell类型 /bin/bash
shell是一个壳,一类软件的总称,作为程序时主要把人类使用的语言翻译给机器,再把机器语言翻译成人类使用的语言,人机交流的翻译层。首先 判断 内部 还是 外部 如果是内部 直接执行 如果 是 外部 从/usr/local/ 外部命令执行完以后,一般会从hash 缓存中找 找不到直接报错,但除开刻意操作,文件路径改变了,基本不会报错,如果路径没错,可以清空hash
所以基本上linux系统执行命令的过程,以及命令不存在的四种原因:
linux系统命令的执行过程:
判断是否是内部命令 是 直接执行, 不是 内部命令,则去看hash缓存表 如果hash 表 有 直接执行,有 但是找不到 报错 如果是第一次执行的外部命令,会去规定的文件夹找命令,如果没有会报错
命令不存在的四种原因
1,命令打错 2,hash缓存中没有 3,不在 ¥path 4,没有安装
ctrl+u 清除 ctrl+a 第一个
5.文件类型
在linux系统中有7大文件类型,可以通过文件的第一个字符知道该文件是什么类型的文件,也可以通过颜色判断一些文件类型。
颜色表示的文件类型:
- 黑色数据文件 普通文件 (“ - ”)
- 绿色 可执行文件
- 黄色 块设备文件硬件设备(硬盘)(“ b ”)
- 红色 压缩包
- 蓝色 文件夹
- 天蓝色 连接文件(快捷方式)(“ l ”)
| 文件第一个字符 | 文件类型 |
|---|---|
| - | 普通文件,包括纯文本文件、二进制文件、各种压缩文件等。 |
| d | 目录,类似 Windows 系统中的文件夹。 |
| b | 块设备文件,就是保存大块数据的设备,比如最常见的硬盘。 |
| c | 字符设备文件 |
| s | 套接字文件,通常用在网络数据连接,可以启动一个程序开监听用户的要求,用户可以通过套接字进行数据通信。 |
| p | 管道文件,其主要作用是解决多个程序同时存取一个文件所造成的错误。 |
| l | 链接文件,类似 Windows 系统中的快捷方式。 |
6.vim编辑器(vimtutor)
vim编辑器的三种模式
vim 打开文件后,即处在 命令模式
1.命令模式的作用:
1.行间条转 2.复制 粘贴文本 3.有限的文本编辑
命令模式下的一些快捷键(部分) :
G:直接跳转到页尾,前面加数字则跳转到到对应行,比如5G跳转到第五行
gg(小写):会到开头,前后加数字则可以跳转到对应行,比如2gg或gg2,跳转到第2行
u(小写):撤销上一次的操作
U(大写):全部撤销(到最初状态)
x(小写):删一个字符
r(小写):替换光标字符
d (delete)删除命令(可结合光标跳转字符,实现范围删除):
- d$ =D :从当前光标位置删除到行尾
- d^ :从当前光标位置删除到非空行首
- d0 :从当前光标位置删除到行首
- dw :从当前光标位置下一个单词的词首
- de :从当前光标位置当前或下一个单词的词尾
- dd:删除光标所在的行
- 2dd或dd2或d2d:含光标位置往下删除共两行
y复制命令(yank):
- y$:从当前光标位置复制到行尾
- y0:从当前光标位置复制到非空行首
- y^:从当前光标位置复制到非空行首
- yy:复制一行
- 5yy: 复制5行(数字随意)
- Y(大写):复制整行
p粘贴命令(paste):
p:复制(向下复制)
P(大写):(大写锁定状态下按p)向上复制
2.编辑模式:按I(i)建 可以进入编辑模式 进行一些复杂的文本编辑
编辑模式下的一些快捷键
| 快捷键 | 功能描述 |
|---|---|
| i | 在当前光标所在位置插入随后输入的文本,光标后的文本相应向右移动 |
| I | 行首插入命令 |
| o | 在光标所在行的下面插入新的一行。光标停在空行首,等待输入文本 |
| O | 在光标所在行的上面插入新的一行。光标停在空行的行首,等待输入文本 |
| a | 在当前光标所在位置之后插入随后输入的文本 |
| A | 行尾插入命令 |
3.末行模式:
esc 英文冒号【:】 q 退出不保存 wq 保存并退出 !强制 q! 强制退出
末行模式的一些命令:
set nu:显示行号
set ai:设置自动缩进,即每行的缩进同上一节相同(即上下对齐)
set noai:取消对齐
set cul:标尺
set nocul:取消标尺
set key=passwd(passwd代指密码,可以随意输入):给进入编辑器增加密码
set key=(=后什么都不输入):取消密码
set tabstop=4 (set ts=4):设置tab 一次为四个空格
ctrl+V:进入可视化模式(可视化模式作用较小,不常用,且不实用,仅做了解就好)
7.通配符
7.1通配符的概念
通配符的作用是去匹配系统中的文件名
与之相对的是正则表达式,正则表达式是去匹配文件中的内容(正则表达式常用命令:grep 过滤)
7.2通配符的应用场景
通配符一般配合显示命令 IS 使用,d? 可以查d开头 d* 查的开头所以 *d 查结尾是d
*:匹配所有非隐藏的字符无论多长多短,但不匹配 "." 开头的文件,即隐藏文件
(PS:如果需要使用通配符查看隐藏文件,只有“ . * ”命令可以实现)
8.命令行格式,选项和常用命令
命令行格式
命令字 空格 [选项] 空格 [参数]
2.linux部分命令及其选项
如下:
1.pwd 显示当前文件路径
2.stat 查看文件详细属性
3.cd (change directory) 切换文件目录
| 命令 | 效果 |
|---|---|
| cd = cd~ | 若不指定目标位置,切换到当前用户的宿主目录(家目录) |
| cd - | 到前一次的目录 |
| cd .. | 返回上一级目录 |
4.alias 临时修改
- alias是一个定义别名命令,常用于给很长的很长的命令取别名更方便使用,
列如:alias myvim= ' vim /etc/sysconfig/network-scripts/ifcfg-ens33 '
使 myvim 与 vim /etc/sysconfig/network-scripts/ifcfg-ens33 对应,需注意 ‘’ (引号),引号是一定要打的,单引号双引号都可以,但一定要有引号,否则电脑无法识别
- 删除别名直接 unalias myvim就可以
- \加别名命令 (显示原始命令)
PS:绝对路径>别名>内部>hash>外部命令(命令执行过程中的优先级大小,先查找别名在查找内部命令,缓存最后外部)
5.du(disk usage)查看文件夹占用了磁盘的大小
查看当前所在文件夹占用了磁盘的多少单元块。默认1单元块为4K, 不满4K 按4k算。
| 选项 | 作用 |
|---|---|
| -h | 将显示内容变成更容易理解的格式(人性化显示) |
| -a | 统计磁盘空间占用时包括所有的文件(PS:不仅仅只统计目录,而是统计总量,会列出每个文件和目录的详细使用情况) |
| -s(小写s(summarize)) | 统计当前文件夹所占用空间总的(Summary)大小(ps:不是统计每个子目录、文件的大小) |
| -d = 1(即max-depth=n) | 最大显示到第n层 |
| --exclude | 不计入统计 |
| -df | 查看文件夹的磁盘空间(挂载的文件夹) |
| -c | 显示最后的总计磁盘使用量(指定目录中所有文件和子目录的磁盘占用情况,并提供一个总体摘要) |
PS:-a 和 -s不能同时使用,-c与-a也有一定区别,-df只能查看挂载的文件夹
6.ls 显示命令
查看ls在系统中所在位置:which ls(很多命令都可以用which查看)
需注意ls在生产环境中需要慎用,很多服务器的文件数量是非常多的,一次查看可能会造成死机等故障。
| 选项 | 作用 |
|---|---|
| -h | 将显示内容变成更容易理解的格式(人性化显示) |
| -p | 递归创建 -p前面可以+v,-vp可以显示创建过程 |
| -a | 显示全部文件包括隐藏文件以及 . 和 .. 文件夹 |
| -A | 显示全部文件包括隐藏文件,但不显示 . 和 .. 文件夹 |
| -i | 查看文件的inode号 |
| -d | 显示当前文件夹 |
| -R | 递归显示 |
| -t | 以时间顺序显示 |
| -r | 倒序显示 |
| -tr/-rt | 按照时间倒叙排序 |
| -S(大写S) | 以文件容量大小排序 |
| --color | 显示颜色 |
7.cp 复制
- cp [选项] 源文件 目标 相当于改名复制
- cp [选项] 文件夹 文件相当于 改名另存为
| 选项 | 作用 |
|---|---|
| -f | 覆盖目标同名文件或目录时不进行提醒,直接强制复制 |
| -i | 取消提示(覆盖目标同名文件或目录时不进行提醒) |
| -p | 复制时保持源文件的权限、属主及时间标记等属性不变 |
| -r | 复制目录时必须使用此选项,表示递归复制所有文件及子目录 |
| -a | 完整保留所有的信息 |
| -v | 可视化 |
| -u | 相当于增备,差异备份(只对文件夹起作用) |
PS:cp [-r或-a(根据需要保留的权限选择-r或者-a,需要复制文件夹必须有-r或-a选项)]... 源文件... 文件夹
(多个源文件只能复制到文件夹,且需注意必须是已存在的文件夹,在复制多个文件的时候该命令并不会新建文件夹)
8.mv 移动/改名
| 选项 | 作用 |
|---|---|
| -f | 强制覆盖,如果目标文件已经存在,则不询问,直接强制覆盖 |
| -i | 交互移动,如果目标文件已经存在,则询问用户是否覆盖(默认选项) |
| -n | 如果目标文件已经存在,则不会覆盖移动,而且不询问用户 |
| -v | 显示文件或目录的移动过程 |
9.rename 批量改名
格式:rename 旧字符 新字符 目标文件((想要改名的文件,用法有用通配符*.xxx修改后缀等)rename命令中间空格隔开)
举例:rename log log.bak * //所有 log文件改成 log.bak(这里*就是代指所有文件)
10.rm -rf 删除文件
格式:rm [选项] 要删除的文件或目录(中间用空格隔开)
| 选项 | 作用 |
|---|---|
| -f | 强制删除 |
| -i | 交互(提示) |
| -r | 递归(删除目录时一定要有-r) |
11.locate 查找命令(索引数据库查询)
命令通过搜索已经建立的文件数据库来定位文件。这个数据库通常由操作系统定期更新,因此命令的搜索速度非常快。但是,由于数据库不是实时更新的,所以可能导致搜索结果不是最新的
| 选项 | 作用 |
|---|---|
| -i | 不区分带小写搜索 |
| -n N | 只列举前N个匹配项目(只显示查找结果的多少个) |
PS:索引的构建是在系统较为空闲时自动进行(周期性任务),执行updatedb可以更新数据库
但是索引构建过程需要遍历整个根文件系统,很消耗资源(所以要在系统较为空闲的时候)
locate和updatedb命令来自于mlocate包(mlocate包含updatedb和locate命令的软件包。它是GNU Locate Utilities项目提供的一个开源工具,用于在Linux系统中进行文件搜索。)
12.find 查找命令
命令特点
- 精确
- 实时
- 支持查找的条件多
格式:find [查找路径] [选项] [查找条件] [处理动作]
-
命令各段含义
- 查找路径:指定具体目标路径;不指定为默认为当前目录
- 查找条件:可以对文件名、大小、类型、权限等标准进行查找;默认为找出指定路径下的所有文件
- 处理动作:对符合条件的文件做操作,默认输出至屏幕(print)
部分处理动作
-print:默认的处理动作,显示至屏幕-ls:类似于对查找到的文件执行"ls -dils"命令格式输出-fls file:查找到的所有文件的长格式信息保存至指定文件中,相当于 -ls > file-delete:删除查找到的文件,慎用!-ok COMMAND {} ;对查找到的每个文件执行由COMMAND指定的命令,对于每个文件执行命令之前,都会交互式要求用户确认-exec COMMAND {} ;对查找到的每个文件执行由COMMAND指定的命令-ok和-exec都是连接符的含义,作用是将前面的查询出来的结果传递给后面的命令做参数(一般不用ok,因为使用ok每一条都会询问,比较繁琐){}: 用于引用查找到的文件名称自身;:使用-ok或-exec时候作为命令结尾的一个参数,表示该命令结束举例:
#备份配置文件,添加.orig这个扩展名 find -name ".conf" -exec cp {} {}.orig ; #提示删除存在时间超过3天以上的joe的临时文件 find /tmp -ctime +3 -user joe -ok rm {} ; #在主目录中寻找可被其它用户写入的文件 find ~ -perm -002 -exec chmod o-w {} ; #查找/data下的权限为644,后缀为sh的普通文件,增加执行权限 find /data –type f -perm 644 -name "*.sh" –exec chmod 755 {} ; #fls #将mnt 下 已bak结尾的文件 保存成abc find /mnt/ -name "*.bak" -fls abcfind常用可选项
| 查找类型 | 关键字 | 说明 |
|---|---|---|
| 按名称查找 | -name | 根据目标文件的名称进行查找,允许使用*及?通配符 (-iname 文件名称 加了i以后文件名称不区分大小写) |
| 按文件大小查找 | -size | 根据目标文件的大小进行查找 一般使用+和 -号设置超过或小于指定的大小作为查找条件常用的容量单位包括 kB(注意 k 是小写)、MB、GB |
| 按文件属主查找 | -user | 根据文件是否属于目标用户进行查找 |
| 按文件类型查找 | -type | 根据文件的类型进行查找 文件类型包括普通文件(f)、目录(d)、块设备文件(b)、字符设备文件(c)等 |
| 按inode号 | -inum | 根据文件inode号查找 |
| 最大搜索目录深度 | -maxdepth level | 将你的文件已分级的形式查找 |
| 最小搜索目录深度 | -mindepth level | 同上 find /etc -maxdepth 2 -mindepth 2 |
| 按权限查找 | -perm | 按文件权限查找 |
| 时间单位(天)(#time) | -atime/-mtime/-ctime | 天(#time):-atime(年)/-mtime(月)/-ctime(日) |
13.xargs
单独使用xargs是将键盘上的输入输出在屏幕上,与echo命令单独使用一样。
由于很多命令不支持管道|来传递参数,xargs用于产生某个命令的参数,xargs 可以读入 stdin 的数据,并且以空格符或回车符将 stdin 的数据分隔成为参数
另外,许多命令不能接受过多参数,命令执行可能会失败,xargs 可以解决(比如cat一次查看太多)
注意:文件名或者是其他意义的名词内含有空格符的情况
14.mkdir 创建文件夹
格式:mkdir [选项] 目录位置及名称
文件须知
- 文件名最长255个字节
- 包括路径在内文件名称最长4095
- 除了斜杠和NULL,所有字符都有效.但使用特殊字符的目录名和文件不推荐使用,有些字符需要用引号来引用。
| 选项 | 作用 |
|---|---|
| -p | 递归创建(没有文件夹会自动递归创建) |
15.touch 只能创建空文件(创建不了目录)
格式:touch 新文件(可为空) 文件名 (不存在就是新建空文件 )
PS:touch 不会破坏已有文件 只会刷新时间
每个文件有三个时间戳:
access time访问时间,atime,读取文件内容modify time修改时间,mtime,改变文件内容(数据)change time改变时间,ctime,元数据发生改变(元数据 文件大小 权限 )
16.cat 查看文件
| 选项 | 效果 |
|---|---|
| -n | 显示行号包括空行 |
| -b | 跳过空白行编号 |
| -s | 将所有的连续的多个空行替换为一个空行(压缩成一个空行) |
| -A | 显示隐藏字符 |
17.head 可以显示文件或标准输入的前面行
格式:head [OPTION(可选项)]... [FILE(文件夹)]...
head -n 具体数字 文件名(不加具体的数字,默认开头十行)
| 选项 | 作用 |
|---|---|
| -c # | 指定获取前#(代指数字)字节 |
| -n # | 指定获取前#(代指数字)行,列如3,就是从开头开始往下,只显示三行;如果是+3,也是只显示三行(3=+3);如果是负数,则从文件开头开始往下,列如-3,就是一直显示到倒数第四行,最后三行不显示 |
18.tail 查看文件或标准输入的倒数行(与head相反)
格式:tail [OPTION(可选项)]... [FILE(文件夹)]...
举例:tail -n +#(#代指数字) 文件名 从k行开始显示
| 选项 | 作用 |
|---|---|
| -c # | 指定获取前#(代指数字)字节 |
| -n # | 指定获取前#(代指数字)行,列如3,就是从结尾开始往上,只显示三行;如果是负数,则从文件结尾开始往上,列如-3,也是只显示最后三行(3=-3);如果是+3,则是从文件开头往下第三行(包括第三行),除了第一和第二行全部显示 |
| -f | 实时监控最后十行 |
19.tr 转换
格式:tr [选项]... [SET(字符串)] [SET(字符串)]
举例:
[root@localhost ~]tr 123 abc
#只要出现123 就转换成abc
如下:
123
abc
[root@localhost ~]tr 12345678 abc
#这里将12345678替换成abc,但是abc数只有三位,所以123三位后续的位数,45678都会被替换成c
如下:
123456789
abcccccc9
| 选项 | 作用 |
|---|---|
| -d | 删除 |
| -s | 压缩(常用于将多个相同的字符(包括空格)压缩为一个显示) |
| -c | 补集 |
20.cut 提取文本文件数据的制定列
格式:cut [选项]... [文件]...
举例:
[root@localhost ~]#cut -d: -f1,3 /etc/passwd
##已冒号作为分隔的条件,取文件的第一列和第三列
root:0
bin:1
daemon:2
adm:3
lp:4
sync:5
shutdown:6
halt:7
mail:8
operator:11
| 选项 | 作用 |
|---|---|
-d DELIMITER(界定符,:等) | 指明分隔符,默认tab |
| -f | 选择文件内想要获取字段第#列, |
| -c | 取字符 |
组合举例:
[root@localhost ~]#df |tail -n +2|tr -s " " |cut -d " " -f5|tr -d %
# df |tail -n +2 不显示第一行字段
# tr -s " " 将多个空格压缩成一个
# cut -d " " -f5 已空格为分隔符,取第五列
# tr -d % 删除百分号
21.wc 显示统计
格式:wc [选项]... 目标文件..
统计列数,wc本身就是参数word,不跟选项就是默认统计所有
| 选项 | 作用 |
|---|---|
| -l | 统计行数 |
| -w | 统计单词个数 |
| -c | 统计字节数 |
举例:
[root@localhost ~]# cat a.txt
dasdasdads
[root@localhost ~]# wc a.txt
1 1 11 a.txt
#1行 1个单词 11个字节
[root@localhost ~]# cat a.txt
das dasdads
[root@localhost ~]# wc a.txt
1 2 12 a.txt
#1行 2个单词 11个字节
########注意空行和换行符
tab 空格 算单词的分隔符,wc单词的计算是以用tab和空格分开的来看
22.grep 过滤
格式:grep [选项]… 表达式 [文件]
表达式格式:
- 要查找的字符串以双引号括起来单引号也可以
- “^……”表示以……开头,“……$”表示以……结尾
- “^$”表示空行
举例:
[root@test1 opt]# grep "^b" 123.txt
#过滤已b开头
[root@test1 opt]#grep '/$' 123.txt
#过滤已/结尾
[root@test1 opt]# grep -v "^$" 123.txt
#过滤非空行
常用选项
| 选项 | 作用 |
|---|---|
| -i | 查找时忽略大小写 |
| -v | 反向查找,输出与查找条件不相符的行 |
| -o | 只显示匹配项 |
| -f | 对比两个文件的相同行 |
| -c | 匹配的行数(列如:grep -c ‘root’ passwd在passwd文件中匹配有root的行数,输出结果 |
23.paste 横向合并文件
格式:paste [选项] [文件]
| 选项 | 作用 |
|---|---|
| -d | 制定分隔符 |
举例:
#一个文件放密码一个文件放用户名
[root@localhost ~]#cat user.txt pass.txt
lisi
liwu
liliu
123
345
444
# 没用paste之前文件内容展示
[root@localhost ~]#paste user.txt pass.txt
lisi 123
liwu 345
liliu 444
#使用paste合并文件内容显示
[root@localhost ~]#paste -d: user.txt pass.txt
###分隔符 用冒号隔开
lisi:123
liwu:345
liliu:444
3.压缩与解压缩
linux中压缩常用的两个软件是gzip和bzip2(gzip的压缩率 要高于bzip2)但这两者只能压缩文件,无法对文件夹进行压缩,所以做个了解,后续与tar(归档)结合使用压缩文件夹
1.gzip与bzip2
压缩格式:gzip [-9] 文件名… / bzip2 [-9] 文件名…
[9]:是压缩比例,是1到9(可写可不写) 解压格式:gzip -d .gz格式的压缩文件… / bzip2 -d .bz2格式的压缩文件… -d就是解压
使用以上两种压缩,源文件就不存在了,所以需要在压缩的时候加入-k选项保留源文件
组合举例:
[root@test1 opt]# gzip *.txt
#gzip 压缩
[root@localhost data]#bzip2 -9k 2.txt
#bzip2 压缩
#centos7 可以使用-k 保留源文件 centos8 有保留源文件特性
(#上面压缩方式二选一)
#选择gzip压缩,未加选项-k
#如下:
[root@test1 opt]# gzip *.txt
[root@test1 opt]# ls
123456.txt.gz 123.txt.gz 1.txt.gz 2.txt.gz
abc.txt.gz rh test.txt.gz
[root@test1 opt]# gzip -d *.txt.gz 解压
[root@test1 opt]# ls
123456.txt 123.txt 1.txt 2.txt abc.txt rh test.txt
2.tar(归档)
作用:将多个目录和文件,打包成一个.tar归档文件
格式:tar [选项] ... 归档文件名 源文件或目录(归档和压缩一样,不做指定只能放在需要归档文件的当前目录下
指定解压位置:tar [选项] ... 归档文件名 [-C 目标目录]
选项(有先后顺序要求):
- -c(小写):创建(Create).tar 格式的包文件
- -x:解开.tar 格式的包文件
- -C(大写):解压时指定释放的目标文件夹
- -f:表示使用归档文件(一般都要带上表示使用tar)
- -p(小写):打包时保留文件及目录的权限
- -P(大写):打包时保留文件及目录的绝对径
- -t:列表查看包内的文件(要和f一起使用)
- -v:输出详细信息(Verbose)
- -j:调用 bzip2 程序进行压缩或解压
- -z:调用 gzip 程序进行压缩或解压
tar zcvf 自定义名字.tar.gz 要压缩的文件 #归档压缩
tar xf 压缩文件名 #解压
tar tf 压缩包名 #查看压缩包中的文件
总结
linux系统中
1.目录和文件管理需要掌握部分命令如下
mkdir:创建文件夹
touch:创建文件
cp:复制文件或文件夹
mv:移动/改名
rm-rf:删除
find:查找
which:查找内外部命令为止
tar:归档
2.Linux查看文件内容命令:
cat:查看并标准输出
head:显示标准输入前面行
tail:显示标准输入后面行
grep:过滤
wc:显示统计