美文网首页
linux基础

linux基础

作者: Nickier | 来源:发表于2018-12-09 17:59 被阅读6次

---------------

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 输出记录分隔符(默认值是一个换行符)

相关文章

网友评论

      本文标题:linux基础

      本文链接:https://www.haomeiwen.com/subject/hvjkhqtx.html