---------------
Nickier
2018-12-09
---------------
linux基础
创建目录/文件夹 -- mkdir
mkdir [参数] 目录名
目录切换 -- cd
cd [目录名]
目录展示 -- ls
ls [参数]+[目录]
创建文本 -- touch
touch [参数] 新文本名
文件/目录删除 -- rm
rm [参数] 文件/目录
文本/目录复制 -- cp
cp [参数] 源文件 目标文件
查看文本 -- less
less [参数] 目标文件
编辑文本 -- vim
vim [参数] 新文本名
vim进入文件时,首先是进入一种命令行的模式,此时不能输入内容
先按一下 i
,insert的意思,进入编辑模式,就可以写入内容了
写完后,按 Esc
键退出编辑模式,然后输入 :wq
,保存并退出。
输出/入文本 -- cat
cat [参数] 文本
从头展示文件行数 -- head
head [参数] 文本
从尾展示文件行数 -- tail
tail [参数] 文本
查看文本 -- more
more [参数] 文本
树形展示 -- tree
tree [参数]+[目录]
文件/目录 移动 or 更名 -- mv
mv [参数]+[目录1]+[目录2]
重定向 -- >
追加 -- >>
管道符 -- |
查看历史命令 -- history
建立链接 -- ln
ln [参数]+[目录1/文本1]+ [目录2/文本2]
ftp下载 -- wget -c link
查看任务 -- ps -ef |grep userID
最常用的打包命令 -- tar
tar [参数] 打包名 文件名
tar -cvf new.tar *.txt # 打包
tar -xvf old.tar # 拆tar包
tar -zcvf new.tar.gz ./# 打包和gunzip压缩
tar -zxvf old.tar.gz # 解压打包
tar -jcvf new.tar.bz2 *.jpg # 打包和bzip2压缩
tar -jxvf old.tar.bz2 # bunzip2解压打包
文件切割命令 -- cut
cut [参数] 文本/管道符内容
按列操作文本 -- paste
paste [参数] 文本/管道符内容
寻找 -- find
find [参数] 目录/文本
转换或删除文件中的字符 -- tr
tr [参数] 文本
排序 -- sort
sort [参数] 文件名
去除文件中的重复行 -- uniq
uniq [参数] 文件名
行数/字符/文本大小计数 -- wc
wc [参数] 文本/管道符内容
常用通配符
^ 开头
$ 结尾
? 匹配有无
+匹配1-n次
*匹配n次
.* 任意字符
.o 以.o结尾 # grep '.o'
\转义符 # grep '[.o]'
[abc] 匹配到a或者b或者c模式的 # grep -n '[abc]'
{2} 匹配次数 # grep -E 'd{2,3}' # grep 'd{2,3}' 默认不转义,加\使其转义能匹配模式
[0-9]
[a-z]
[A-Z]
grep
grep(global regular expression print)
Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。
参数:
-E :开启扩展(Extend)的正则表达式。
-v :反过来(invert),只打印没有匹配的,而匹配的反而不打印。
-n :显示行号
-w :被匹配的文本只能是单词,而不能是单词中的某一部分,如文本中有liker,而我搜寻的只是like,就可以使用-w选项来避免匹配liker
-c :显示总共有多少行被匹配到了,而不是显示被匹配到的内容,注意如果同时使用-cv选项是显示有多少行没有被匹配到。
-o :只显示被模式匹配到的字符串。
-I:不区分大 小写(只适用于单字符)。
sed
sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。
sed有参数和动作之分。主要使用的是动作
参数说明
1.-e 或者,
2.-n 搭配动作p,输出行
动作说明
- a :新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)
- c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
- d :删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
- i :插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
- p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行~
- s :取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法。
# 在第2行的下一行插入drink tea
nl /etc/passwd | sed '2a drink tea'
# 删除第3到最后一行
nl /etc/passwd | sed '3,$d'
# 输出第5,7行
nl /etc/passwd | sed -n '5,7p'
# 将root替换成####,g指的是全局替换,即每一行的所有root都被替换
nl /etc/passwd | sed 's/root/####/g'
# 将root替换成####,或者将vip替换成###
nl /etc/passwd | sed -e 's/root/####/g' -e 's/vip/###/g'
awk使用方法
awk是一个非常好用的数据处理工具。相较于sed常常一整行处理,awk则比较倾向于一行当中分成数个“字段”处理。
使用格式:
awk [option] '{pattern + action}' {filenames}
awk [option] 'BEGIN{初始代码} {循环代码} END{最后代码}' filename
# 输出1 2 3,管道传给awk,然后执行大括号里面的代码,
echo 1 2 3 |awk '{ print "total pay for", $1, "is", $2 * $3 }'
# -F以':'切割,先执行BEGIN的代码,再循环执行{print $1","$7},最后输出END的代码
cat /etc/passwd |awk -F ':' 'BEGIN {print "name,shell"} {print $1","$7} END {print "blue,/bin/nosh"}'
运算符
运算符 | 描述 |
---|---|
= += -= *= /= %= ^= **= | 赋值 |
?: | C条件表达式 |
|| | 逻辑或 |
&& | 逻辑与 |
~ ~! | 匹配正则表达式和不匹配正则表达式 |
< <= > >= != == | 关系运算符 |
空格 | 连接 |
+ - | 加,减 |
* / % | 乘,除与求余 |
+ - ! | 一元加,减和逻辑非 |
^ *** | 求幂 |
++ -- | 增加或减少,作为前缀或后缀 |
$ | 字段引用 |
in | 数组成员 |
内建变量
常见变量 | 描述 |
---|---|
$n | 当前记录的第n个字段,字段间由FS分隔 |
$0 | 完整的输入记录 |
FS | 字段分隔符(默认是任何空格) |
OFS | 输出记录分隔符(输出换行符),输出时用指定的符号代替换行符 |
NF | 一条记录的字段的数目 |
NR | 已经读出的记录数,就是行号,从1开始 |
RS | 记录分隔符(默认是一个换行符) |
ORS | 输出记录分隔符(默认值是一个换行符) |
网友评论