文章目录
一、文件编辑-Vim的使用
1、Vim的三种模式
1、命令模式
vim [文件]
2、插入模式
i # 直接编辑文本内容,写完后按“esc”退回命令模式
:wq # 保存退出
yy # 移动光标到需要复制的地方的最前边,复制一行则 按"yy"
复制多行,则先按数字(数字代表多行)后按"yy"
p # 粘贴
dd # 删除 (操作同yy)
u # 撤销上一步的操作
ctrl + r # 撤销u的操作
3、末行模式------输入英文的冒号:
:set nu # 显示行号
:%s/^/#/g # 给每一行开头加上注释 #
:3,6s/^/#/g 给3-6行开头加上注释#
:%s/$/#/g 给每一行结尾加上注释#
解决ctrl+s的错误:
重新进入vim [文件] 中, 按“dd” 后 “:wq” 保存退出
2、寄存器
1----生成寄存器
"ayy 生成寄存器a
6”byy 生成寄存器b(内容有6行)
2----粘贴
"ap 粘贴寄存器a的内容
3---查看寄存器
:reg 查看寄存器
二、查找命令
1、命令搜索
whereis 搜索命令的位置和帮助文档的位置 eg:whereis ls
which 搜索位置和命令的别名 eg:which ls
2、find命令
(1)find [-path] -options (默认在当前路径下查找)
如:find ./ -name '*.txt' (./):当前路径 (*):模糊查询
find ./ -name 'a.txt'
(2)find -size +100k 查找文件大小大于100k的
path : 要查找的目录,默认是当前目录
option:
-name 按文件名的某种规则的查找
-type 按文件类型查找 f 普通文件 l 符号连接 d 目录
-size 按文件大小查找
-exec<执行指令>: 假设find指令的回传值为True,就执行该指令;
-print 假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式为每列一个名称,每个名称前皆有“./”字符串
通配符:
* 匹配任意内容
? 匹配任意一个字符
[] 匹配任意一个中括号内的字符
3、xargs命令
find 命令可以把匹配到的文件传递给 xargs 命令执行
find ./ -name ' ' | args [命令]
如: find ./ -name 'a.txt' | args cat
find ./ -name '*.txt' | args rm
4、grep文本搜索
grep [内容] -n [文件] (将匹配到的打印出来)
如:grep this -n a.txt
grep [内容] -v [文件] (将没匹配到的打印出来)
grep [内容] -o [文件] (将匹配到的[内容]打印出来)
-c 计算符合范本样式的列数。
-E 将范本样式为延伸的普通表示法来使用,意味着使用能使用扩展正则表达式。
-i 忽略字符大小写的差别。
-n 在显示符合范本样式的那一列之前,标示出该列的编号。
-s 不显示错误信息。
-v 反转查找。
-w 只显示全字符合的列。
-x 只显示全列符合的列。
-o 只输出文件中匹配到的部分
三、文本传输
1、管道
管道可以把一系列命令连接起来,可以将前面的命令的输出作为后面命令的输入。使用管道符 | 来建立一个管道行
2、输入重定向
输入重定向是指把命令或可执行程序的的标准输入重定向到指定的文件中。
也就是输入可以不来自键盘,而是来自一个指定的文件。输入重定向主要用于改变一个命令的的输入源。
输入重定向的一般形式为“命令 < 文件名”
【wc】——统计文件存在多少行内容
如:wc -l b.py # 结果:19 b.py
wc -l < b.py # 结果:19
【echo】标准输出
echo python # 结果: python
echo python > test.py # 结果:将python写入到test.py文件中
【< 输入重定向 > 输出重定向 >> 追加】
< b.py > test.py # 将b.py的内容输入到test.py
cat < b.py > test.py # 查看
【输出到终端】
【tty】——查看当前终端的信息,即挂载的路径
【who】——查看当前用户的信息
【who am i】—— 查看当前用户的登录详细信息(只可在MobaXterm上执行)
【w】—— 查看所有终端的登录信息,能显示用户登录名、终端标志、IP地址、登录时间、闲置时间、占用CPU时间、系统的运行时间 和 用户正在执行的程序
命令: 【echo hello >> /dev/pts/0】
3、文件别名alias
【alias 别名=‘xxxx’】如:alias cdy='cd pycase/' # 重启终端别名失效,需要在文件[vim .bashrc(打开文件)]中修改后重启终端才会生效
【unalias】——取消别名
4、文件打包压缩、解压
1、打包压缩
【tar -cvf text.tar a.py test.py b.py】 # -cvf 打包
【tar -zcvf text.gz a.py test.gy b.py】
【tar -jcvf text.bz2 a.py test.py b.py】 # 这两种占的内存较小
添加路径:
【tar -zcvf bd.gz test.py a.py -C tmp】 # 将压缩后的文件放入tmp文件夹中
2、解压
【tar -zxvf bd.gz】
【tar -jxvf text.bz2 -C tmp】
-c 建立新的压缩包
-v 处理过程中输出相关信息
-f 使用压缩包的名字,(!注意:f参数之后不能再加参数)
-x 解压压缩包
-i 忽略存档中的0字块
-z 调用gzip来压缩归档文件,与-x联用时调用gzip完成解压缩
-j 调用bzip2压缩或解压
-p 使用源文件的原来属性
3、综合使用:在上面把要打包的东西都放在a.list文件里面,然后再根据文件内容去打包
如:find ./ -name '*.py' -print >> /tmp/a.list
tar -T /tmp/a.list -czf a.tar.gz
如:find -name '*.py' >> a.list
tar -T a.list -zcvf a.gz
5、软链接、硬链接
【硬链接】—— 对文件取个别名 ln [文件] [别名]
【软链接】—— 类似Windows上的快捷方式 (占据空间小) ln -s [文件] [别名]
-i 覆盖既有文件之前先询问用户
-s 创建符号(软)链接而不是硬链接
如:ln a.txt p.hard
ln -s a.txt p.soft
四、进程管理
计算机其实能执行的是若干指令,比如:加减,计算两个数的和,内存中查找地址等
若干的指令组合在一起,就能形成程序,一个程序就可以执行复杂操作
进程就是正在运行的程序
1、ps —— 一次性进程监视
ps -aux
ps -aux | grep vim
u 按用户和启动时间的顺序来显示进程
a 显示所有用户的所有进程
x 显示无终端控制的进程
f 列出进程全部相关信息,通常和其他选项联用
e 所有进程
l 采用详细的格式来显示程序状况
暂停进程:ctrl + z
结束进程:kill -9 [id] (KILL 9 强制终止 )
2、top——动态监视
-d 设置更新的时间间隔
-n 显示更新的次数,然后退出
-u 只显示指定用户的进程信息
-s 安全模式运行,禁用一些交互命令
五、shell脚本
1、在test.sh文件中写入一下内容:
#!/bin/bash
# this is a test
echo "hello world" # 输出命令
echo $0 # $数字 0:文件名 1:第一个参数 依此类推
echo $1
参数意思是:bash bd.sh abc
结果会输出:hello world
bd.sh
abc
2、运行:
(1)bash test.sh
(2)脚本独立运行:(先赋权)比如:chmod u+x bd.sh
./test.sh