Linux学习总结
一、文件系统
Linux文件系统中的文件是数据的集合,文件系统不仅包含着文件中的数据而且还有文件系统的结构,所有Linux 用户和程序看到的文件、目录、软连接及文件保护信息等都存储在其中。
Linux目录结构:
![f8eb0fda4dcddef920a41c92fea23f68.png](https://i-blog.csdnimg.cn/blog_migrate/9580fab203d1109779e2417c62cd8a7f.png)
bin 存放二进制可执行文件(ls,cat,mkdir等)
boot 存放用于系统引导时使用的各种文件
dev 用于存放设备文件
etc 存放系统配置文件
home 存放所有用户文件的根目录
lib 存放跟文件系统中的程序运行所需要的共享库及内核模块
mnt 系统管理员安装临时文件系统的安装点
opt 额外安装的可选应用程序包所放置的位置
proc 虚拟文件系统,存放当前内存的映射
root 超级用户目录
sbin 存放二进制可执行文件,只有root才能访问
tmp 用于存放各种临时文件
usr 用于存放系统应用程序,比较重要的目录/usr/local 本地管理员软件安装目录
var 用于存放运行时需要改变数据的文件
1.1、辅助命令
type:命令类型
内部命令(如:
![c26a1eac3d5d47e82eaa3b819645448a.png](https://i-blog.csdnimg.cn/blog_migrate/5b8f510c2bcb1438307baf2d0dc9b71b.png)
)
外部命令(如:
![e217908ec4fa55153aed629e60f47e64.png](https://i-blog.csdnimg.cn/blog_migrate/206acfd1edc2a116a92f64c035b46bfa.png)
)
help:内部命令帮助
– help:内部命令清单,附带语法格式,描述
– help 具体内部命令
man外部命令帮助手册
要先执行 yum install man -y命令下载man
whereis:定位命令位置(如:
![eddf5d18b78ea70a4aa6d0dc4dc4abe6.png](https://i-blog.csdnimg.cn/blog_migrate/87b14c2d30ca86c5a836677f41632cdb.png)
)
1.2、目录操作
1.2.1 切换目录
命令:cd+目录的路径
查看当前目录的完整路径:pwd
![ac49ea8fbf0f5db69038d08e75996a2c.png](https://i-blog.csdnimg.cn/blog_migrate/c70d79bbf7b9773771fd657389bd437d.jpeg)
命令: cd .. 返回到父目录
![1c2076105a32ba3dd5bc9f31a2377c4d.png](https://i-blog.csdnimg.cn/blog_migrate/b9f0b6051bc4c531211d5e8bad0f2500.png)
1.2.2 新建目录
命令:mkdir + 目录名字
查看当前目录下拥有的子目录和文件: ls
![3bd08f0bc97ced8df4320b637f72c1f7.png](https://i-blog.csdnimg.cn/blog_migrate/d5be68ae5978b6a4b3ee610836f74c25.png)
1.2.3 拷贝目录
cp source dest -r
![f3ca4a8c7288c8e32fc50fcb7170a32b.png](https://i-blog.csdnimg.cn/blog_migrate/f12b296f53ab974d74aaacf43f4e22ae.png)
1.2.4 删除目录
rmdir directory
注意:rmdir只能删除空目录,若要删除非空目录则用rm命令rm -rf dir
![754fec49d26f3b3c8aee092abeb8f71e.png](https://i-blog.csdnimg.cn/blog_migrate/4c535025ffe49c76939c14fc2bb5c45d.jpeg)
1.2.5 移动/更改 目录
移动文件或目录:mv + 目录/文件名字 + 其他路径
mv test / 将test目录移动到 根目录/ 下
![ebd2299c5ca383a77e50cfb27f7ea054.png](https://i-blog.csdnimg.cn/blog_migrate/ba76adb7eceed2f05b3691090bb1c344.jpeg)
更改文件或目录的名字:mv + 旧目录名字 + 新目录名字。
![8f8a0ba83472b505b52f8b47e89801ff.png](https://i-blog.csdnimg.cn/blog_migrate/0028cbea3e67b2d4ecbfe6955193e5fa.png)
1.3、文件操作
1.3.1 新建文件:(一切皆文件)
touch web.log 创建一个空文件。
![cd582cf0a45ac62fca9aad42e06d945d.png](https://i-blog.csdnimg.cn/blog_migrate/d1c64b61a94b5b2077b17c5ae74c17c6.jpeg)
1.3.2 复制文件
cp web.log web_cp.log
![114c67fb6edab9a093788722bdd00309.png](https://i-blog.csdnimg.cn/blog_migrate/c1cb985b608307e6b172ebd6bb8778eb.png)
复制文件,加个-r 参数,代表遍历复制,此时可用于复制一个目录。
1.3.3 删除文件
rm web_cp.log
![07648fc819cf020ca5105e09753cf89c.png](https://i-blog.csdnimg.cn/blog_migrate/3e0a41a2b909d71ba265be05a1af33e5.png)
此时需要手动输入y ,代表确认删除。可加 –f参数,直接删除,无需确认。当需要一个目录下所有东西时,加-r参数,代表遍历删除。
rm -f web.log
![fe8d3c29b8aef220e9705f26e3210ccb.png](https://i-blog.csdnimg.cn/blog_migrate/4f67995e8d53d2442c0ba85fe397cf76.png)
1.3.4 查看
(1)、查看目录下的东西
ls / ll
命令 ls -l 等价于 ll
![8a76c33444cd15a40f9454af8baace05.png](https://i-blog.csdnimg.cn/blog_migrate/d62b5dacd7ae6cc236877c4a2e3cad2a.jpeg)
查看目录下的所有东西(包括隐藏文件)
命令:ls –al 等价于 ll –a
![c0890c221944fbba9e32e03b097f7c4a.png](https://i-blog.csdnimg.cn/blog_migrate/68edcfcbb4c3812e5e17b780ffb0c150.jpeg)
(2)、查看文件内容
1.cat filename: 一次性显示整个文件的内容
![759f7b77e05b627c431fb6edea8ffb26.png](https://i-blog.csdnimg.cn/blog_migrate/dd82e50531f971749f5aaf465cbce3ee.jpeg)
缺点:当文件较大时,文本在屏幕上迅速闪过(滚屏),用户往往看不清所显示的内容。
因此,一般用more等命令分屏显示.
2.more filename 该命令一次显示一屏文本,满屏后停下来,并且在屏幕的底部出现一个提示信息,给出至今己显示的该文件的百分比。
按Space键,显示文本的下一屏内容。 按Enier键,只显示文本的下一行内容。
按B键,显示上一屏内容。
按Q键,退出。
命令:more /etc/profile
![c177038cff27994d6ff089e922b5792b.png](https://i-blog.csdnimg.cn/blog_migrate/9dd92b06403e4e0c94ad5d380bded29d.jpeg)
3.less命令 与 more命令 非常类似
less filename:
h 显示帮助界面
Q 退出less 命令
u 向后滚动半页
d 向前翻半页
空格键 滚动一页
b 向后翻一页
回车键 滚动一行
[pagedown]: 向下翻动一页
[pageup]: 向上翻动一页
以及上下键,向上一行,向下一行
(3)、从头打印文件内容
head -10 filename 打印文件1到10行
![22593cd2cfa884b82324be2b1f70bc87.png](https://i-blog.csdnimg.cn/blog_migrate/ecb1319562419bd5e1dd5fab2718c174.jpeg)
(4)、从尾部打印文件内容
tail -10 filename 打印文件最后10行
![b8ad2988996c96b1f415d0939a61c744.png](https://i-blog.csdnimg.cn/blog_migrate/4299e58701eb12e45fc33e38ef1eb699.jpeg)
注意:tail 还经常可以拿来查看文件的内容变化
加-f参数,tail –f filename
1.3.5 查找文件或目录
find pathname –name filename
例子:find / -name profile
该命令表示为,在/目录下查找 名字为profile的文件或目录,最后列出它的绝对路径
![e488a8948a959f9717f0afd29a280e06.png](https://i-blog.csdnimg.cn/blog_migrate/2c79748b95ea1309067b2905c2813791.jpeg)
linux系统根目录/ 下 一共有两个名字为profile,其中/etc/profile是一个文件,/etc/lvm/profile为目录
还可以按正则表达式来查找,且pathname越精确,查找的范围越小,速度越快。
find /etc -name pro*
该命令表示为:在/etc目录下查找以pro开头的文件或目录。
![df48ef117dfd6c44c885a1de3c7a398d.png](https://i-blog.csdnimg.cn/blog_migrate/2309735633a486a12596b1006df4c0af.jpeg)
二、文本编辑
2.1、vi
2.1.1 打开文件
vi filename :打开或新建文件,并将光标置于第一行首
vi +n filename :打开文件,并将光标置于第n行首
vi + filename :打开文件,并将光标置于最后一行首
vi +/pattern filename:打开文件,并将光标置于第一个与 pattern匹配的串处
编辑-->输入:
i: 在当前光标所在字符的前面,转为输入模式;
a: 在当前光标所在字符的后面,转为输入模式;
o:在当前光标所在行的下方,新建一行,并转为输入模式;
O:在当前光标所在行的上方,新建一行,并转为输入模式;
2.1.2 命令行模式
打开文件后就是编辑模式了,敲冒号 :进入命令行模式
• w保存
• q退出
• q!:不保存文件并退出vi
搜索:
/pattern:光标放在搜索词的位置
:/pattern:光标放在搜索词的行头位置
n:在同一方向重复上一次搜索命令
N:在反方向上重复上一次搜索命令
替换:
• :s/p1/p2/g 将当前行中所有p1均用p2替代
• :n1,n2s/p1/p2/g 将第n1至n2行中所有p1均用p2替代
• :g/p1/s//p2/g将文件中所有p1均用p2替换
显示行号:
:set nu 显示行号
:set nonu 取消行号
2.1.3 一般模式
复制:
yy 复制光标所在行(常用)
yw 复制一个词
nyy 复制光标所在行的向下n行,例如, 20yy则是复制20行(常用)
p,P p为复制的数据粘贴在光标下一行, P则为粘贴在光标上一行(常用)
移动光标:
行间移动光标:
G:光标移至文章最后一行
gg:光标移至文章开头
nG:光标移动至第N行行首
n+:光标下移n行
n-:光标上移n行
H :光标移至屏幕顶行
M :光标移至屏幕中间行
L :光标移至屏幕最后行
行内移动光标:
• 0: 绝对行首
• ^: 行首的第一个非空白字符
• $: 绝对行尾
翻屏:
• ctrl:f,b
删除:
dw 删除光标所在单词
dd 删除光标所在行
x或X:删除一个字符,x删除光标后的,而X删除光标前的
删除第N行到第M行:进入命令行模式后
N,Md
.代表光标所在行
$文件的最后一行
撤销&重做
u 撤销
ctrl+r 重做 撤销的操作
. 重复上一步的操作
ZZ: 保存并退出 不需要冒号,编辑模式
2.2 vim
Vim是从 vi 发展出来的一个文本编辑器。代码补完、语法高亮、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用.
安装vim 软件
yum install vim -y
用vim 打开/etc/profile 文件,会发现编辑器对文本的内容进行了高亮,使整个文件的内容可读性大大加强
![294404d8f3377da6aa195dc4981381fe.png](https://i-blog.csdnimg.cn/blog_migrate/57b4743cd5bf9b2fd991b18c2ffa71c1.jpeg)