7月19号第二周命令总结

网友投稿 203 2022-10-30


7月19号第二周命令总结

grep

-B  除了显示匹配的一行之外,并显示该行之前的num行。

-A 除了显示匹配的一行之外,并显示该行之后的num行。

-C 除了显示匹配的一行之外,并显示该行之前后各num行

head  [–n] [文件名] ,显示文件的前几行,  默认文件的前10行。

tail  [–n] [文件名],显示文件的后几行,默认文件结尾的后10行。

find   查找   -type  文件类型f(file),d(directory),c(character),b(block),s(socket),l(link),-name “文件名” , -mtime时间,按修改时间查找,时间数字, +7 7前以前,7 第7天,-7 最近7天

sed

sed   -e   /^ oldboy/d test.txt

sed  /oldboy/d   test.txt

sed  -n   /[^oldboy]/p test.txt

awk  /[^oldboy]/  test.txt

cp   不要覆盖文件提示的方法:

1:   \cp   test.php demo1/

2:   /bin/cp   test.php  deom1/

3: unalias 取消别名。

cp  -i   test.php dem1/    (-i   表示提示要不要确认的意思)

为什么cp ,mv命令需要这样?如下:

输入 “\”或者全路径,是为了屏蔽它的别名功能。

alias 查看系统现有的别名。

unalias   cp 删除cp 别名设置。

设置别名:

alias rm=’ echo this command does  not allowto use .’

定义别名永久生效:

/etc/profile 全局生效

~/.bashrc  当前用户生效。

别名的作用: 1: 通过给危险命令加一些保护参数,防止人为误操作。

2: 把复杂的命令或者字符串变成简单的。

  sequence 序列。

seq  -s “”  10   (制定分隔符)

sed stream  editor 流编辑器,可是实现文件的增删改

参数: –n 取消默认输出,-i修改文件内容,-e允许多项编辑,

功能:

p打印 ,g与s联合使用时,表示对当前行全局匹配替换。

s常说的查找并替换,用一个字符串换成另一个。

s –i  s#oldboy#oldgirl#g  a.txt

# 是分隔符,可以用 /@ 等替换。

题: 查看文件中20到30行的内容?

答案:

(一):

head -30  ett.txt |tail -11

(二):这个方法是最有效率的

sed  -n ’20,30’p  ett.txt   (-n 取消默认输出 ,-p表示打印)

sed  -n 20,30p  ett.txt

sed  -n ‘20’p  ett.txt 打印第20行

sed  -n ‘$’p  ett.txt 打印最后一行

(三):

awk  '19

(四):

awk ‘{if(NR<31&&NR>19) printf $0”\n” }’  ett.txt

(五):

grep20 –A 10 ett.txt

awk  过滤,输出内容,一门语言。 NR 表示行号。

awk  取其中一行  :awk  ‘NR==31’  ett.txt

题:   把oldboy目录及其子目录下所有以扩展名.sh结尾的文件名包含oldboy的字符串全部替换为oldgirl.

ls*.sh  | xargs  sed -i "s/oldboy/oldgirl/g" (-i 的作用,加-i的话,会更改文件的内容,不加-i的话,就只是输出改了。)

find  /oldboy -type  f  -name  “*.sh”  |xargs sed –i  ‘s#oldboy#oldgirl#g’

ls -l * |grep"^-"|wc -l      (“-”开头的是普通文件,“d”开头的是目录)

ls -l * |grep"^d"|wc -l

xargs   从标准输入读入创建执行命令  -n 1 分组。

awk  -F   制定分隔符 NR行号  {print  $1 $2}

{  大括号的使用:

echo {1..10}   .. 表示序列。

与 seq  -S  “” 10 对比。

Touch  {1..10}.sh

mkdir  /data/{3306,3307}/data –p

! 的使用:

1) !+ 字母,表示调出最近一次以此字母开头的命令。

2) !+ 表示使用最近一次操作的命令。

3) !+数字 表示调出历史的第几条命令。

4) 取反的意思。(find ,shell)  find ./ ! -name "*3*"

快捷键:

ctrl+a 光标移动到行首

ctrl+e 光标移动到行尾

ctrl+u (清理命令前面的)

ctrl+r (搜索命令)

ctrl+s  挂起

ctrl+q  解除挂起

ctrl+w 清除当前行

ctrl+d  退出当前用户环境,相当于exit,logout

怎么看电脑是64位还是32位?

Uname –a  或者uname –m

ls –ld   /64

问题解决方案:

[root@oldboy echo]# find /echo -type f -name"juntai{1..99}.txt" -exec rm {} \;

[root@oldboy echo]# ll

total 0

-rw-r--r--. 1 root root 0 Jul 20 05:15juntai100.txt

-rw-r--r--. 1 root root 0 Jul 20 05:15juntai10.txt

-rw-r--r--. 1 root root 0 Jul 20 05:15juntai11.txt

-rw-r--r--. 1 root root 0 Jul 20 05:15juntai12.txt

方案如下:  find  -name "juntai[0-9].txt" -o -name "juntai[0-9][0-9].txt" |xargs rm


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Seq 命令总结
下一篇:mybatisplus添加真正的批量新增、批量更新的实现
相关文章

 发表评论

暂时没有评论,来抢沙发吧~