linux封装外部命令 linux封装shell( 二 )


cd ~:回到家目录(也就是家目录)
cd ..:回到上一级目录
创建目录
mkdir 目录名
mkdir -p 目录名 , 级联创建目录
cp 被拷贝的文件(可以是路径加文件名) 拷贝到哪个位置
复制目录使用
cp -r 被拷贝的目录 目标位置
移动命令
mv 被移动的文件 目标位置+目标文件名
rm 文件名(此中方式的删除需要再输入 yes)
rm -f 文件名,无提示直接删除
rm -rf 文件夹
ln命令默认创建的是硬连接
ln profile a:将a硬连接到profile文件上,他们底层共用一个文件,删除他们之中任何一个
对另外一个没有影响,同时你也可以使用 ll -i命令查看文件编号
ln -s profile a:将a软连接到profile文件,当你访问a的时候会去访问profile , profile再访问底层文件,当将profile删除了之后a就无法访问了
一致时间、创建新文本
touch 已存在的文件:会将文件的访问时间、更新时间、改变时间(即上面stat中介绍的三个时间)变成一致
touch 不存在的文件:会创建一个新的文本
cat命令查看文件内容
cat 1.txt:查看单个文件内容
cat 1.txt 2.txt:查看多个文件
more 1.txt:以分页的形式查看文件内容 , 按空格:下一页 , 回车:下一行(注意它不能回看,回看的话只能用鼠标回轮)
less 1.txt:使用空格下一页,b看上一页, 回车看下一行
注意less的话会把整个文件内容加载到内存,如果文件比较大的话,建议使用more命令查看
head命令默认查看文件前10行内容,head 1.txt
head -5 1.txt:查看文件前5行的内容
tail命令默认查看文件后10行的内容 tail 1.txt
tail -5 1.txt:查看文件后5行内容
tail -f 1.txt:实时查看文件增量内容
cat b.txt | head -3:管道左边的命令会以输出流的形式交给管道右边的命令,管道右边以输入流的形式接收并且拼到命令的右边
注意:ls -l 不能接受前面的输出流,这个怎么办呢?可以通过xargs命令
vi文本编辑器末行模式的操作
set nu(number的缩写): 设置行号
set nonu(nonumber的缩写):取消行号
set readonly:设置为只读
n:往下查找
N:往上查找
n:往上查找
N:往下查找
一般我们会在/etc/profile文件中设置一些环境变量 , 但是在设置的时候可能没有记住目录,这时候我们可以使用如下方式
效果
格式 :s/str1/str2/gi
/ : 临近s命令的第一个字符边界字符,也可以是 @或#
g : 一行内全部替换
i : 忽略大小写
范围
n:行号
. :当前光标行
+n :偏移n行
-3
%:全文
全部删除 1,$d
删除前三行
删除倒数第2行
光标挪到最后一行 按下小写的p
效果图
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特殊字符、及这些特定字符的组合组成一个"规则字符串" , 这个"规则字符串"用来表达对字符串的一种过滤逻辑 。
\ :转义字符
. :匹配任意单个字符
[1249a] :匹配中括号中任意字符
[^12] :匹配中括号中任意非1和2的字符
[a-k] :匹配中括号中任意a~k中的一个字符
^ :行首
$ :行尾
abc :单词首尾边界(匹配单词abc)
| :连接操作符
(,) : 选择操作符
\n :反向引用
? :匹配0到1次
在Linux中通过grep命令使用正则表达式来匹配信息
f :选择显示的列
s :不显示没有分隔符的行
d :自定义分隔符

推荐阅读