常见的linux命令

1、处理海量数据之grep命令

  • grep应用场景:通常对数据进行 行的提取
  • 语法:grep [选项]...[内容]...[file]
			-v 	#对内容进行取反提取

			-n 	#对提取的内容显示行号
 
			-w 	#精确匹配

			-i 	#忽略大小写

			^ 	#匹配开头行首
                        语法格式:
                        grep '^n内容' 文件位置,匹配到对应的一行的行首内容

			-E 	#正则匹配

                                           grep -E '内容1|内容2|内容3' 文件位置

                                           引号内容 可以为其他正则表达式

                                           grep -v -n -E -w -i '^' file

2、处理海量数据之cut命令

  • cut应用场景:通常对数据进行列的提取
  • 语法:cut [选项]...[file]
			-d 	#指定分割符
			-f  #指定截取区域
			-c  #以字符为单位进行分割

			注意:不加-d选项,默认为制表符,不是空格
				    /bin/bash 		#代表可以登录的用户
					/sbin/nologin	#代表不可以登录的用户

			-d与-f:
			eg:以':'为分隔符,截取出/etc/passwd的第一列跟第三列
			cut -d ':' -f 1,3 /etc/passwd
                        cut -d ':'  -f 1,3 /etc/passwd | grep 'root'

			eg:以':'为分隔符,截取出/etc/passwd的第一列到第三列
			cut -d ':' -f 1-3 /etc/passwd

			eg:以':'为分隔符,截取出/etc/passwd的第二列到最后一列
			cut -d ':' -f 2- /etc/passwd

			-c:
			eg:截取/etc/passwd文件从第二个字符到第九个字符
			cut -c 2-9 /etc/passwd

3、处理海量数据之awk命令

  • awk的应用场景:通常对数据进行列的提取
  • 语法:

awk '条件 {执行动作}'文件名

			awk '条件1 {执行动作} 条件2 {执行动作} ...' 文件名

			或awk [选项] '条件1 {执行动作} 条件2 {执行动作} ...' 文件名

  • 特殊要点与举例说明:
				printf	#格式化输出,不会自动换行。
					  (%ns:字符串型,n代表有多少个字符; 
					    %ni:整型,n代表输出几个数字;
					    %.nf:浮点型,n代表的是小数点后有多少个小数
					    )

				print 	#打印出内容,默认会自动换行

				\t  	#制表符
				\n  	#换行符

					eg:printf '%s\t%s\t%s\t%s\t%s\t%s\n' 1 2 3 4 5 6

					eg:df -h |grep /dev/vda1 | awk '{printf "/dev/vda1的使用率是:"} {print $5                           }'

						小数:echo "scale=2; 0.13 + 0.1" | bc | awk '{printf "%.2f\n", $0}'

				$1 		#代表第一列
				$2 		#代表第二列
				$0 		#代表一整行

					eg: df -h | grep /dev/vda1 | awk '{print $5}'



				-F 		#指定分割符
					eg:cat /etc/passwd | awk -F":" '{print $1}'



				BEGIN 	#在读取所有行内容前就开始执行,常常被用于修改内置变量的值
				FS		#BEGIN时定义分割符

					eg:cat /etc/passwd | awk 'BEGIN {FS=":"} {print $1}'

				END 	#结束的时候 执行

				NR 		#行号

					eg:df -h | awk 'NR==2 {print $5}'
						awk '(NR>=20 && NR<=30) {print $1}' /etc/passwd

4 、处理海量数据之 sed 命令
sed 的应用场景:主要对数据进行处理(选取,新增,替换,删除,搜索)
sed 语法: sed [ 选项 ][ 动作 ] 文件名
常见的选项与参数:
-n
# 把匹配到的行输出打印到屏幕
p
# 以行为单位进行查询,通常与 -n 一起使用
eg df -h | sed -n '2p'
-d
# 删除
eg: sed '2d' df.txt
-a
# 在行的下面插入新的内容
eg: sed '2a 1234567890' df.txt
-i
# 在行的上面插入新的内容
eg: sed '2i 1234567890' df.txt
-c
# 替换
eg: sed '2c 1234567890' df.txt
s/ 要被取代的内容 / 新的字符串 /g # 指定内容进行替换
eg: sed 's/0%/100%/g' df.txt
(以上操作不会对源文件进行修改)
-i # 对源文件进行修改 ( 高危操作,慎用,用之前需要备份源文件 ) 搜索:在文件中搜索内容
eg cat -n df.txt | sed -n '/100%/p'
-e
# 表示可以执行多条动作
eg cat -n df.txt | sed -n -e 's/100%/100%----
-100%/g' -e '/100%-----100%/p
五、检测程序的命令
Unix风格
ps 命令:
-a    显示除控制进程和无终端进程外的所有进程
-d    显示除控制进程外的所有进程
-e    显示所有进程
-f    显示完整格式输出
UID  启动这些进程的用户
PID   进程的ID
PPID  父进程的进程号(如果该进程是由另一个进程启动的)
C     进程生命周期中的CPU利用率  
STIME  进程启动时的系统时间
TTY  进程启动时的终端设备
TIME 运行进程需要的累计CPU时间
CMD 启动程序名称
top 命令

第一行显示了当前时间、系统的运行时间、

下一行显示了CPU的概要信息。

top根据进程的属主(用户还是系统)和进程的状态(运行、空闲还是等待) 将CPU分成几类输出

紧跟其后的两行说明了系统内存的状态

第一行说明的是系统的物理内存 :总共有多少内存,当前用多少,还有多少空闲。

最后的是系统的交换内存。

 PID 进程ID

USER 进程属主的名字

 PR 进程的优先级

 NI 进程的谦让度

 VIRT 进程占用的虚拟内存总量

 RES  进程占用的物理内存总量

 SHR  进程和其他进程共享的内存总量

S  进程的状态

%CPU 进程使用的CPU时间比例

%MEM  进程使用的内存占可用内存的比例

 TIME+自进程启动到目前为止的cpu时间总量

COMMAND 进程所对应的命令行名称,也就是启动的程序名

结束进程:

kill

1 挂起

2 中断

3 结束运行

9 无条件终止

11段错误

15 尽可能终止

17 无条件停止运行,但不终止

18 停止或者暂停,但是继续在后台运行

19 在STOP或  TSTP之后恢复

KILLALL 

支持进程名来结束进程也支持通配符

killall http*

mount 

mount命令会输出当前系统上挂载的设备列表

-a 挂载/etc/fstab文件中指定的所有文件系统

-f  使用mount命令挂载设备,但并真的挂载

-v 详细模式,将会说明挂载设备的每一步

-n 挂载设备,但不注册到/etc/mtab已挂载的设备文件中

-o 参数允许在挂载文件系统时添加一些亦逗号分隔的额外选项

ro 以只读形式挂载

rw 以写形式挂载

user 允许普通用户挂载文件系统

loop 挂载一个文件

umount 

umount  [dir]  device

df  

(磁盘空间)

-h 以用户可读的形式展现出来

-M 以MB的形式展现出来

du

du可以显示特定的目录的磁盘空间

-c 显示所有已列出文件总的大小

-h 按照用户容易读的格式输出大小    加目录名称 可显示对应目录的磁盘使用情况

 -s 显示每个输出参数的总计

sort 命令

sort -n 3.txt 

-n 将数字识别成字符

-M 按照月份排序

-k  --key=pos1[,pos2] 排序从pos1位置开始;如果指定了pos2的话,到pos2位置结束。

-t 指定一个用来区分键位置的字符

-r 反序排序

eg:

 sort -t ':' -k 3 -n /etc/passwd

压缩数据

gzip

gzip 也是一个压缩命令,跟 zip 类似,是对文件进行压缩。

注意:

  • gzip 命令只能用来压缩文件,不能压缩目录,即便指定了目录,也只能压缩目录内的所有文件。
  • 压缩后会删除源文件。
  • 压缩后文件的后缀格式是 .gz
  • 该命令还支持解压缩。
  • 该命令不需要指定压缩包名。

-d  解压

-v 显示压缩过程

-l  查看压缩包内容

tar 

语法格式:

tar [-cxtzjvfpPN] File or directory

-c :建立一个压缩文件的参数指令(create 的意思);

-x :解开一个压缩文件的参数指令!

-t :查看 tarfile 里面的文件!特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在!因为不可能同时压缩与解压缩。

-z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩?

-j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩?

-v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程!

-f :使用档名,请留意,在 f 之后要立即接档名!不要再加参数!例如使用『 tar -zcvfP tfile sfile』就是错误的写法,要写成『 tar -zcvPf tfile sfile』才对

-p :使用原文件的原来属性(属性不会依据使用者而变)

-P :可以使用绝对路径来压缩!

-N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中!

--exclude FILE:在压缩的过程中,不要将 FILE 打包!
 

eg:

# tar -cvf /tmp/etc.tar /etc <==仅打包,不压缩!

# tar -zcvf /tmp/etc.tar.gz /etc <==打包后,以 gzip 压缩

# tar -jcvf /tmp/etc.tar.bz2 /etc <==打包后,以 bzip2 压缩

# 特别注意,在参数 f 之后的文件档名是自己取的,我们习惯上都用 .tar 来作为辨识。

# 如果加 z 参数,则以 .tar.gz 或 .tgz 来代表 gzip 压缩过的 tar file ~

# 如果加 j 参数,则以 .tar.bz2 来作为附档名啊~

# 上述指令在执行的时候,会显示一个警告讯息:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值