一. 常用系统工作指令

1. echo  	#用于在终端输出字符串或者变量提取后的值
			echo "文本内容">>文件 			#将文本内容输入到文件中(文件不存在则会自动创建该文件)
2. date		#用于显示及设置系统的时间或日期
			date "+%j"  					#查看今天是当年中的第几天
			date -s "20191006 15:37:00"		#将当前时间设置为2019-10-06 15:37
			date "+%Y-%m-%d %H:%M:%S"		#按照“年-月-日 小时:分钟:秒”的格式来查看当前系统时间
3. reboot 	#用于重启系统
4. poweroff	#用于关闭系统;在关闭计算机操作系统之后,最后还会发送ACPI指令,通知电源,最后切断电源供应
5. wget		#用于在终端下载网络文件
			wget 下载地址					
			wget -b 						#后台下载模式
			wget -P 						#下载到指定的目录
			wget -p 						#下载页面内所有资源,包括图片、视频等 						
6. ps		#用于查看系统中的进程状态(系统在过去执行的进程的静态快照)
			ps -a 							#显示所有的进程(包括其他用户的进程)
			ps -u 							#显示进程的用户及其他详细信息
			在Linux系统中有五种常见的进程状态:运行、中断、不可中断、僵死、停止
7. top 		#用于动态的监视进程活动与系统负载等信息(系统进程动态信息,默认10s更新一次)
			#按ctrl+c退出top指令界面
8. pidof	#用于查询某个指定服务进程的PID值
			pidof sshd  					#查询本机上sshd服务程序的PID
9. kill    	#kill命令可以通过进程ID(PID)结束进程,不支持通配符
			kill 2156						#终止PID为2156的进程的服务程序
10. killall	#用于终止某个指定名称的服务所对应的全部进程;通过进程名来结束进程,且支持通配符操作
11. tab		#1) 在命令行下,只需输入例如m,再连续按两次TAB键,系统将列出所有以m开头的命令
			#2)只需输入文件或目录名的前几个字符,然后按TAB键,如无相重的,完整的文件名立即自动在命令行出现;
			#如有相重的,再按一下TAB键,系统会列出当前目录下所有以这几个字符开头的名字
12. shutdown#shutdown命令安全地将系统关机
    halt	#halt执行时会杀死应用进程,执行sync系统调用,文件系统写操作完成后就会停止内核
			shutdown -r 					#关机后重启
			shutdown –t 2              		#在规定的时间内关机(单位是分钟)
			shutdown now					#立刻关机
			shutdown 11:31					#在指定的时间关机
			shutdown -c 					#取消关机
13. cal		#显示月历以及年历
			cal								#显示目前月份的月历
			cal 2019						#显示一整年的年历
			cal 11 2019						#查看某一年份中某一月份的月历
14. man		#查询和解释一个命令的使用方法,以及这个命令的说明事项
			man 指令名称   					#获取该指令的具体使用方法,按q退出
15. locate  #定位文件和目录
			locate test 					#使用数据库来定位带有test这个词的文件或目录
16. whatis 	#用来查询某个命令的含义
			whatis mv
			mv (1)               - move (rename) files
			mv (1p)              - move files
17. init	#切换执行等级(Linux共有七种执行等级)
			init 0 							# 停机(千万不能把initdefault 设置为0 ) 
			init 1 							# 单用户模式 
			init 2 							# 多用户,没有 NFS 不联网
			init 3 							# 完全多用户模式(标准的运行级) 
			init 4 							# 没有用到 
			init 5 							# X11 (xwindow) 图形化界面模式
			init 6 							# 重新启动 (千万不要把initdefault 设置为6 )
18. yum		#能够从指定的服务器自动下载RPM包并且安装,yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令
19. ctrl+l或者clear 	#清屏
	ctrl+c  #用于终止一个前台进程

二、系统状态监测命令

1. ifconfig	#用于获取网卡配置与网络状态等信息(主要包括网卡名称、IP地址、MAC地址、广播地址等)
			flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
	        inet 192.168.157.128  netmask 255.255.255.0  broadcast 192.168.157.255
	        inet6 fe80::20c:29ff:fee5:f613  prefixlen 64  scopeid 0x20<link>
	        ether 00:0c:29:e5:f6:13  txqueuelen 1000  (Ethernet)
	        RX packets 272  bytes 26786 (26.1 KiB)
	        RX errors 0  dropped 0  overruns 0  frame 0
	        TX packets 173  bytes 16911 (16.5 KiB)
	        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
2. uname	#用于查看系统内核与系统版本等信息
			uname -a
			Linux linuxprobe.com 3.10.0-123.el7.x86_64 #1 SMP Mon May 5 11:16:57 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux
3. cat /etc/redhat-release  #查看当前系统版本的详细信息(查看redhat-release文件)
			Red Hat Enterprise Linux Server release 7.0 (Maipo)
4. uptime	#查看系统的负载信息(可以显示当前系统时间、系统运行时间、启用终端数量、平均负载值)
			19:59:11 up 27 min,  2 users,  load average: 0.38, 0.21, 0.23
5. free		#用于显示当前系统中内存的使用量信息
			free -h  						#以更加人性化的方式输出当前内存的实际使用量信息
			             total       used       free     shared    buffers     cached
			Mem:          1.8G       1.0G       823M         9M       928K       328M
			-/+ buffers/cache:       674M       1.1G
			Swap:         2.0G         0B       2.0G
6. who		#显示出所有正在登录本机的用户的名称以及他们正在开启的终端信息
   whoami	#显示当前操作本机的用户
   hostname	#显示主机名
7. last 	#用于查看所有系统的登录记录
8. history 	#用于显示历史执行过的命令(默认显示最近的1000条)
			history -c 						#清空所有的命令历史记录
			!编码数字						#重复执行某一次的命令
9. sosreport#用于收集系统配置及架构信息并输出诊断文档
10. ping	#执行ping命令,它会使用ICMP传输协议,发出要求回应的信息,若远程主机的网络没有什么问题,就会回应信息,因而得知该主机运作正常
			64 bytes from 180.101.49.12: icmp_seq=56 ttl=128 time=3.69 ms
11. ftp 	#用来传输文件
			ftp 主机名称或IP地址				#ftp ftp.dark.com
			bye								#在ftp模式下,输入bye即可中断目前的连线作业,并结束ftp的执行
12. netstat	#用来查询系统上的网络套接字连接情况,包括tcp,udp以及Unix套接字;另外它还能列出路由表,接口状态和多播成员等信息
			netstat -a 						#列出所有端口(包括监听和未监听的)
			netstat -l 						#列出所有处于监听状态的socket(只显示监听端口)
			netstat -t 						#仅显示TCP相关选项
			netstat -u 						#仅显示UDP相关选项
			netstat -r 						#显示路由信息,路由表
13. time	#用于测算一个命令(即程序)的执行时间
			time cd /home/1					#使用非常简单,就像平时输入命令一样,不过在命令的前面加入一个time即可
			#在程序或命令运行结束后,在最后输出了三个时间,它们分别是:
				#user:用户CPU时间,命令执行完成花费的用户CPU时间,即命令在用户态中执行时间总和
				#system:系统CPU时间,命令执行完成花费的系统CPU时间,即命令在核心态中执行时间总和
				#real:实际时间,从command命令行开始执行到运行终止的消逝时间

三、工作目录切换命令

1. pwd		#用于显示当前用户所处的工作目录
2. cd 		#用于切换工作路径
			cd - 							#返回上一次所处的目录
			cd ..							#进入上级目录
			cd ~							#切换到当前用户的家目录
			cd /      						#转到根目录中
3. ls 		#用于显示目录中的文件信息		
			ls -a							#查看全部文件(包括隐藏文件)
			ls -l 							#查看文件的属性、大小等详细信息
			ls -f 							#列举的文件显示文件类型
			ls -s 							#大小,按文件大小排序
			ls -al 							#查看当前目录中所有文件并输出这些文件的属性信息

四、文本文件编辑命令

1. cat		#用于查看纯文本文件或者合并文件(内容比较少的)
			cat 文件名1 文件名2				#合并显示两个文件的内容
2. tac		#用于逆序查看纯文本文件
3. less/more#用于查看纯文本文件(内容比较多的),是一个分页工具,它允许一页一页地(或一个屏幕一个屏幕地)查看信息
			#more和less的主要区别是,less允许使用箭头来前后移动,而more使用空格键和b键来前后移动
4. head		#用于查看纯文本文件的前N行
			head -n 3 文件名					#查看文件《文件名》的前三行
			head 文件名1 文件名2				#分开显示两个文件的内容
5. tail		#用于查看纯文本文件的后N行货持续刷新内容(正序显示)
			tail -n 3 文件名 				#查看文件《文件名》的后三行
			tail -f 文件名					#持续刷新文件《文件名》的内容
6. tr		#用于替换文本文件中的字符(一定要加空格)
			cat test-5 | tr [a-z] [A-Z]		#将文件中的英文小写全部替换成大写
			cat test-4 | tr [11] [22]		#将文件中的数字11全部替换成22
			#以上替换,并不会改变源文件的内容
			cat test-4 | tr [11] [22]>test 	#将文件中的数字11全部替换成22,并输出到新文件test中
7. wc		#用于统计指定文本的行数、字数、字节数
			wc -l 							#只显示统计的行数(line)
			wc -w 							#只显示单词数(word)
			wc -c 							#只显示字节数
8. stat		#用于查看文件的具体存储信息和时间等信息
			#会显示出三种时间状态:Access,Modify,Change
			Access: 2019-10-08 12:01:41.371081983 +0800
			Modify: 2019-10-08 12:01:32.052082794 +0800
			Change: 2019-10-08 12:01:32.054082793 +0800
			Access 指最后一次读取的时间(访问);在终端上用cat、more 、less、grep一个文件时,此文件的Access的时间记录都会被更新
			Modify 指最后一次修改数据的时间(修改);当更改了一个文件的内容的时候,此文件的modify的时间记录会被更新
			Change 指最后一次修改元数据的时间(改变);对一个文件或者目录作mv、chown、chgrp操作后,它的Change时间记录被更新
9. cut		#用于按“列”提取文本字符
10. diff	#用于比较多个文本之间的差异	
			diff --brief 文件名1 文件名2 		#判断两个文件是否相同
			diff -c 文件名1 文件名2 			#描述两个文件内容具体的不同
11. vim		#用于文本编辑,它接一个或多个文件名作为参数,如果文件存在就打开,如果文件不存在就以该文件名创建一个文件
			vim 文件名 						#如果存在该文件就打开它,如果不存在,则创建一个临时的输入文件
			#vim编辑器中设置了三种模式:命令模式、输入模式、末行模式(按a,i,o等键进入输入模式;按:进入末行模式)
			#命令模式:控制光标移动,可对文本进行复制、粘贴、删除和查找等工作
			#输入模式:正常的文本输入
			#末行模式:保存或者退出文档,以及设置编辑环境
			命令模式中的常用命令:
							dd				#删除(剪切)光标所在整行
							5dd 			#删除(剪切)从光标处开始的5行
							yy				#复制光标所在整行
							5yy				#复制从光标处开始的5行
							p 				#将之前删除或者复制过的数据粘贴到光标后面
							u 				#撤销上一步的操作
			末行模式中的常用命令:
							:w 				#保存
							:q 				#退出
							:q! 			#强制退出(放弃对文档的修改内容)
							:wq! 			#强制保存退出 	
12. nl		#用于显示文本内容,显示的时候,顺道输出行号
13. gcc		#用于把C语言的源程序文件,编译成可执行程序

五、 文件目录管理命令

1. touch	#用于创建空白文件或者设置文件的时间
			touch -a "时间" 文件名 			#仅修改“读取时间”
			touch -m "时间" 文件名 			#仅修改“修改时间”
			touch -d "2019-10-06 15:44" test#同时修改“读取时间”和“修改时间”
2. mkdir	#用于创建空白的目录
			Linux下同一目录内文件和目录不能同名
3. cp 		#用于复制文件和目录
			cp 源文件 目的文件/目的文件目录
			cp -p 							#保留原始文件的属性
			cp -d 							#若文件为“链接文件”,则保留该“链接文件”的属性
			cp -r 							#递归持续复制	
			cp -i 							#若目标文件存在则询问是否覆盖
			cp -v							#显示文件的复制进度
4. mv		#用于剪切文件或者将文件重命名
			mv 源文件名 目的文件名	#如果在同一个目录中对一个文件进行剪切操作,其实就是对其进行重命名
			mv 源文件名 目的文件目录	# mv test-7 /home/2
			mv 源文件目录 目的文件目录# mv /home/1 /home/3
5. rm		#用于删除文件或目录(rm命令删除的文件是不进入回收站)
			rm 文件名 				#删除文件,系统会询问是否执行删除操作
			rm -f 文件名 			#强制删除文件
			rm -r 目录名				#想要删除目录必须要加一个-r参数,否则删除不了
			rm -rf 目录名 			#强制删除目录
6. dd		#用于按照指定大小和个数的数据块来复制文件或转换文件
			dd if=	of=	count=	bs=	#if:输入的文件名称  of:输出的文件名称
									#bs:设置每个块的大小 count:设置要复制的块的个数
			dd if=/dev/zero of=560_file count=1 bs=560M
7. file 	#用于查看文件的类型
8. rmdir	#用于删除目录(只能删除空目录)
9. ln 		#用于创建链接文件

六、 打包压缩和搜索文件

1. tar		#用于对文件进行打包压缩和解压
			tar -czvf 1.tar.gz /home	#在home目录下的文件压缩成名称为1的压缩文件
			tar -xzvf 1.tar.gz			#对名称为1的压缩文件进行解压缩
			tar xzvf 1.tar.gz -C /home/2#将压缩文件解压到指定的目录(注意C必须是大写)
			tar -c 					#创建压缩文件
			tar -x 					#解开压缩文件
			tar -z 					#用gzip格式压缩或解压
			tar -j 					#用bzip2格式压缩或解压
			tar -v 					#显示压缩或者解压的过程
			tar -f 					#目标文件名
			tar -C  				#指定解压到的目录
2. grep		#用于在文本中执行关键字搜索,并显示匹配的结果
			grep a /home/1/test-5	#搜索文件test中是否包含文本a
			grep -n a /home/1/test 	#搜索文件test中是否包含文本a,并显示具体在哪一行
			grep -v a /home/1/test 	#搜索文件test中是否包含文本a,并反选出不包含a的所有行
3. find		#用于按照指定条件来查找文件(可以按照不同的文件特性作为寻找条件,如文件名、大小、修改时间、权限等)

七、用户身份与文件权限

1. useradd	#用于创建新的用户
			useradd -e 				#设置账户的到期时间
2. userdel	#用于删除用户
   			userdel -f 				#强制删除用户
   			userdel -r 				#强制删除用户及用户家目录
3. usermod	#用于修改用户的属性
4. groupadd	#用于创建用户组
5. passwd	#用于修改用户密码、过期时间、认证信息等
6. chmod	#用来改变许可权限。读取、写入和执行是许可权限中的三个主要设置
			文件权限:文件所有者、文件所属组、其他用户(可读4、可写2、可执行1)
7. chown	#用于改变文件的所有者
8. chgrp	#用于改变文件所属用户组
9. chattr	#用于设置文件的隐藏权限
   lsattr	#用于显示文件的隐藏权限
10. su 		#用来切换用户,不加用户名默认是切换为root用户,切当前目录不改变,其他环境变量不变
	sudo 	#允许已验证的用户以其他用户的身份来运行命令,可以是普通用户或者超级用户,大部分时候我们用它来以提升的权限来运行命令

八、存储结构与磁盘划分

1. mount	#用于挂载文件系统
			#只需要使用mount命令吧银盘设备或分区与一个目录文件进行关联,然后就能在这个目录中看到硬件设备中的数据
			mount 文件系统 挂载目录
			mount -a 				#挂载所有在/etc/fstb中定义的文件系统
			mount -t 				#指定文件系统的类型
2. umount	#用于撤销已挂载的设备文件
3. df 		#用来检查硬盘分区和已挂在的文件系统的磁盘空间,也就是说,检查硬盘的使用量
4. du		#显示当前目录或文件的大小
			du -a 							#显示目录中所有文件的大小