Linux运维必会的命令详解(一)

1.mkdir

简介

创建文件目录

语法

mkdir [-p] dirName

参数

-p 确认目录是否已经存在,若不存在则建立目录而不会报错

示例

创建test文件夹及在其中创建new文件夹

$ mkdir -p test/new

2. find

简介

文件搜索

语法

find path -option [ expression ] [ -exec   -ok   command ]   {} \;

参数

expression表达式默认是 -print
-mount -xdev 只查询和指定目录一个文件系统下的文件
-amin n 在过去n分钟内被读取过
-anewer file 读取时间迟于file的文件
-atime n 在过去n天内被读取得文件
-cmin n 在过去n分钟被修改过
-cnewer file 比文件file更新的文件
-ctime n 在过去n天内被修改过的文件
-empty 空的文件
-gid n or -group name gid 是 n 或是 group 名称是 name
-ipath p -path p 路径符合p的文件,ipath会忽略大小写
-name name -iname name 文件名符合name的文件,iname忽略大小写
-size n 文件大小是n单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组
-type
c 文件类型是c的文件
d 目录
c 字型装置工作
b 区块装置文件
p 具名贮列
f 一般文件
i 符号连接
s socket
-pid n process id是n的文件

示例

在当前目录及子目录以.sh结尾的文件列出来

$ find . -name "*.sh"

在当前目录及子目录列出20天内更新过的文件

$ find . -ctime -20

查找前目录中文件属主具有读、写权限,并且文件所属组的用户和其他用户具有读权限的文件

$ find . -type f -perm 644 -exec ls -l {} \;

3. awk

简介

文本处理

语法

awk 'condition { action }' filename

参数

-F 指定字段分隔符
action的相关函数:
toupper():字符转为大写
tolower():字符转为小写
length():返回字符串长度
substr():返回子字符串
substr($1,2):返回第一个字段,从第2个字符开始一直到结束
substr($1,2,3):返回第一个字段,从第2个字符开始开始后的3个字符
sin():正弦
cos():余弦
sqrt():平方根
rand():随机数

示例

$ echo "aa bb cc  dd" | awk -F "bb" '{ print $1}'
aa

$ cat test.txt 
aa ss
dd ff
gg hh

$ cat test.txt | awk '{print NR")", $0}'
1) aa ss
2) dd ff
3) gg hh

$ cat exp.txt 
/stsvc/fms/conf/application.yml
/stsvc/sms/conf/application.yml
/stsvc/tms/conf/application.yml
/root/home/chenfan
/root/home/jhhuang

$ cat exp.txt | awk '/stsvc/ {print $0}'     #包含 stsvc 的行
/stsvc/fms/conf/application.yml
/stsvc/sms/conf/application.yml
/stsvc/tms/conf/application.yml

$ cat exp.txt | awk '/stsvc\/fms/ {print $0}' #包含 stsvc/fms 的行
/stsvc/fms/conf/application.yml

$ cat exp.txt | awk 'NR%2==1 {print $0}'  #奇数行
/stsvc/fms/conf/application.yml
/stsvc/tms/conf/application.yml
/root/home/jhhuang

$ echo "aa ss dds" | awk '{ if($3 == "dd") print $0; else print "nothing"}'
nothing

4. sed

简介

文本处理

语法

sed [-hnV][-e<script>][-f<script文件>][文本文件]

参数

-e<script> 以选项中指定的script来处理输入的文本文件
-f<script> 以选项中指定的script来处理输入的文本文件
-h 显示帮助
-n 仅显示想script处理后的结果
动作说明:
a 新增,新增的内容出现在下一行
i 插入,插入的内容出现在上一行
c 取代,取代n1,n2之间的行
d 删除
p 打印,打印选择的数据,通常与sed -n一起运行
s 取代,就是替换功能

示例

在第二行下面添加Hello

$ sed '2a Hello'

搜索/etc/passwd包含root关键字的行

$ nl /etc/passwd| sed -n '/root/p'

删除/etc/passwd包含root关键字的行

$ nl /etc/passwd| sed '/root/d'

搜索/etc/passwd,找到root对应的行,执行后面花括号中的一组命令,每个命令之间用分号分隔,这里把bash替换为blueshell,再输出这行

$ nl /etc/passwd | sed -n '/root/{s/bash/blueshell/;p;q}'

$ nl /etc/passwd | sed -n '/root/{s/bash/blueshell/;p;q}'

数据的搜索与替换

$ sed 's/要被取代的字串/新的字串/g'

5. uniq

简介

检查文件中的重复行列

语法

uniq [-cdu][-f<栏位>][-s<字符位置>][-w<字符位置>][--help][--version][输入文件][输出文件]

参数

-c 在列旁边显示该行重复次数
-d 仅显示重复出现的行列
-u 仅显示出行一次的行列
-f<栏位> 忽略指定的栏位
-s 忽略比较指定的字符
-w<字符位置> 指定要比较的字符

示例

$ cat testfile 
test 30  
test 30  
test 30  
Hello 95  
Hello 95  
Hello 95  
Hello 95  
Linux 85  
Linux 85 

$ uniq -c testfile      #删除重复行后的内容  
3 test 30             #前面的数字的意义为该行共出现了3次  
4 Hello 95            #前面的数字的意义为该行共出现了4次  
2 Linux 85            #前面的数字的意义为该行共出现了2次 

6. sort

简介

行列排序

语法

sort [-bcdfimMnr][-o<输出文件>][-t<分隔字符>][+<起始栏位>-<结束栏位>][--help][--verison][文件]

参数

-b 忽略每行文本前面的空格
-c 检查文件是否按照顺序排序
-d 只处理英文字母。数字和空格,忽略其他字符
-f 排序时,将小写字母看成大写字母
-i 只处理040-176之间的ACSII码
-m 将排序好的文件合并
-M 将前面三个字母按照月份缩写排序
-n 依照数值的大小排序
-r 以相反的顺序排序
-u 唯一,输出的结果是去重过的
-t<分隔字符> 指定排序时所用的栏位分隔字符
+<起始栏位>-<结束栏位> 以指定的栏位来排序,范围由起始栏位到结束栏位的前一个栏位

示例

$ cat testfile      #testfile文件原有排序  
test 30  
Hello 95  
Linux 85 

$ sort testfile     #重排结果  
Hello 95  
Linux 85  
test 30 

7. tail

简介

查看文件内容

语法

tail [参数] [文件] 

参数

-f 循环读取
-q 不显示处理信息
-v 显示详细的处理信息
-c<数目> 显示的字节数
-n<行数> 显示文件的尾部 n 行内容
–pid=PID 与-f合用,表示在进程ID,PID死掉之后结束
-q, --quiet, --silent 从不输出给出文件名的首部
-s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒

示例

循环显示notes.log的文件内容

$ tail -f notes.log

$ tail -f notes.log

8. head

简介

查看文件开头部分内容

语法

head [参数] [文件]  

参数

-q 隐藏文件名
-v 显示文件名
-c<数目> 显示的字节数。
-n<行数> 显示的行数

示例

显示 notes.log 文件的开头 5 行

$ head -n 5 runoob_notes.log

9. mkfs

简介

在特定的分区建立文件系统

语法

mkfs [-V] [-t fstype] [fs-options] filesys [blocks]

参数

device : 预备检查的硬盘分区,例如:/dev/sda1
-V : 详细显示模式
-t : 给定档案系统的型式,Linux 的预设值为 ext2
-c : 在制做档案系统前,检查该partition 是否有坏轨
-l bad_blocks_file : 将有坏轨的block资料加到 bad_blocks_file 里面
block : 给定 block 的大小

示例

在 /dev/hda5 上建一个 msdos 的档案系统,同时检查是否有坏轨存在

$ mkfs -V -t msdos -c /dev/hda5

将sda6分区格式化为ext3格式

$ mfks -t ext3 /dev/sda6  

10. chmod

简介

控制文件调用权限

语法

chmod [-cfvR] [--help] [--version] mode file...

参数

mode参数:

[ugoa...][[+-=][rwxX]...][,...]

(1) u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是
(2) + 表示增加权限、- 表示取消权限、= 表示唯一设定权限
(3) r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行

-c : 若该文件权限确实已经更改,才显示其更改动作
-f : 若该文件权限无法被更改也不要显示错误讯息
-v : 显示权限变更的详细资料
-R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)

示例

将文件 file1.txt 设为所有人皆可读取

$ chmod ugo+r file1.txt
#或者
$ chmod a+r file1.txt

将文件 file1.txt 与 file2.txt 设为该文件拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入

$ chmod ug+w,o-w file1.txt file2.txt

Linux运维必会的命令详解(一)

文章链接: https://www.mfisp.com/10207.html

文章标题:Linux运维必会的命令详解(一)

文章版权:梦飞科技所发布的内容,部分为原创文章,转载请注明来源,网络转载文章如有侵权请联系我们!

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
建站教程投稿分享

存储组件之MFS详解

2022-9-16 14:33:01

建站教程投稿分享

Linux运维必会的命令详解(二)

2022-9-19 9:37:46

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索

梦飞科技 - 最新云主机促销服务器租用优惠