Linux基础

Linux 大杂烩

cat

cat可以查看文件,还可以把几个文件合并(more、less)
例如:合并文件 cat file1 file2 > file

head和tail

显示前3行:head -n 3 xxx.txt \ head -3 xxx.txt(默认读前十行)
显示后3行:tail -n 3 xxx.txt \ tail -3 xxx.txt(默认读后十行)

telnet远程登录

telnet 192.168.0.5 22(端口号)登录IP为 192.168.0.5 的远程主机

netstat查询网络状态

-t:列出Tcp协议端口
-u:列出UDP协议端口
-a:列出所有网络连接
-n,不用别名显示,只用数字显示
-p,显示进程号和进程名
例:查看端口占用情况
netstat -anp | grep PID/Program name

单引号和双引号的区别

单引号为纯粹的字符串
双引号中能执行相应命令
	name=Andy
	echo "The boy is \"$name\""
	结果:The boy is "Andy"

find

Linux下查找某一个文件所在位置
一般格式: find + 目录名称 + 参数	

参数一:

-name	#文件名称

案例一(按文件名称查找)
## 查找/etc/目录下文件名为passwd的文件

1-1

## 查找/etc/目录下文件名为passwd的文件

1-2
参数二:

-maxdepth	#最大深度(即多少层)
-mindepth	#最小深度

案例二(按文件所在的深度(层次)查找)

1-3
1-4

## 查找/etc/目录下最少层数为1,最多层数为2的.conf文件

1-5
参数三:

-size		#表示文件大小
-size 20k		#查找文件大小为20k的文件
-size -20k		#查找小于20k的文件
-size +20k		#查找大于20k的文件

案例三(按文件大小查找)

1-6
参数四:

ctime	#以天为单位
cmin		#以分钟为单位
cmin	 10		#查找文件更新距离现在10分钟的文件
cmin -10		#查找文件更新距离现在小于10分钟的文件
cmin +10		#查找文件更新距离现在超过10分钟的文件
ctime +/-10	#查找文件更新距离现在超过/小于10天的文件

案例四(按文件更新时间)
##创建多个文件

1-7

## 查找文件更新时间小于7分钟的文件

1-8

## 查找文件更新时间大于1分钟小于1天的文件

1-9

watch

可以将命令的输出结果输出到标准输出设备,多用于周期性执行命令/定时执行命令
用于监测一个命令的运行结果

语法:
	watch(选项)(参数)
选项:
	-n 或 --interval	指定没多少秒运行一下程序
	-d 或 --differences选项会高亮显示变化区域。而-d=cumulative
	-t 或 -no-title 会关闭watch命令在顶部的时间间隔
参数:
	指令:需要周期性执行的

实例:

1、命令:每隔一秒高亮显示网络链接数的变化情况
## 原状态如下

1-10

## 加入新的连接后的变化

1-11

2、每隔一秒高亮显示http链接数的变化情况
watch -n 1 -d 'pstree|grep http'
310秒一次输出系统的平均负载
watch -n 10 -d "uptime"

du

用于显示目录或文件的大小。

命令格式:
	du [option] 文件/目录
	-h:以K,M,G为单位,提高信息的可读性。
	-s:显示文件或整个目录的大小,默认单位是KB。
	-b:显示目录或文件大小时,以byte为单位。

案例

## 显示当前目录的大小

1-12

## 显示temp.txt文件的大小

1-13

mkdir

mkdir -p /a/b/c  递归创建目录

文本相关(grep、sed、awk)

grep

-i:忽略大小写
-c:统计出现次数
-n:出现的行数
例:cat | grep -i -n "are" *.txt
ll | grep -i -n "are" *.txt

sed(流处理编程器)

读一行处理一行

Created with Raphaël 2.2.0 文本或管道输入 读一行到缓冲区 sed命令操作 输出到屏幕 yes no
  • sed是一次处理一行内容,并且不改变原文本的内容(除非重定向)
	sed格式
		1、命令行格式:
		sed [options] 'command' file(s)
			options : -e;-n
			command : 行定位(正则) + sed命令(操作)

		p :打印,亦即将某个选择的数据印出。通常p会与参数 sed -n 一起运行
		sed -n 'p' /etc/passwd
		
		2、脚本格式:
		sed -f scriptfile file(s)

行定位

	定位一行: x; /pattern/
			sed -n '10p' /etc/passwd
			sed -n '/ntp/p' /etc/passwd
	定位多行:x,y;	/pattern/,x; /pattern/,/pattern/ x,y!(取反)
			nl /etc/passwd | sed -n '10,20p'
			nl /etc/passwd | sed -n '/uucp/,/IPv4LL/p'
			nl /etc/passwd | sed -n '10,20!p'
	定位间隔几行:begin~step
			nl /etc/passwd | sed -n '3~3p'

基本操作命令

			-a(新增行)/i(拆入行)
			-c(代替行)若在一个取件中,整个区间替换成一行
			-d(删除行)
			nl /etc/passwd | sed '1a 123'
			nl /etc/passwd | sed '1i 123'
			nl /etc/passwd | sed '1,3c 123'
			nl /etc/passwd | sed '1,10d'1:优化服务器配置,在test.txt文件末尾添加两行123
			补充:$符号表示末尾,\n表示换行,\表示转义
			sed '$a \\t123 \n\t123' test.txt
		
		例2:删除空行
			sed '/^$/d' test.txt
			
		例3:服务器日志处理,找出test.txt中error报错信息
			sed -n '/error/p' test.txt

awk(可编程,灵活)

格式:$ awk [option] 'command' files
		解析command=pattern{awk操作命令}
		$0 表示一行中所有字段
		$1 表示一行中第一个字段
		-F ","或者-F ',' 表示按逗号拆分为变量,默认按空格拆分

例1:print和printf打印

		awk -F ':' '{print $1" "$2} /etc/passwd
		awk -F ':' '{printf("Line:%s Col:%s User:%s\n",NR,NF,$1)}' /etc/passwd

例2:只查看test.txt文件(20行)内第3到第13行的内容

		NR:表示记录数量,即行数\n
		NF:表示字段数量,F指定分隔符
		awk '{print "Line :"NR,"Col :"NF}' test.txt
		awk '{if(NR>=20 && NR<=30) print $0}' test.txt

例3:找出文件中有a的记录的第一个字段(正则)

awk '/a/{print $1} test.txt

例4:制表显示/etc/passwd每行的行号、列数、对应行的用户名

BEGIN{执行之前通常初始化}{执行过程}END{执行之后可获取结果}
awk -F ':' 'BEGIN{print "Line   Col   User"}{print NR"\t"NF"\t"$1}END{print "---"FILENAME"---"}' /etc/passwd

例5:统计当前的文件夹下的文件/文件夹的大小(第五个字段为大小)

ll | awk 'BEGIN{size=0}{size+=$5}END{print "Size is "size}' 

例6:统计/etc/passwd的账户人数(排除空行)

补充:正则表达式的匹配与不匹配:~与!~
		awk -F ':' 'BEGIN{count=0}$1!~/^$/{count++}END{print "count is "count}'/etc/passwd

例7:统计UID大于100的用户名

引入循环,并把结果存放到一个数组中,遍历数组打印结果
awk -F ':' 'BEGIN{count=0}{if($3>100) name[count++]=$1}END{for(i=0;i<count;i++) print i, name[i]}' /etc/passwd

例8:统计netstat -anp状态下LISTEN和CONNECTED的连接数量

netstat -anp | awk '$6~/CONNECTED|LISTEN/{sum[$6]++}END{for(i in sum) print i, sum[i]}'

软件安装相关

rpm

查询已安装的rpm列表 rpm -qa | grep xx
3-1

rpm包基本格式
	一个rpm包名:firefox-17.0.10-1.el6.centos.x86_64
	名称:firefox
	版本号:17.0.10-1
	适用操作系统:el6.centos.x86_64
	表示centos6.x的64位系统
常用rpm的查询指令
	rpm -qa | more	查看所安转的所有的rpm包
	rpm -q 软件包名	查询软件包是否安装
	rpm -qi 软件包名	查询软件包的信息
	rpm -ql 软件包名	查询软件包安装在那个位置
	rpm -qf 文件全路径名	查询某个文件属于哪个rpm名

3-2
3-3

卸载rpm包指令
	rpm -e 软件包名
		注:1)如果其他软件包依赖于要删除的软件包,卸载时会产生错误信息
			2)这种情况下可以增加参数--nodeps,就可以强制删除,但一般不建议这样做,因为可能导致依赖该包的程序无法运行

3-4
3-5

安装rpm包指令
	基本语法
		rpm -ivh rpm包全名称
	参数说明:
		i=install	安装
		v=verbose	提示
		h=hash	进度条

应用实例(安装firefox)
先找到firefox的安装rpm包,需要挂载上安装centos的iso文件,然后到/media/下去找rpm包。
3-6
3-7
3-8

yum

基于RPM包管理,能够从指定的服务器上自动下载RPM包并且安装,可以自动处理依赖关系,并且一次性安装所有依赖包,前提是可以联网

yum基本指令
1、查询yum服务器是否有需要安转的软件
	yum list | grep xx软件列表
2、安装指定的yum包
	yum install xx 	

3-9

压缩相关

tar

tar -zxvf xxx文件
	-z:表示支持gzip解压文件
	-Z:支持compress解压文件
	-c:创建新的压缩文件
	-x:从压缩文件中提取文件
	-v:显示压缩处理详情
	-f:指定压缩文件

zip与unzip

zip [参数] [打包后的文件名] [打包的目录路径]
zip -r xxx.zip yyy/	将指定目录yyy 压缩成xxx.zip文件
	-r:将指定的目录下所有的子文件以及文件一起处理
unzip [参数] [待解压缩文件]
unzip -o test.zip -d yyy/
	-o:不必先询问用户,unzip执行后覆盖原有文件
	-d[目录]:指定文件解压后所要存储的目录

进程相关

ps相关

ps 查看目前系统执行的进程
ps -aux | more
ps -aux | grep sshd 查看是否有sshd服务
	-a:显示当前终端所有进程信息
	-u:以用户的格式显示进程信息
	-x:显示后台进程运行的参数
ps显示字段信息选项:
	PID:进程ID
	TTY:使用的终端
	VSZ:使用的虚拟内存 (单位:KB)
	RSS:使用的物理内存情况 (单位:KB)
	STAT:进程的状态,s:休眠;r:运行
	TIME:此进程所消耗CPU时间
	CMD:正在执行的命令或进程名
以全格式显示当前所有的进程,PPID为父进程
ps -ef | grep xxx
	-e:显示所有进程
	-f:全格式
杀掉进程 kill 和 killall
	kill [-9] 端口号
	killall [-9] 进程名

killall ->通过进程名称来终止进程【可以使用通配符】
补充:
	/bin/bash:表示一个终端
	telnet ip (端口号22):测试能否连接该主机
	iptables:防火墙服务
查看进程树 pstree
	-p:显示进程PID
	-u:显示进程所属用户

service 服务管理指令

service	服务名 [start|stop|restart|reload|status]
CentOS 7.0后不再使用功能service,而是systemctl
	该方式只是临时生效,重启系统后,回归原状态
	而chkconfig指令可以永久生效
查看服务名
	一:setup
	二:/etc/init.d/服务名称
服务运行级别:7种级别,0~6
	0:停机状态,系统默认不能为0,否则不能正常启动
	1:单用户状态
	3:完全的多用户状态,登录后进入控制台命令行模式
	5:x11控制台,登录后进入图形GUI模式
开机说明:
	开机--》bois--/boot--》init进程1--》运行级别--》运行级别对应服务
chkconfig 可以给每个服务各个运行级别设置自启动\关闭
	chkconfig --list | grep 服务名
	chkconfig 服务名 --list
	chkconfig --level 5 服务名 on/off  指定某个服务在运行级别5下自启动或不自启动
	chkconfig --level 5 sshd off
	chkconfig iptables off	在所有运行级别下关闭防火墙
注:chkconfig设置完后,需要重启系统才能生效

进程监控指令

动态监控进程top
top与ps相似,但不同在于top在执行一段时间可以更新正在运行的进程
	-d 秒数: 指定top每隔几秒更新,默认时3-i:使用top不显示任何闲置或者僵死进程
	-p:通过指定进程ID来仅仅监控某个进程功能
交互操作(输入top显示之后,再进行操作 )
	P:以CPU使用功能率进行排序,默认
	M:以内存使用率排序
	N:以PID排序
	q:退出top
监控网络状况
	-an:按一定顺序排列输出
	-p:显示那个进程在调用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值