导图
1.目录层次
1.1 常见目录
一级目录 | 功能(作用) |
---|---|
/bin/ | 存放系统命令,普通用户和 root 都可以执行。放在 /bin 下的命令在单用户模式下也可以执行 |
/boot/ | 系统启动目录,保存与系统启动相关的文件,如内核文件和启动引导程序(grub)文件等 |
/dev/ | 设备文件保存位置 |
/etc/ | 配置文件保存位置。系统内所有采用默认安装方式(rpm 安装)的服务配置文件全部保存在此目录中,如用户信息、服务的启动脚本、常用服务的配置文件等 |
/home/ | 普通用户的主目录(也称为家目录)。在创建用户时,每个用户要有一个默认登录和保存自己数据的位置,就是用户的主目录,所有普通用户的主目录是在 /home/ 下建立一个和用户名相同的目录。如用户 liming 的主目录就是 /home/liming |
/lib/ | 系统调用的函数库保存位置 |
/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/ | 临时目录。系统存放临时文件的目录,在该目录下,所有用户都可以访问和写入。建议此目录中不能保存重要数据,最好每次开机都把该目录清空 |
/usr目录
usr(注意不是 user),全称为 Unix Software Resource,此目录用于存储系统软件资源。FHS 建议所有开发者,应把软件产品的数据合理的放置在 /usr 目录下的各子目录中,而不是为他们的产品创建单独的目录。
Linux 系统中,所有系统默认的软件都存储在 /usr 目录下,/usr 目录类似 Windows 系统中 C:\Windows\ + C:\Program files\ 两个目录的综合体。
子目录 | 功能(作用) |
---|---|
/usr/bin/ | 存放系统命令,普通用户和超级用户都可以执行。这些命令和系统启动无关,在单用户模式下不能执行 |
/usr/sbin/ | 存放根文件系统不必要的系统管理命令,如多数服务程序,只有 root 可以使用。 |
/usr/lib/ | 应用程序调用的函数库保存位置 |
/usr/XllR6/ | 图形界面系统保存位置 |
/usr/local/ | 手工安装的软件保存位置。我们一般建议源码包软件安装在这个位置 |
/usr/share/ | 应用程序的资源文件保存位置,如帮助文档、说明文档和字体目录 |
/usr/src/ | 源码包保存位置。我们手工下载的源码包和内核源码包都可以保存到这里。不过笔者更习惯把手工下载的源码包保存到 /usr/local/src/ 目录中,把内核源码保存到 /usr/src/linux/ 目录中 |
/usr/include | C/C++ 等编程语言头文件的放置目录 |
/var目录
/var 目录用于存储动态数据,例如缓存、日志文件、软件运行过程中产生的文件等。通常,此目录下建议包含如表 4 所示的这些子目录。
/var子目录 | 功能(作用) |
---|---|
/var/lib/ | 程序运行中需要调用或改变的数据保存位置。如 MySQL的数据库保存在 /var/lib/mysql/ 目录中 |
/var/log/ | 登陆文件放置的目录,其中所包含比较重要的文件如 /var/log/messages, /var/log/wtmp 等。 |
/var/run/ | 一些服务和程序运行后,它们的 PID(进程 ID)保存位置 |
/var/spool/ | 里面主要都是一些临时存放,随时会被用户所调用的数据,例如 /var/spool/mail/ 存放新收到的邮件,/var/spool/cron/ 存放系统定时任务。 |
/var/www/ | RPM 包安装的 Apache 的网页主目录 |
/var/nis和/var/yp | NIS 服务机制所使用的目录,nis 主要记录所有网络中每一个 client 的连接信息;yp 是 linux 的 nis 服务的日志文件存放的目录 |
/var/tmp | 一些应用程序在安装或执行时,需要在重启后使用的某些文件,此目录能将该类文件暂时存放起来,完成后再行删除 |
1.2 文件的目录结构
目录:
/bin:bin 是 Binaries (二进制文件) 的缩写, 这个目录存放着最经常使用的命令。
/boot:这里存放的是启动 Linux 时使用的一些核心文件,包括一些连接文件以及镜像文件。
/dev :dev 是 Device(设备) 的缩写, 该目录下存放的是 Linux 的外部设备,在 Linux 中访问设备的方式和访问文件的方式是相同的。
/etc:etc 是 Etcetera(等等) 的缩写,这个目录用来存放所有的系统管理所需要的配置文件和子目录。
/home:用户的主目录,在 Linux 中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的,如上图中的 alice、bob 和 eve。
/lib:lib 是 Library(库) 的缩写这个目录里存放着系统最基本的动态连接共享库,其作用类似于 Windows 里的 DLL 文件。几乎所有的应用程序都需要用到这些共享库。
/lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
/media:linux 系统会自动识别一些设备,例如U盘、光驱等等,当识别后,Linux 会把识别的设备挂载到这个目录下。
/mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在 /mnt/ 上,然后进入该目录就可以查看光驱里的内容了。
/opt:opt 是 optional(可选) 的缩写,这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
/proc:proc 是 Processes(进程) 的缩写,/proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
/root:该目录为系统管理员,也称作超级权限者的用户主目录。
/sbin:s 就是 Super User 的意思,是 Superuser Binaries (超级用户的二进制文件) 的缩写,这里存放的是系统管理员使用的系统管理程序。
/selinux:这个目录是 Redhat/CentOS 所特有的目录,Selinux 是一个安全机制,类似于 windows 的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。
/srv: 该目录存放一些服务启动之后需要提取的数据。
/sys:这是 Linux2.6 内核的一个很大的变化。该目录下安装了 2.6 内核中新出现的一个文件系统 sysfs 。
/tmp:tmp 是 temporary(临时) 的缩写这个目录是用来存放一些临时文件的。
/usr:usr 是 unix shared resources(共享资源) 的缩写,这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录。
/usr/bin:系统用户使用的应用程序。
/usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序。
/usr/src:内核源代码默认的放置目录。
/var:var 是 variable(变量) 的缩写,这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
/run:是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。
2.查看文件
2.1 七类常见的linux文件
文件类型 | 第一个字符 | 描述 |
普通文件 | - | 包括纯文本文件、二进制文件、各种压缩文件等。 |
目录文件(directory) |
d |
目录,类似 Windows 系统中的文件夹。 |
块设备文件(block) | b | 块设备文件,就是保存大块数据的设备,比如最常见的硬盘。 |
字符设备文件(character) | c | 字符设备文件,例如键盘、鼠标等。 |
管道文件(pipe) | p | 管道文件,其主要作用是解决多个程序同时存取一个文件所造成的错误。 |
链接文件(link) | l | 链接文件,类似 Windows 系统中的快捷方式 |
套接字文件(socket) | s | 套接字文件,通常用在网络数据连接,可以启动一个程序开监听用户的要求,用户可以通过套接字进行数据通信 |
2.2 显示命令
cat
选项 | 效果 |
---|---|
-n | 显示行号包括空行 |
-b | 跳过空白行编号 |
-s | 将所有的连续的多个空行替换为一个空行(压缩成一个空行) |
-A | 显示隐藏字符 |
-E | 列出每行结尾的回车符 $ |
-T | 把 Tab 键 ^I 显示出来 |
-V | 列出特殊字符 |
more
格式:
more [选项] 文件名
操作:
空格 下一行 ----到文末自动退出
more选项
选项 | 作用 |
---|---|
-f | 计算行数时,以实际的行数,而不是自动换行过后的行数 |
-p | 不以卷动的方式显示每一页,而是先清除屏幕后再显示内容 |
-c | 跟 -p 选项相似,不同的是先显示内容再清除其他旧资料 |
-s | 当遇到有连续两行以上的空白行时,就替换为一行的空白行 |
-u | 不显示下引号(根据环境变量 TERM 指定的终端而有所不同) |
+n | 从第 n 行开始显示文件内容,n 代表数字 |
-n | 一次显示的行数,n 代表数字 |
more交互指令及功能(使用more和less命令查看内容的过程中 会进入交互界面)
交互指令 | 功能 |
---|---|
h 或 ? | 显示 more 命令交互命令帮助 |
q 或 Q | 退出 more |
v | 在当前行启动一个编辑器 |
:f | 显示当前文件的文件名和行号 |
!<命令> 或 :!<命令> | 在子Shell中执行指定命令 |
回车键 | 向下移动一行 |
空格键 | 向下移动一页 |
Ctrl+l | 刷新屏幕 |
= | 显示当前行的行号 |
' | 转到上一次搜索开始的地方 |
Ctrf+f | 向下滚动一页 |
. | 重复上次输入的命令 |
/ 字符串 | 搜索指定的字符串 |
d | 向下移动半页 |
b | 向上移动一页 |
less
less命令 与 more命令 非常类似,但less命令 可以更加随意地浏览文件,而且 less 在查看之前不会加载整个文件。
格式:
less [选项] 文件名
less选项
选项 | 作用 |
-b | 设置缓冲区的大小 |
-e | 当文件显示结束后,自动退出 |
-f | 强制打开特殊文件,例如外围设备代号、目录和二进制文件 |
-g | 只标志最后的关键词 |
-i | 忽略搜索时的大小写 |
-m | 显示类似more命令的百分比 |
-N | 显示每行的行号 |
-o | 将less输出的内容在指定文件保存起来 |
-Q | 不使用警告音 |
-s | 显示连续空行为一行 |
-S | 行过长时将超出部分舍弃。 |
-x | 将tab键显示为规定的数字空格 |
less交互指令及功能(使用more和less命令查看内容的过程中 会进入交互界面)
交互指令 | 功能 |
---|---|
/字符串 | 向下搜索“字符串”的功能。 |
?字符串 | 向上搜索“字符串”的功能。 |
n | 重复*前一个搜索(与 / 成 ? 有关)。 |
N | 反向重复前一个搜索(与 / 或 ? 有关)。 |
b | 向上移动一页。 |
d | 向下移动半页。 |
h 或 H | 显示帮助界面。 |
q 或 Q | 退出 less 命令。 |
y | 向上移动一行。 |
空格键 | 向下移动一页。 |
回车键 | 向下移动一行。 |
【PgDn】键 | 向下移动一页。 |
【PgUp】键 | 向上移动一页。 |
Ctrl+f | 向下移动一页。 |
Ctrl+b | 向上移动一页。 |
Ctrl+d | 向下移动一页。 |
Ctrl+u | 向上移动半页。 |
j | 向下移动一行。 |
k | 向上移动一行。 |
G | 移动至最后一行。 |
g | 移动到第一行。 |
ZZ | 退出 less 命令。 |
v | 使用配置的编辑器编辑当前文件。 |
[ | 移动到本文档的上一个节点。 |
] | 移动到本文档的下一个节点。 |
p | 移动到同级的上一个节点。 |
u | 向上移动半页。 |
head/tail
head -n 具体数字 文件名 (不加具体数字,默认前十行)
tail -n 具体数字 文件名 (不加具体数字,默认前十行)
tail -f 具体数字 文件名 (不加具体数字,实时跟踪最后十行)
head选项
选项 | 含义 |
---|---|
-n K | 这里的 K 表示行数,该选项用来显示文件前 K 行的内容;如果使用 "-K" 作为参数,则表示除了文件最后 K 行外,显示剩余的全部内容 |
-c K | 这里的 K 表示字节数,该选项用来显示文件前 K 个字节的内容;如果使用 "-K",则表示除了文件最后 K 字节的内容,显示剩余全部内容 |
-v | 显示文件名 |
tail选项
选项 | 含义 |
---|---|
-n K | 这里的 K 指的是行数,该选项表示输出最后 K 行,在此基础上,如果使用 -n +K,则表示从文件的第 K 行开始输出 |
-c K | 这里的 K 指的是字节数,该选项表示输出文件最后 K 个字节的内容,在此基础上,使用 -c +K 则表示从文件第 K 个字节开始输出 |
-f | 输出文件变化后新增加的数据 |
head/tail 范围图示
tr
转换
格式:
tr [选项] [第一字符集] [第二字符集]
选项 | 作用 |
-d | 删除 |
-s | 压缩 |
-c | 用字符串一中字符集的补集替换二字符集,要求字符集为ASCII |
cut
可以提取文本文件数据的指定列
格式:
cut [选项] 文件
选项
选项 | 功能 |
-d | 指定分隔符,默认tab |
-f | 想要获取的字段 |
-c | 取字符 |
wc
统计列数,wc本身就是参数
格式:
wc [选项] 文件
选项
选项 | 功能 |
-l | 统计行数 |
-w | 统计单词个数 |
-c | 统计i字节数 |
grep
过滤
格式:
grep [选项] 查找条件 目标文件
选项
选项 | 功能 |
-i | 查找时忽略大小写 |
-v | 反向查找,查找与条件不同的行 |
-o | 只显示匹配项 |
-f | 对比俩个文件的相同行 |
-c | 匹配的行数 |
基本格式:
要查找的字符串以双引号括起来单引号也可以
“^……”表示以……开头,“……$”表示以……结尾
“^$”表示空行
paste
合并文件
tops:
cat 上下合并 ,paste左右合并
格式:
paste [选项] 目标文件(可多个)
选项
选项 | 功能 |
-d | 指定分隔符 |
... | ... |
sort
排序
把整理过的文本显示在屏幕上,不改变原始文件!!
格式:
sort [选项] 文件
选项
选项 | 功能 |
-r | 执行反方向(由上至下)整理 |
-R |
随机排序 |
-n | 执行按数字大小整理 |
-h | 人性化显示 |
-f | 忽略字符串中字符的大小写 |
-u | 合并重复项(去重) |
-t | 指定分隔符 |
-k | 指定列 |
uniq
uniq常和sort配合使用
去重
格式:
uniq [选项] 文件
选项
选项 | 功能 |
-c | 显示每行重复出现的次数 |
-d | 仅显示重复过的行 |
-u | 仅显示不曾重复的行 |
3.压缩,解压
3.1 压缩 gzip bzip2
gzip和bzip都是压缩软件。 gzip [-9] 文件名... //提高压缩比例,但是文件较大时效率会低 bzip2 [-9] 文件名... gzip -d // .gz格式的压缩文件 d就是解压 bzip2 -d // .bz2格式的压缩文件 9代表压缩比率,9最大1最小,使用以上两种压缩源文件不存在了 gzip的压缩率 要高于bzip2
3.2 归档 tar
tar (tape archive)磁带 归档
tar [选项] 归档文件名 源文件或目录
tar [选项] 归档文件名 [-C 目标目录]
选项 | 功能 |
c | 创建tar格式包文件 |
x | 解开tar格式包文件 |
-C | 解压时指定释放的目标文件夹 |
f | 表示使用归档文件(一般都要带上表示使用tar) |
p | 打包时保留文件及目录的权限 |
P | 打包时保留文件及目录的绝对径 |
t | 列表查看包内的文件(要和f一起使用) |
v | 输出详细信息(Verbose) |
j | 调用 bzip2 程序进行压缩或解压 |
z | 调用 gzip 程序进行压缩或解压 |
4.vi编辑器
Linux 系统中“一切皆文件”,因此当我们在命令行下更改文件内容时,不可避免地要用到文本编辑器。
推荐使用 Vi 文本编辑器的原因有很多,比如说:
几乎所有的Linux 发行版都内嵌有 Vim 文本编辑器,而其他的编辑器则不一定存在;
Vim具有编辑程序的能力,会主动利用不同的字体颜色辨别语法的正确性,方便程序设计 接口
vim是vi的升级版
常用选项 | 功能 |
+# | 打开文件后,让光标处于第#行的行首,+默认行尾 |
! | 打开上一次文件 |
+/PATTERN | 让光标处于第一个被PATTERN匹配到的行行首用不多 |
格式 vim 选项 文件 vim 文件名不存在 //是新建 vim 文件名存在 //是修改
如果没有vim可以使用命令进行安装
yum install vim -y
4.1 三种模式
命令模式
命令或普通(Normal)模式:默认模式,可以实现移动光标,剪切/粘贴文本
此模式下,可使用方向键(上、下、左、右键)或 k、j、h、i 移动光标的位置,还可以对文件内容进行复制、粘贴、替换、删除等操作
操作键 | 功能 |
---|---|
ctrl+f或者Pagedown | 向下翻页 |
ctrl+b或者Pageup | 向上翻页 |
Home;^;0 | 跳到本行的行首 |
按 End 键或$ | 跳转到本行的行尾 |
1G 或 gg | 跳转到文件的第一行包括空行 |
G | 跳转文件的末尾 |
#G | #代表行号数字,直接跳转到#行 |
M | 跳转到当前显示页面的中间行 |
x或delete | 删除当前光标的字符 |
dd | 删除一整行 |
#dd | 删除当前光标开始到第#行(包括当前行) |
d^ | 删除当前光标之前到行首 往前不包括当前光标处的字符 86 往后删除包括当前光标处的字符 |
d$ | 删除当前光标到行尾 |
dw | 删除当前光标处的单词 |
R 或shift+r | 替换当前光标处文字,会进入替换模式 |
yy | 复制当前光标处整行 |
#yy | 复制当前光标处向下的#行 |
p | 粘贴到光标处下一行 |
P | 粘贴到光标处上一行 |
u | 只消除上一次可多次使用 |
U | U 取消所有操作 |
/字符 | 向下查找 |
?字符 | 向上查找 |
n | 向同一方向重复上次的查找指令 |
N | 向相反方向重复上次的查找指定末行模式 |
输入模式
插入(Insert)或编辑模式:用于修改文本
使 Vim 进行输入模式的方式是在命令模式状态下输入 i、I、a、A、o、O 等插入命令(各指令的具体功能如表所示),当编辑文件完成后按 Esc 键即可返回命令模式。
快捷键 | 功能描述 |
---|---|
i | 在当前光标所在位置插入随后输入的文本,光标后的文本相应向右移动 |
I | 行首插入命令 |
o | 在光标所在行的下面插入新的一行。光标停在空行首,等待输入文本 |
O | 在光标所在行的上面插入新的一行。光标停在空行的行首,等待输入文本 |
a | 在当前光标所在位置之后插入随后输入的文本 |
A | 行尾插入命令 |
末行模式
文件中的指定内容执行保存、查找或替换等操作。使 Vim 切换到编辑模式的方法是在命令模式状态下按“:”(英文冒号)键,此时 Vim 窗口的左下方出现一个“:”符号,这是就可以输入相关指令进行操作了。
快捷键 | 功能效果 |
---|---|
:q | 退出不保存 |
:q! | 强制退出不保存 |
:w | 保存 |
:w 新文件名 | 另存为新文件: |
:wq :zz :x | 保存并退出 |
:e 其他文件名(如果已修改需要加e!) | 打开新文件进行编辑 |
:r 其他文件名 | 在当前文件中读入其他文件内容 |
: [替换范围] s /旧的内容/新的内容[/g] | |
:s /old/new | 替换当前行中的第一个old改为new |
:s /old/new/g | 替换当前行中的所有old改为new |
:#,# s /old/new/g | #到#行所有old改为new |
:%s /old/new/g | %代表全文 全文替换所有old改为new |
:# d | 删除 第#行 |
:#,# d | 删除#到#行 |
:#,# y | 复制三到6 行 |
:set nu 或:set nonu | 加行号 不显示行号 |
:set cul (:set nocul ) | 光标所在行有下划线(取消) |
:set ai xml k8s | 对齐 回车后和上一行对齐 |
:set all 可以看所有的一些帮助 | 可以看所有的一些帮助 |
:set key=password | 加密码 |
:set key=空白 | 取消密码 |
:set tabstop=4 (set ts=4) | tab 一次为四个空格 |
.!命令 (who,date ) | 将date命令插入当前行注意会覆盖当前行 |
可视化模式
在末行有”-- VISUAL -- “指示,表示在可视化模式
允许选择的文本块
-
v 面向字符,-- VISUAL --
-
V 面向整行,-- VISUAL LINE --
-
ctrl-v 面向块,-- VISUAL BLOCK --
1.在指定行的行首插入#号
1、先将光标移动到指定的第一行的行首 2、输入ctrl+v 进入可视化模式 3、向下移动光标,选中希望操作的每一行的第一个字符 4、输入大写字母 I 切换至插入模式 5、输入 # 6、按 ESC 键
2.在指定的块插入相同的内容
1、光标定位到要操作的地方 2、CTRL+v 进入“可视 块”模式,选取这一列操作多少行 3、SHIFT+i(I) 4、输入要插入的内容 5、按 ESC键
4.2 配置文件定制vim工作特性
/etc/vimrc #全局配置 ~/.vimrc #个人配置
系统配置文件位于 Vim 的安装目录(默认路径为 /etc/.vimrc);
用户配置文件位于主目录 ~/.vimrc,即通过执行 vim ~/.vimrc
命令即可对此配置文件进行合理修改。通常情况下,Vim 用户配置文件需要自己手动创建。
设置参数 | 功能描述 |
---|---|
set nu | 显示行号 |
set cul | 突出显示当前行。 |
set ai | 设置自动缩进,即每行的缩进同上一节相同。 |
set ts=4 | 设置 Tab 键宽度为 4 个空格。 |
总结:
标签:选项,文件,usr,Linux,var,目录,光标 From: https://www.cnblogs.com/suoluo212/p/16728122.html