linux 基础 --04-07

~~~
# day04

@[toc]
### 1. 文件管理概述

```bash

创建  复制  移动  删除  查看  编辑  压缩 

2. 系统的目录结构

Windows

D:\Linux脱产10期视频\基础阶段     反斜线  


Linux   

所有的文件或者目录的起点或者顶点都是以根开始的   /  斜线

Linux的目录结构就像是一个倒挂的树形结构  


必知必会的目录及文件  


[root@qls ~]# ls -1  /


软连接文件

 /bin		#存放系统命令的目录    普通用户可以执行的命令 
 /sbin		#存放系统命令的目录    需要管理员权限才可以执行的命令
 /lib		#库文件目录   32位库文件 
 /lib64		#库文件目录   64位库文件
 
 ====
 
 /usr/bin
 /usr/sbin
 /usr/lib
 /usr/lib64
 
 
 /boot		#系统引导目录    存放的是系统内核和grub的配置 
 /dev		#系统设备目录
 
 	/dev/cdrom -> sr0		#光盘镜像
    /dev/null				#黑洞设备  将一些不用的数据导入到黑洞设备  
    /dev/zero				#字符设备  源源不断的产生数据 字符 
    /dev/random				#产生随机数的设备 
    
	/dev/stderr -> /proc/self/fd/2		#错误输出   2>
	/dev/stdin -> /proc/self/fd/0		#标准输入 	<
	/dev/stdout -> /proc/self/fd/1		#标准输出 	>
	
	/dev/pts/				#存放的是虚拟终端信息  

	#磁盘设备及分区  
	/dev/sda
	/dev/sda1      /
	/dev/sda2
	/dev/sda3    /boot
	
	
 /etc		#系统的主配置文件存放目录    程序配置文件存放目录 
 
 	/etc/sysconfig/network-scripts/ifcfg-*		#系统网卡配置文件
 	
 	/etc/hosts			#本地域名解析文件   记录 IP地址与主机名的对应的映射关系 
 
 	/etc/resolv.conf	#本地DNS配置文件 
    
    /etc/fstab			#设备挂载目录配置文件    开机自启动挂载列表  
 	
 	/etc/hostname		#主机名配置文件  
 	
 	
 /home			#普通用户的家目录     /home/test

 /media			#挂载一些可移动的设备     CD   相机
 
 /mnt			#临时挂载目录 
 
 
 /opt			#早期第三方软件安装目录 
 
 
 /proc			#虚拟可变的目录   记录了系统的实时状态 
 
 
 /root			#超级用户管理员root的家目录  
 
 
 /run			#进程运行时产生的一些pid文件  

 /srv			#物理设备所产生的一些文件
 /sys			#物理设备的驱动信息文件
 
 
 /tmp			#公共临时目录  公共场所     系统会定时的删除这个目录下长时间没有访问的文件
 
 
 /usr			#系统目录 系统文件目录    跟Windows目录一样
 
 	/usr/local		#软件安装目录    
 	
 	
 /var			#可变的目录     系统日志信息  
 
 	/var/log		#系统日志存放目录 
 	
 	/var/log/messages		#系统级别日志
 	
 	/var/log/secure			#用户登录日志 

	/var/tmp			#程序运行时所产生的一些进程文件 
	
	/var/run			#程序运行时所产生的进程的pid文件目录 

3. 路径的定位


包含整个文件名称及文件的位置,这样的定位称之为路径 

路径就是对于文件的定位的一种方式  


每个目录下都有一个点和两个点,都表示什么意思  


.		#表示的是当前所在的目录 

..		#当前目录的上一级目录  


[root@qls usr]# ./local/		#当前目录下的local目录    ==    /usr/local


[root@qls usr]# ../				#当前目录的上一级目录   /  根    


./			#表示当前的目录  

.			#表示当前的目录

../			#从当前目录的上一级目录开始 

..			#上一级目录 


什么是绝对路径   什么又是相对路径


绝对路径:   凡是以根开始的路径就是绝对路径   或者以~开头的路径也是绝对路径  ~  ===  /root    ~  == /home/xxx

/usr/local/ 		#绝对路径 


相对路径:  不是以根为开头的路径就是相对路径     相对路径是针对当前目录而言的   

./local/

local/


4. 文件管理基础命令

1. pwd			#显示当前工作目录的绝对路径    告诉我,你在哪里  

[root@qls usr]# pwd
/usr
[root@qls usr]# cd  local/
[root@qls local]# pwd
/usr/local



2.  cd			#切换工作目录   切换路径 

[root@qls local]# cd		#直接切换到当前用户的家目录  
[root@qls ~]# 
[root@qls ~]# cd  ~			#切换当前用户的家目录   ====   cd  /root

[root@qls ~]# cd  .			#保持当前目录不变
[root@qls ~]# cd ./			#保持当前目录不变

[root@qls ~]# cd  ..		#切换当前目录的上一级目录
[root@qls /]# cd
[root@qls ~]# cd ../		#切换当前目录的上一级目录
[root@qls /]# 

[root@qls usr]# cd  ./local/
[root@qls local]# pwd
/usr/local

[root@qls local]# cd ../etc		#进入当前目录的上一级目录/usr下的etc目录
[root@qls etc]# pwd
/usr/etc

[root@qls usr]# cd   ../etc		#不同目录下。执行的相对路径操作,得到的结果是不同的
[root@qls etc]# pwd
/etc


[root@qls etc]# cd  /		#切换到根目录   根本身也是一个目录 



[root@qls /]# cd  -			#切换到你上一次所在的目录     快速的到达上一次所在的路径 
/etc
[root@qls etc]# 



3. ls		#显示文件或者目录列表信息      打开目录  显示目录里面的内容  

常用选项:

	-l		#以长格式形式显示文件或者目录的详细属性信息  
	
	-i		#显示文件或者目录的inode信息   索引节点信息 
    
    -h		#以字节大小的形式显示文件大小   B   KB   MB   GB  
    
    -a		#显示所有的文件,隐藏文件  所有以点开头的文件就是隐藏文件 
    
    -S	 	#以文件大小进行排序  从大到小显示
    
    -t		#根据时间进行排序  最新的时间在最上面 
    
    -r		#倒叙排序  
    
    -F		#给不同的文件加上不同的标识符  
    
    -d		#显示目录本身信息  
    
    
    	/		#目录 
    	
    	*		#可执行文件  
    	
    	=		#套接字文件  socker文件  
    	
    	|		#管道文件  
    	
    	
	
[root@qls ~]# ls			#如果不加目录信息,默认针对的是当前目录操作 
anaconda-ks.cfg

[root@qls ~]# ls   /root
anaconda-ks.cfg

[root@qls ~]# ls  -l
total 4
-rw-------. 1 root root 1429 Jul  6 02:17 anaconda-ks.cfg

===     系统自带的别名   ll   ===  ls   -l  

[root@qls ~]# ll
total 4
-rw-------. 1 root root 1429 Jul  6 02:17 anaconda-ks.cfg


[root@qls ~]# ls -li
total 4
134317667 -rw-------. 1 root root 1429 Jul  6 02:17 anaconda-ks.cfg

[root@qls ~]# ll -h 
total 4.0K
-rw-------. 1 root root 1.4K Jul  6 02:17 anaconda-ks.cfg


10月24日   程序员日  


[root@qls ~]# ll -a
total 28
dr-xr-x---.  2 root root  135 Jul  6 09:06 .
dr-xr-xr-x. 17 root root  224 Jul  6 02:16 ..
-rw-------.  1 root root 1429 Jul  6 02:17 anaconda-ks.cfg
-rw-------.  1 root root  879 Jul  7 18:59 .bash_history
-rw-r--r--.  1 root root   18 Dec 29  2013 .bash_logout
-rw-r--r--.  1 root root  176 Dec 29  2013 .bash_profile
-rw-r--r--.  1 root root  176 Dec 29  2013 .bashrc
-rw-r--r--.  1 root root  100 Dec 29  2013 .cshrc
-rw-r--r--.  1 root root  129 Dec 29  2013 .tcshrc

[root@qls ~]# ll -aS  
total 28
-rw-------.  1 root root 1429 Jul  6 02:17 anaconda-ks.cfg
-rw-------.  1 root root  879 Jul  7 18:59 .bash_history
dr-xr-xr-x. 17 root root  224 Jul  6 02:16 ..
-rw-r--r--.  1 root root  176 Dec 29  2013 .bash_profile
-rw-r--r--.  1 root root  176 Dec 29  2013 .bashrc
dr-xr-x---.  2 root root  135 Jul  6 09:06 .
-rw-r--r--.  1 root root  129 Dec 29  2013 .tcshrc
-rw-r--r--.  1 root root  100 Dec 29  2013 .cshrc
-rw-r--r--.  1 root root   18 Dec 29  2013 .bash_logout


[root@qls ~]# ll -at
total 28
-rw-------.  1 root root  879 Jul  7 18:59 .bash_history
dr-xr-x---.  2 root root  135 Jul  6 09:06 .
-rw-------.  1 root root 1429 Jul  6 02:17 anaconda-ks.cfg
dr-xr-xr-x. 17 root root  224 Jul  6 02:16 ..
-rw-r--r--.  1 root root   18 Dec 29  2013 .bash_logout
-rw-r--r--.  1 root root  176 Dec 29  2013 .bash_profile
-rw-r--r--.  1 root root  176 Dec 29  2013 .bashrc
-rw-r--r--.  1 root root  100 Dec 29  2013 .cshrc
-rw-r--r--.  1 root root  129 Dec 29  2013 .tcshrc


[root@qls ~]# ll -atr
total 28
-rw-r--r--.  1 root root  129 Dec 29  2013 .tcshrc
-rw-r--r--.  1 root root  100 Dec 29  2013 .cshrc
-rw-r--r--.  1 root root  176 Dec 29  2013 .bashrc
-rw-r--r--.  1 root root  176 Dec 29  2013 .bash_profile
-rw-r--r--.  1 root root   18 Dec 29  2013 .bash_logout
dr-xr-xr-x. 17 root root  224 Jul  6 02:16 ..
-rw-------.  1 root root 1429 Jul  6 02:17 anaconda-ks.cfg
dr-xr-x---.  2 root root  135 Jul  6 09:06 .
-rw-------.  1 root root  879 Jul  7 18:59 .bash_history


[root@qls ~]# ll -aSr  
total 28
-rw-r--r--.  1 root root   18 Dec 29  2013 .bash_logout
-rw-r--r--.  1 root root  100 Dec 29  2013 .cshrc
-rw-r--r--.  1 root root  129 Dec 29  2013 .tcshrc
dr-xr-x---.  2 root root  135 Jul  6 09:06 .
-rw-r--r--.  1 root root  176 Dec 29  2013 .bashrc
-rw-r--r--.  1 root root  176 Dec 29  2013 .bash_profile
dr-xr-xr-x. 17 root root  224 Jul  6 02:16 ..
-rw-------.  1 root root  879 Jul  7 18:59 .bash_history
-rw-------.  1 root root 1429 Jul  6 02:17 anaconda-ks.cfg


[root@qls ~]# ll -aF  
total 28
dr-xr-x---.  2 root root  135 Jul  6 09:06 ./
dr-xr-xr-x. 17 root root  224 Jul  6 02:16 ../
-rw-------.  1 root root 1429 Jul  6 02:17 anaconda-ks.cfg
-rw-------.  1 root root  879 Jul  7 18:59 .bash_history
-rw-r--r--.  1 root root   18 Dec 29  2013 .bash_logout
-rw-r--r--.  1 root root  176 Dec 29  2013 .bash_profile
-rw-r--r--.  1 root root  176 Dec 29  2013 .bashrc
-rw-r--r--.  1 root root  100 Dec 29  2013 .cshrc
-rw-r--r--.  1 root root  129 Dec 29  2013 .tcshrc

[root@qls ~]# ll  -d  /root
dr-xr-x---. 2 root root 135 Jul  6 09:06 /root



[root@qls ~]# ls  /
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
[root@qls ~]# ls -1 /		#以行的形式显示文件名称  
bin
boot
dev
etc
home
lib
lib64
media
mnt
opt
proc
root
run
sbin
srv
sys

4. tree			#以树状形式显示目录列表  


[root@qls ~]# yum install  -y  tree 



	选项:
	
			-a		#显示所有文件或者目录  隐藏文件 
			
			-d		#只显示目录及目录的数量 
			
			-h		#显示文件的大小  
			
			-F		#给不同类型的文件加上不同的标识符
			
			    	/		#目录 
    	
    				*		#可执行文件  
    	
    				=		#套接字文件  socker文件  
    	
    				|		#管道文件  
                    
             -L		#根据目录的基本显示  
			
			
[root@qls ~]# tree 
.
└── anaconda-ks.cfg

0 directories, 1 file

[root@qls ~]# tree  -a
.
├── anaconda-ks.cfg
├── .bash_history
├── .bash_logout
├── .bash_profile
├── .bashrc
├── .cshrc
└── .tcshrc

0 directories, 7 files



[root@qls ~]# tree  -d   /var/log/
/var/log/
├── anaconda
├── audit
├── rhsm
└── tuned

4 directories




[root@qls ~]# tree  -h   /var/log/
/var/log/
├── [ 176]  anaconda
│   ├── [ 26K]  anaconda.log
│   ├── [3.9K]  ifcfg.log
│   ├── [1.5M]  journal.log
│   ├── [   0]  ks-script-3PCKae.log
│   ├── [108K]  packaging.log
│   ├── [ 29K]  program.log
│   ├── [121K]  storage.log
│   ├── [275K]  syslog
│   └── [ 21K]  X.log


[root@qls ~]# tree  -L  2  /


5. mkdir		#创建目录

	选项:
	
		-p		#创建多级目录  递归创建   当目录已经存在时,再次创建不会提示报错  
		
		-v		#显示创建的过程  
		
		-m		#创建的时候,给目录设置一个权限  
	
	
		{}		#生成序列  有规律和无规律    有规律使用..分割   无规律的使用逗号分割 
		
		*		#通配符    所有的意思 
		
		
在相同的路径下,不能存在相同的文件名称 

在不同的路径下,可以存在相同的文件名称  


[root@qls ~]# mkdir  /data		#使用绝对路径进行创建
[root@qls ~]# mkdir  data		#使用相对路径进行创建

[root@qls ~]# ll
total 4
-rw-------. 1 root root 1429 Jul  6 02:17 anaconda-ks.cfg
drwxr-xr-x. 2 root root    6 Jul  8 19:51 data
[root@qls ~]# ll /
total 20
lrwxrwxrwx.   1 root root    7 Jul  6 02:13 bin -> usr/bin
dr-xr-xr-x.   5 root root 4096 Jul  6 02:17 boot
drwxr-xr-x.   2 root root    6 Jul  8 19:51 data


[root@qls ~]# mkdir  /root/data
mkdir: cannot create directory ‘/root/data’: File exists



File exists			#文件已经存在 

	解决:  
	
		1. 你要创建的目录已经存在,无需再次进行创建 
		
		2. 你要创建的目录路径书写错误  
		
		
[root@qls ~]# mkdir  -p  /root/data		

[root@qls ~]# mkdir   test/oldboy
mkdir: cannot create directory ‘test/oldboy’: No such file or directory
[root@qls ~]# mkdir  -p  test/oldboy
[root@qls ~]# ll
total 4
-rw-------. 1 root root 1429 Jul  6 02:17 anaconda-ks.cfg
drwxr-xr-x. 2 root root    6 Jul  8 19:51 data
drwxr-xr-x. 3 root root   20 Jul  8 19:57 test
[root@qls ~]# ll test/
total 0
drwxr-xr-x. 2 root root 6 Jul  8 19:57 oldboy



[root@qls ~]# mkdir  oldboy
[root@qls ~]# mkdir  'oldboy '
[root@qls ~]# 
[root@qls ~]# ll
total 4
-rw-------. 1 root root 1429 Jul  6 02:17 anaconda-ks.cfg
drwxr-xr-x. 2 root root    6 Jul  8 19:51 data
drwxr-xr-x. 2 root root    6 Jul  8 20:00 oldboy
drwxr-xr-x. 2 root root    6 Jul  8 20:00 oldboy 
drwxr-xr-x. 3 root root   20 Jul  8 19:57 test
[root@qls ~]# ll  -F  
total 4
-rw-------. 1 root root 1429 Jul  6 02:17 anaconda-ks.cfg
drwxr-xr-x. 2 root root    6 Jul  8 19:51 data/
drwxr-xr-x. 2 root root    6 Jul  8 20:00 oldboy/
drwxr-xr-x. 2 root root    6 Jul  8 20:00 oldboy /
drwxr-xr-x. 3 root root   20 Jul  8 19:57 test/
[root@qls ~]#  root    6 Jul  8 20:00 oldboy/


[root@qls ~]# mkdir -v   data01
mkdir: created directory ‘data01’


[root@qls ~]# mkdir  -m  700   data02
[root@qls ~]# ll
total 4
-rw-------. 1 root root 1429 Jul  6 02:17 anaconda-ks.cfg
drwxr-xr-x. 2 root root    6 Jul  8 19:51 data
drwxr-xr-x. 2 root root    6 Jul  8 20:02 data01
drwx------. 2 root root    6 Jul  8 20:04 data02
drwxr-xr-x. 2 root root    6 Jul  8 20:00 oldboy
drwxr-xr-x. 2 root root    6 Jul  8 20:00 oldboy 
drwxr-xr-x. 3 root root   20 Jul  8 19:57 test



[root@qls ~]# echo {01..10}
01 02 03 04 05 06 07 08 09 10


[root@qls ~]# mkdir  test/data{01..10}		#批量创建10个目录 
[root@qls ~]# ll test/
total 0
drwxr-xr-x. 2 root root 6 Jul  8 20:09 data01
drwxr-xr-x. 2 root root 6 Jul  8 20:09 data02
drwxr-xr-x. 2 root root 6 Jul  8 20:09 data03
drwxr-xr-x. 2 root root 6 Jul  8 20:09 data04
drwxr-xr-x. 2 root root 6 Jul  8 20:09 data05
drwxr-xr-x. 2 root root 6 Jul  8 20:09 data06
drwxr-xr-x. 2 root root 6 Jul  8 20:09 data07
drwxr-xr-x. 2 root root 6 Jul  8 20:09 data08
drwxr-xr-x. 2 root root 6 Jul  8 20:09 data09
drwxr-xr-x. 2 root root 6 Jul  8 20:09 data10

[root@qls ~]# echo {a..z}
a b c d e f g h i j k l m n o p q r s t u v w x y z
[root@qls ~]# echo {a..g}
a b c d e f g
[root@qls ~]# echo {A..Z}
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

[root@qls ~]# mkdir  test/oldboy-{a..g}


[root@qls ~]# ll  -d  test/oldboy-*
drwxr-xr-x. 2 root root 6 Jul  8 20:11 test/oldboy-a
drwxr-xr-x. 2 root root 6 Jul  8 20:11 test/oldboy-b
drwxr-xr-x. 2 root root 6 Jul  8 20:11 test/oldboy-c
drwxr-xr-x. 2 root root 6 Jul  8 20:11 test/oldboy-d
drwxr-xr-x. 2 root root 6 Jul  8 20:11 test/oldboy-e
drwxr-xr-x. 2 root root 6 Jul  8 20:11 test/oldboy-f
drwxr-xr-x. 2 root root 6 Jul  8 20:11 test/oldboy-g


[root@qls ~]# mkdir  data-{a,c,d,h}
[root@qls ~]# ll
total 4
-rw-------.  1 root root 1429 Jul  6 02:17 anaconda-ks.cfg
drwxr-xr-x.  2 root root    6 Jul  8 19:51 data
drwxr-xr-x.  2 root root    6 Jul  8 20:02 data01
drwx------.  2 root root    6 Jul  8 20:04 data02
drwxr-xr-x.  2 root root    6 Jul  8 20:12 data-a
drwxr-xr-x.  2 root root    6 Jul  8 20:12 data-c
drwxr-xr-x.  2 root root    6 Jul  8 20:12 data-d
drwxr-xr-x.  2 root root    6 Jul  8 20:12 data-h

[root@qls ~]# mkdir  -p  oldboy/{01..10}/data{01..10}/test{01..10}

#在Linux系统中,是区分大小写的

[root@qls ~]# mkdir  a
[root@qls ~]# mkdir  A
[root@qls ~]# ll
total 4
drwxr-xr-x.  2 root root    6 Jul  8 12:25 a
drwxr-xr-x.  2 root root    6 Jul  8 12:25 A





6. touch		#创建文件   创建空文件  当文件已经存在时,创建的时候不会报错,但是会改变文件的时间戳

		{}		#生成序列  有规律和无规律    有规律使用..分割   无规律的使用逗号分割 

[root@qls ~]# touch  test.txt


[root@qls ~]# touch  data.{txt,sh,log,xml,tar,py,js}
[root@qls ~]# ll
-rw-r--r--.  1 root root    0 Jul  8 12:27 data.js
-rw-r--r--.  1 root root    0 Jul  8 12:27 data.log
-rw-r--r--.  1 root root    0 Jul  8 12:27 data.py
-rw-r--r--.  1 root root    0 Jul  8 12:27 data.sh
-rw-r--r--.  1 root root    0 Jul  8 12:27 data.tar
-rw-r--r--.  1 root root    0 Jul  8 12:27 data.txt
-rw-r--r--.  1 root root    0 Jul  8 12:27 data.xml


[root@qls ~]# touch  data{01..10}.txt
[root@qls ~]# ll
-rw-r--r--.  1 root root    0 Jul  8 12:28 data01.txt
-rw-r--r--.  1 root root    0 Jul  8 12:28 data02.txt
-rw-r--r--.  1 root root    0 Jul  8 12:28 data03.txt
-rw-r--r--.  1 root root    0 Jul  8 12:28 data04.txt
-rw-r--r--.  1 root root    0 Jul  8 12:28 data05.txt
-rw-r--r--.  1 root root    0 Jul  8 12:28 data06.txt
-rw-r--r--.  1 root root    0 Jul  8 12:28 data07.txt
-rw-r--r--.  1 root root    0 Jul  8 12:28 data08.txt
-rw-r--r--.  1 root root    0 Jul  8 12:28 data09.txt
-rw-r--r--.  1 root root    0 Jul  8 12:28 data10.txt




~~~bash
# day05

@[toc]
### 1. cp命令

```bash
复制,拷贝  

语法:

	命令     源文件     目标目录
	
选项:
	
	-r		#递归复制   复制目录时所使用的
	
	-p		#保持源文件属性
	
	-d		#复制的时候保持软连接 
	
	-a		===  -pdr
	
	-t		#把源文件的位置根目标目录的位置进行调换   在批量拷贝文件时使用 
	
	-i		#当拷贝的文件在目标目录已经存在时,提示是否覆盖     系统自带的别名 


[root@qls ~]# cp  /etc/hosts  /root
[root@qls ~]# cp  /etc/passwd   ./
[root@qls ~]# cp  /etc/resolv.conf   .
[root@qls ~]# ll
total 12
-rw-r--r--. 1 root root 158 Jul  9 09:11 hosts
-rw-r--r--. 1 root root 873 Jul  9 09:11 passwd
-rw-r--r--. 1 root root  51 Jul  9 09:11 resolv.conf



[root@qls ~]# cp  /opt/   ./
cp: omitting directory ‘/opt/’
[root@qls ~]# cp  -r   /opt/  ./
[root@qls ~]# ll
total 12
-rw-r--r--. 1 root root 158 Jul  9 09:11 hosts
drwxr-xr-x. 2 root root   6 Jul  9 09:14 opt
-rw-r--r--. 1 root root 873 Jul  9 09:11 passwd
-rw-r--r--. 1 root root  51 Jul  9 09:11 resolv.conf


[root@qls ~]# ll  /etc/grub2.cfg 
lrwxrwxrwx. 1 root root 22 Jul  6 02:14 /etc/grub2.cfg -> ../boot/grub2/grub.cfg
[root@qls ~]# cp  /etc/grub2.cfg  ./
[root@qls ~]# ll
total 20
-rw-r--r--. 1 root root 4229 Jul  9 09:16 grub2.cfg
-rw-r--r--. 1 root root  158 Jul  9 09:11 hosts
drwxr-xr-x. 2 root root    6 Jul  9 09:14 opt
-rw-r--r--. 1 root root  873 Jul  9 09:11 passwd
-rw-r--r--. 1 root root   51 Jul  9 09:11 resolv.conf
[root@qls ~]# rm -f grub2.cfg 
[root@qls ~]# cp  -d  /etc/grub2.cfg   ./
[root@qls ~]# ll
total 12
lrwxrwxrwx. 1 root root  22 Jul  9 09:16 grub2.cfg -> ../boot/grub2/grub.cfg
-rw-r--r--. 1 root root 158 Jul  9 09:11 hosts
drwxr-xr-x. 2 root root   6 Jul  9 09:14 opt
-rw-r--r--. 1 root root 873 Jul  9 09:11 passwd
-rw-r--r--. 1 root root  51 Jul  9 09:11 resolv.conf


[root@qls ~]# cp  -t  ./   /etc/fstab 
[root@qls ~]# ll
total 16
lrwxrwxrwx. 1 root root   7 Jul  6 02:13 bin -> usr/bin
-rw-r--r--. 1 root root 501 Jul  9 09:21 fstab
lrwxrwxrwx. 1 root root  22 Jul  9 09:16 grub2.cfg -> ../boot/grub2/grub.cfg
-rw-r--r--. 1 root root 158 Jul  9 09:11 hosts
drwxr-xr-x. 2 root root   6 Jul  9 09:14 opt
-rw-r--r--. 1 root root 873 Jul  9 09:11 passwd
-rw-r--r--. 1 root root  51 Jul  9 09:11 resolv.conf



[root@qls ~]# cp  /etc/hosts   ./
cp: overwrite ‘./hosts’? n

[root@qls ~]# alias 
alias cp='cp -i'


#强制覆盖不提示    临时取消别名 

[root@qls ~]# \cp  /etc/hosts  ./


```

### 2. mv命令

```bash

移动和重命名文件 

语法:

	命令     源文件    目标目录  
	
选项:

	-i		#当文件已经存在时,移动的时候,提示是否覆盖目标文件    系统自带别名 
	
	-f		#强制覆盖,不提示  
	
	-t		#把源文件的位置跟目标目录的位置进行调换 

[root@qls ~]# ll  /opt/
total 12
-rw-r--r--. 1 root root 501 Jul  9 09:28 fstab
-rw-r--r--. 1 root root 158 Jul  9 09:28 hosts
-rw-r--r--. 1 root root  51 Jul  9 09:28 resolv.conf
[root@qls ~]# mv  /opt/hosts   ./
[root@qls ~]# ll
total 4
-rw-r--r--. 1 root root 158 Jul  9 09:28 hosts
[root@qls ~]# ll /opt/
total 8
-rw-r--r--. 1 root root 501 Jul  9 09:28 fstab
-rw-r--r--. 1 root root  51 Jul  9 09:28 resolv.conf


[root@qls ~]# cp -r  /mnt/   /opt/
[root@qls ~]# ll /opt/
total 8
-rw-r--r--. 1 root root 501 Jul  9 09:28 fstab
drwxr-xr-x. 2 root root   6 Jul  9 09:59 mnt
-rw-r--r--. 1 root root  51 Jul  9 09:28 resolv.conf
[root@qls ~]# mv /opt/mnt/   ./		#在移动目录的时候,不需要加任何的选项  
[root@qls ~]# ll
total 4
-rw-r--r--. 1 root root 158 Jul  9 09:28 hosts
drwxr-xr-x. 2 root root   6 Jul  9 09:59 mnt


[root@qls ~]# cp  /etc/hosts  /opt/
[root@qls ~]# ll /opt/
total 12
-rw-r--r--. 1 root root 501 Jul  9 09:28 fstab
-rw-r--r--. 1 root root 158 Jul  9 10:00 hosts
-rw-r--r--. 1 root root  51 Jul  9 09:28 resolv.conf
[root@qls ~]# ll
total 4
-rw-r--r--. 1 root root 158 Jul  9 09:28 hosts
drwxr-xr-x. 2 root root   6 Jul  9 09:59 mnt
[root@qls ~]# mv  /opt/hosts   ./		#文件已经存在时,提示是否覆盖  
mv: overwrite ‘./hosts’? n

[root@qls ~]# alias 
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'

#强制覆盖不提示  

[root@qls ~]# \mv  /opt/hosts   ./

#强制覆盖不提示 

[root@qls ~]# mv  -f  /opt/hosts   ./
[root@qls ~]# ll
total 4
-rw-r--r--. 1 root root 158 Jul  9 10:00 hosts
drwxr-xr-x. 2 root root   6 Jul  9 09:59 mnt
[root@qls ~]# ll /opt/
total 8
-rw-r--r--. 1 root root 501 Jul  9 09:28 fstab
-rw-r--r--. 1 root root  51 Jul  9 09:28 resolv.conf


[root@qls ~]# mv -t  /opt/   ./hosts  
[root@qls ~]# ll
total 0
drwxr-xr-x. 2 root root 6 Jul  9 09:59 mnt
[root@qls ~]# ll /opt/
total 12
-rw-r--r--. 1 root root 501 Jul  9 09:28 fstab
-rw-r--r--. 1 root root 158 Jul  9 10:00 hosts
-rw-r--r--. 1 root root  51 Jul  9 09:28 resolv.conf

#在移动文件或者目录的过程中,修改了名称  

[root@qls ~]# mv  mnt/   mot
[root@qls ~]# ll
total 0
drwxr-xr-x. 2 root root 6 Jul  9 09:59 mot
[root@qls ~]# mv  /opt/hosts   ./host
[root@qls ~]# ll
total 4
-rw-r--r--. 1 root root 158 Jul  9 10:00 host
drwxr-xr-x. 2 root root   6 Jul  9 09:59 mot

```

### 3. rename命令了解

```bash
利用替换字符串的方式进行重命名 


[root@qls ~]# rename   test   oldboy   test.txt 
[root@qls ~]# ll
total 4
-rw-r--r--. 1 root root 158 Jul  9 10:00 host
drwxr-xr-x. 2 root root   6 Jul  9 09:59 mot
-rw-r--r--. 1 root root   0 Jul  9 10:08 oldboy.txt


```

### 4. rm命令

```bash
命令特别的危险  



选项:

	-i    #在删除文件的时候,提示你是否确认删除    系统别名 
	
	-f	 #强制删除不提示  
	
	-r	 #删除目录使用  递归删除  
	
	
	
[root@qls ~]# ll
total 4
-rw-r--r--. 1 root root 158 Jul  9 10:00 host
drwxr-xr-x. 2 root root   6 Jul  9 09:59 mot
-rw-r--r--. 1 root root   0 Jul  9 10:08 oldboy.txt
[root@qls ~]# rm  host 
rm: remove regular file ‘host’? n
[root@qls ~]# ll
total 4
-rw-r--r--. 1 root root 158 Jul  9 10:00 host
drwxr-xr-x. 2 root root   6 Jul  9 09:59 mot
-rw-r--r--. 1 root root   0 Jul  9 10:08 oldboy.txt
[root@qls ~]# alias 
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'



[root@qls ~]# rm  -f   host 
[root@qls ~]# ll
total 0
drwxr-xr-x. 2 root root 6 Jul  9 09:59 mot
-rw-r--r--. 1 root root 0 Jul  9 10:08 oldboy.txt



[root@qls ~]# rm -f  mot/
rm: cannot remove ‘mot/’: Is a directory


[root@qls ~]# rm  -rf  mot/
[root@qls ~]# ll
total 0
-rw-r--r--. 1 root root 0 Jul  9 10:08 oldboy.txt


[root@qls ~]# ll
total 4
-rw-r--r--. 1 root root 158 Jul  9 10:31 hosts
-rw-r--r--. 1 root root   0 Jul  9 10:08 oldboy.txt


[root@qls ~]# rm -rf  ./*		#删除目录下的所有   排除 隐藏文件 


```

### 5. echo命令

```bash

#打印你所要输出的内容    打印变量的值   创建新文件   修改文件    输出加上颜色      脚本中使用的多 


选项:

	-n		#不自动换行 
	
	-e		#支持一些特殊字符的使用 
    
    	\n	#换行符 
    	
    	\t	#tab键 
	
	

[root@qls ~]# echo  hello  world
hello world
[root@qls ~]# echo -n   hello  world
hello world[root@qls ~]# 

#定义和打印变量 

[root@qls ~]# Name=qls
[root@qls ~]# Name
-bash: Name: command not found
[root@qls ~]# echo  $Name
qls


[root@qls ~]# echo $PWD
/root
[root@qls ~]# cd /opt/
[root@qls opt]# echo $PWD
/opt


#创建新文件   

>   #标准输出重定向    如果文件不存在,会自动创建,如果文件存在,会首先把文件的内容清空,然后再把你要输出的内容重定向进去  


[root@qls ~]# echo  1  > test.txt
[root@qls ~]# ll
total 8
-rw-------. 1 root root 1429 Jul  6 02:17 anaconda-ks.cfg
-rw-r--r--. 1 root root    2 Jul  9 10:56 test.txt
[root@qls ~]# cat test.txt 
1

[root@qls ~]# echo  2  > test.txt 
[root@qls ~]# cat test.txt 
2

>> 		#标准输出追加重定向  如果文件不存在,会自动创建,如果文件存在,会把你要输出的内容追加到文件的底部


[root@qls ~]# echo  3  >> test.txt 
[root@qls ~]# cat test.txt 
2
3


[root@qls ~]# echo -e "hello\nworld"
hello
world


[root@qls ~]# echo  -e  "1\n2\n3"
1
2
3
[root@qls ~]# echo  -e  "1\n2\n3" > oldboy.txt
[root@qls ~]# cat oldboy.txt
1
2
3


字颜色:30—–37

  echo -e "\033[30m 黑色字 \033[0m"
  echo -e "\033[31m 红色字 \033[0m"
  echo -e "\033[32m 绿色字 \033[0m"
  echo -e "\033[33m 黄色字 \033[0m"
  echo -e "\033[34m 蓝色字 \033[0m" 
  echo -e "\033[35m 紫色字 \033[0m" 
  echo -e "\033[36m 天蓝字 \033[0m" 
  echo -e "\033[37m 白色字 \033[0m" 


字背景颜色范围:40—–47

  echo -e "\033[40;37m 黑底白字 \033[0m"
  echo -e "\033[41;37m 红底白字 \033[0m" 
  echo -e "\033[42;37m 绿底白字 \033[0m" 
  echo -e "\033[43;37m 黄底白字 \033[0m" 
  echo -e "\033[44;37m 蓝底白字 \033[0m" 
  echo -e "\033[45;37m 紫底白字 \033[0m" 
  echo -e "\033[46;37m 天蓝底白字 \033[0m" 
  echo -e "\033[47;30m 白底黑字 \033[0m"

```

### 6. cat命令

```bash
#显示文件内容  把文件内容全部显示出来     创建新文件  修改文件    合并文件  


选项:

	-n		#显示文件时,显示文件的行号   

	-A		#给显示的文件内容的每行结尾加上一个标识符  
	
	
[root@qls ~]# cat passwd 
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown


[root@qls ~]# cat  -n  passwd
     1	root:x:0:0:root:/root:/bin/bash
     2	bin:x:1:1:bin:/bin:/sbin/nologin
     3	daemon:x:2:2:daemon:/sbin:/sbin/nologin
     4	adm:x:3:4:adm:/var/adm:/sbin/nologin
     5	lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
     6	sync:x:5:0:sync:/sbin:/bin/sync
     7	shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown


[root@qls ~]# cat -A  passwd 
root:x:0:0:root:/root:/bin/bash$
bin:x:1:1:bin:/bin:/sbin/nologin$
daemon:x:2:2:daemon:/sbin:/sbin/nologin$
adm:x:3:4:adm:/var/adm:/sbin/nologin$
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin$
sync:x:5:0:sync:/sbin:/bin/sync$
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown$

[root@qls ~]# echo  "123456 "  >> pass.txt
[root@qls ~]# cat pass.txt
123456 
[root@qls ~]# cat -A pass.txt
123456 $

[root@qls ~]# hostname -I
10.0.0.100 
[root@qls ~]# hostname -I | cat -A
10.0.0.100 $

#   <<    标识符限定输入重定向        命令从标准输入中输入,直到遇到标识符的分解符结束 




[root@qls ~]# cat >123.txt<<EOF
> 123
> 456
> 789
> EOF
[root@qls ~]# cat 123.txt 
123
456
789


[root@qls ~]# cat >>123.txt<<oldboy
> 000
> oldboy
[root@qls ~]# cat 123.txt 
123
456
789
000

cat >456.txt<<EOF
123
456
789
EOF


#将多个文件合并为一个文件 

[root@qls ~]# cat pass.txt 
123456 
[root@qls ~]# cat test.txt 
2
3
[root@qls ~]# cat pass.txt  test.txt   
123456 
2
3
[root@qls ~]# cat pass.txt  test.txt    > new.txt
[root@qls ~]# cat new.txt
123456 
2
3


[root@qls ~]# cp  /etc/services   ./

```

### 7. more命令

```bash

#分页显示文件内容    文件显示完成之后,会自动退出  


选项:

		-num		#num是数字    指定一页显示多少行 
		
		+num		#num是数字    指定从第几行开始显示文件内容 


	空格或者f键  		 #向下翻页
	
	b键					#向上翻页
	
	回车					#向下一行  
	
	h					#帮助信息 
	
	q					#退出  
	 
	/xxx				#搜索你要搜索的内容    搜索出来的内容不会高亮显示 
	
			n			#向下查找   不能向上查找 
			
	=					#显示当前光标所在的行号 
	
	

[root@qls ~]# more  services 


[root@qls ~]# more -1  services 
# /etc/services:
--More--(0%)


[root@qls ~]# more  +5  services
# IANA services version: last updated 2013-04-10
#
# Note that it is presently the policy of IANA to assign a single well-known

```

### 8. less命令

```bash
#分页显示文件内容     文件显示完成之后,不会自动退出 


选项:

	-N			#显示文件内容的时候,加上行号  

	-i			#在搜索的时候,忽略大小写  

	空格或者f键		#向下翻页 
	
	b键				#向上翻页 
	
	回车				#向下一行 
	
	q				#退出
	
	h				#显示帮助 
	
	/xxxx			#搜索指定的内容    会把搜索出来的内容高亮显示  
	
		n			#向下查找 
		
		N			#向上查找 
		
		
	=				#显示当前页的内容是由哪些行组成的  显示总行数 
	
					显示文件从开头到当前行总共显示了多少字节内容   总字节大小


[root@qls ~]# less -N  services


[root@qls ~]# less -i  services
# day06

@[toc]
### 1. head命令

```bash

#显示文件的头部信息,默认显示文件的前十行内容 


选项:

		-n		#取消默认输出
        
        -c		#显示文件的最前面的字符  

[root@qls ~]# head passwd 
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin



[root@qls ~]# head  -n 2  passwd 
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin

===

[root@qls ~]# head  -2  passwd 
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin


[root@qls ~]# head  -20  passwd 
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin


[root@qls ~]# head  -c5  passwd 
root:[root@qls ~]# 


```

### 2. tail命令

```

#显示文件的尾部信息,默认显示文件最后10行 

	选项:
	
			-n		#取消默认输出
            
            -c		#显示最后几个字符 
            
            -f		#实时显示文件的尾部变化信息  
            
            -F		#实时更新文件的内容,当文件不存在,不会退出,会一直尝试读取这个文件,直到文件存在 

[root@qls ~]# tail  passwd
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin


[root@qls ~]# tail  -n 1  passwd
postfix:x:89:89::/var/spool/postfix:/sbin/nologin

===

[root@qls ~]# tail  -1  passwd
postfix:x:89:89::/var/spool/postfix:/sbin/nologin


[root@qls ~]# tail  -c5  passwd 			#显示最后5个字符,只能看见4个,另外一个是换行符 
ogin
[root@qls ~]# 


[root@qls ~]# tail -f  passwd 
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin



hello

#另外一个窗口进行测试  
[root@qls ~]# echo 'hello'  >> passwd



[root@qls ~]# tail  -f  test.log
tail: cannot open ‘test.log’ for reading: No such file or directory
tail: no files remaining
[root@qls ~]# tail  -F  test.log
tail: cannot open ‘test.log’ for reading: No such file or directory



tail: ‘test.log’ has appeared;  following end of new file
test


```

### 3. tailf命令

```bash
#实时更新文件的内容  


tailf    ====    tail   -f

当文件内容没有发生变化时,tailf不会去读取磁盘中的信息,减少磁盘的读写 ,tail  -f  当文件内容没有发生变化时,会一直向磁盘进行读取


选项:  

	-n			#取消默认输出 
	
	
```

### 4. locate命令

```bash
#根据本地的数据库进行查找文件,不会查找到最新的文件  

[root@qls ~]# yum  install  -y  mlocate

选项:

		-i		#不区分大小写  
		
		-r		#简单使用正则表达式   $  结尾  

/var/lib/mlocate/mlocate.db

[root@qls ~]# updatedb			#更新数据库  

#把系统中所有文件名称包含passwd的文件全部查找出来 

[root@qls ~]# locate  passwd
/etc/passwd
/etc/passwd-
/etc/pam.d/passwd
/etc/security/opasswd
/root/passwd
/usr/bin/gpasswd
/usr/bin/grub2-mkpasswd-pbkdf2
/usr/bin/passwd
/usr/lib/firewalld/services/kpasswd.xml


[root@qls ~]# locate    hostnamectl
/usr/bin/hostnamectl
/usr/share/bash-completion/completions/hostnamectl
/usr/share/man/man1/hostnamectl.1.gz
/usr/share/zsh/site-functions/_hostnamectl

[root@qls ~]# touch  hostnamectl

[root@qls ~]# updatedb	

[root@qls ~]# locate    hostnamectl
/root/hostnamectl
/usr/bin/hostnamectl
/usr/share/bash-completion/completions/hostnamectl
/usr/share/man/man1/hostnamectl.1.gz
/usr/share/zsh/site-functions/_hostnamectl

[root@qls ~]# updatedb 
[root@qls ~]# locate    hostnamectl
/root/hostnamectl
/usr/bin/hostnamectl
/usr/share/bash-completion/completions/hostnamectl
/usr/share/man/man1/hostnamectl.1.gz
/usr/share/zsh/site-functions/_hostnamectl
[root@qls ~]# locate  -i  hostnamectl
/opt/HOSTNAMEctl
/root/hostnamectl
/usr/bin/hostnamectl
/usr/share/bash-completion/completions/hostnamectl
/usr/share/man/man1/hostnamectl.1.gz
/usr/share/zsh/site-functions/_hostnamectl


[root@qls ~]# locate  -r  hostname$
/etc/hostname
/etc/selinux/targeted/active/modules/100/hostname
/usr/bin/hostname
/usr/bin/nmtui-hostname
/usr/lib64/gettext/hostname

```

### 5. which命令

```bash
#查找命令的绝对路径  

[root@qls ~]# which  ping
/usr/bin/ping

#查找命令的绝对路径时,是通过PATH环境变量中的路径进行查找  
[root@qls ~]# echo  $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

#不使用which的别名进行查找命令的绝对路径 

[root@qls ~]# \which   cp
/usr/bin/cp


[root@qls ~]# rpm -qf  `which  ping`
iputils-20160308-10.el7.x86_64

[root@qls ~]# rpm  -qf  /usr/bin/ping
iputils-20160308-10.el7.x86_64

```

### 6. whereis命令

```bash
#查找系统二进制程序、man帮助文件、源代码文件     查找不到自己创建的文件  

选项:

	-b		#只查找二进制程序文件
	
	-m		#查找man帮助文件 
	
	-s		#查找源代码文件  

[root@qls ~]# whereis   ping
ping: /usr/bin/ping /usr/share/man/man8/ping.8.gz


[root@qls ~]# whereis -b  ping
ping: /usr/bin/ping
[root@qls ~]# whereis -m  ping
ping: /usr/share/man/man8/ping.8.gz

```

### 7. type命令

```bash
#显示命令的类型  

选项:

	-a		#显示内置命令的绝对路径  
	
	-p		#只显示命令的绝对路径

help命令可以显示系统中所有的内置命令 


[root@qls ~]# type  ping
ping is /usr/bin/ping

[root@qls ~]# type  cd
cd is a shell builtin

[root@qls ~]# type  -a  cd
cd is a shell builtin
cd is /usr/bin/cd


[root@qls ~]# type  -p  ping
/usr/bin/ping


[root@qls ~]# type  -ap  cd
/usr/bin/cd


```

### 8. find命令

```bash
#查找和搜索文件  

选项:

	-type		#根据文件类型进行查找
	
		f		#普通文件
		
		d		#目录
		
		l		#软连接文件 
		
		s		#socket文件  套接字文件  
		
		p		#管道文件 


	-name		#根据名称进行查找  
	
	
	-iname		#查找的时候忽略大小写  
	
	
语法:
						  选项,条件            干什么  
                          
                          
	命令      地区        类型     名称       动作     默认动作就是打印 
	
#在/etc目录下进行查找      查找类型为普通文件    名称为  hostname   精确查找  
[root@qls ~]# find  /etc  -type  f   -name  "hostname"  
/etc/hostname


[root@qls ~]# touch  /opt/hostname{,ctl}
[root@qls ~]# ll /opt/
total 0
-rw-r--r--. 1 root root 0 Jul 10 10:32 hostname
-rw-r--r--. 1 root root 0 Jul 10 10:32 hostnamectl
[root@qls ~]# touch  /opt/test_hostname
[root@qls ~]# touch  /opt/test_hostname.txt
[root@qls ~]# ll /opt/
total 0
-rw-r--r--. 1 root root 0 Jul 10 10:32 hostname
-rw-r--r--. 1 root root 0 Jul 10 10:32 hostnamectl
-rw-r--r--. 1 root root 0 Jul 10 10:32 test_hostname
-rw-r--r--. 1 root root 0 Jul 10 10:33 test_hostname.txt
[root@qls ~]# find  /opt/  -type  f  -name "hostname"
/opt/hostname


#查找以hostname开头的文件

[root@qls ~]# find  /opt/    -name  "hostname*"
/opt/hostname
/opt/hostnamectl

#查找以hostname为结尾的文件  

[root@qls ~]# find   /opt/  -name  "*hostname"
/opt/hostname
/opt/test_hostname

#查找文件名称包含hostname的文件 

[root@qls ~]# find  /opt/  -name "*hostname*"
/opt/hostname
/opt/hostnamectl
/opt/test_hostname
/opt/test_hostname.txt

#查找所有文件,包括隐藏文件  

[root@qls ~]# touch   /opt/.hostname.log
[root@qls ~]# find  /opt/  -name "*hostname*"
/opt/hostname
/opt/hostnamectl
/opt/test_hostname
/opt/test_hostname.txt
/opt/.hostname.log


[root@qls ~]# find  /opt/  -type d -iname "*hostname*"
/opt/HOSTNAMECTL


```

### 9. rz命令 

```bash
#将本地的文件上传到Linux操作系统     

#不能上传目录,需要将目录打成一个压缩包进行上传     只能上传 4G以下的文件  

[root@qls ~]# yum  install  lrzsz   -y

选项:

	-E		#当上传的文件已经存在时,系统会进行重命名   会在原来的文件名称后面加上.数字  从0开始 
	
	
#执行命令,会跳出一个Windows界面的窗口,选择你要上传的文件  

[root@qls ~]# rz

[root@qls ~]# ll
total 16
-rw-r--r--. 1 root root 13140 Jul  7 12:23 day03.md


[root@qls ~]# rz  -E

[root@qls ~]# ll
total 32
-rw-r--r--. 1 root root 13140 Jul  7 12:23 day03.md
-rw-r--r--. 1 root root 13140 Jul  7 12:23 day03.md.0


```

### 10. sz命令

```bash
#将Linux系统的文件下载到本地 

[root@qls ~]# sz  /etc/hosts




```

### 11. wget命令

```bash
[root@qls ~]# yum  install  -y  wget 

#联网下载软件包  


选项:  

	-O		#指定下载的路径和名称  
	
	-q		#静默输出  
	
	--limit-rate=10k		#限制下载的速率     k  ===KB    m  == MB
	
	

[root@qls ~]# wget  http://www.baidu.com
--2020-07-10 11:57:50--  http://www.baidu.com/
Resolving www.baidu.com (www.baidu.com)... 112.80.248.75, 112.80.248.76
Connecting to www.baidu.com (www.baidu.com)|112.80.248.75|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2381 (2.3K) [text/html]
Saving to: ‘index.html’

100%[===============================================================================>] 2,381       --.-K/s   in 0.008s  

2020-07-10 11:57:51 (290 KB/s) - ‘index.html’ saved [2381/2381]

[root@qls ~]# wget   http://nginx.org/download/nginx-1.18.0.tar.gz
--2020-07-10 12:00:16--  http://nginx.org/download/nginx-1.18.0.tar.gz
Resolving nginx.org (nginx.org)... 95.211.80.227, 62.210.92.35, 2001:1af8:4060:a004:21::e3
Connecting to nginx.org (nginx.org)|95.211.80.227|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1039530 (1015K) [application/octet-stream]
Saving to: ‘nginx-1.18.0.tar.gz’

100%[===============================================================================>] 1,039,530    282KB/s   in 3.6s   

2020-07-10 12:00:20 (282 KB/s) - ‘nginx-1.18.0.tar.gz’ saved [1039530/1039530]

[root@qls ~]# ll
total 1020
-rw-r--r--. 1 root root    2381 Jul 10 11:57 index.html
-rw-r--r--. 1 root root 1039530 Apr 21 22:33 nginx-1.18.0.tar.gz


[root@qls ~]# wget  -O  /opt/nginx.tar.gz  http://nginx.org/download/nginx-1.18.0.tar.gz
--2020-07-10 12:01:41--  http://nginx.org/download/nginx-1.18.0.tar.gz
Resolving nginx.org (nginx.org)... 62.210.92.35, 95.211.80.227, 2001:1af8:4060:a004:21::e3
Connecting to nginx.org (nginx.org)|62.210.92.35|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1039530 (1015K) [application/octet-stream]
Saving to: ‘/opt/nginx.tar.gz’

100%[===============================================================================>] 1,039,530    272KB/s   in 3.7s   

2020-07-10 12:01:46 (272 KB/s) - ‘/opt/nginx.tar.gz’ saved [1039530/1039530]

[root@qls ~]# ll /opt/
total 1016
-rw-r--r--. 1 root root       0 Jul 10 10:32 hostname
-rw-r--r--. 1 root root       0 Jul 10 10:32 hostnamectl
drwxr-xr-x. 2 root root       6 Jul 10 10:39 HOSTNAMECTL
-rw-r--r--. 1 root root 1039530 Apr 21 22:33 nginx.tar.gz


[root@qls ~]# wget  -q  http://nginx.org/download/nginx-1.19.1.tar.gz
[root@qls ~]# ll
total 2100
-rw-r--r--. 1 root root   41240 Mar 23 00:20 032220_1620_Zabbix1.png
-rw-r--r--. 1 root root    9810 Jul  8 00:06 download.html
-rw-r--r--. 1 root root    2381 Jul 10 11:57 index.html
-rw-r--r--. 1 root root 1039530 Apr 21 22:33 nginx-1.18.0.tar.gz
-rw-r--r--. 1 root root 1047223 Jul  7 23:59 nginx-1.19.1.tar.gz



[root@qls ~]# wget   --limit-rate=10k   http://nginx.org/download/nginx-1.18.0.tar.gz ^C
[root@qls ~]# rm -rf ./*
[root@qls ~]# wget   --limit-rate=10k   http://nginx.org/download/nginx-1.18.0.tar.gz
--2020-07-10 12:11:13--  http://nginx.org/download/nginx-1.18.0.tar.gz
Resolving nginx.org (nginx.org)... 62.210.92.35, 95.211.80.227, 2001:1af8:4060:a004:21::e3
Connecting to nginx.org (nginx.org)|62.210.92.35|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1039530 (1015K) [application/octet-stream]
Saving to: ‘nginx-1.18.0.tar.gz’

32% [========================>                                                       ] 335,872     10.0KB/s  eta 70s   




```

### 12. curl命令

```bash
#通过url规则进行文件传输工具  

#测试网站使用的命令  


选项:

		-o			#将访问的数据内容写入到指定的文件中 
        
        -s			#静默输出  
		
		

[root@qls ~]# curl  -o  ./baidu.html    www.baidu.com
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  2381  100  2381    0     0    311      0  0:00:07  0:00:07 --:--:--   657
[root@qls ~]# ll
total 1356
-rw-r--r--. 1 root root    2381 Jul 10 12:15 baidu.html


[root@qls ~]# curl  -s   -o   ./nginx.tar.gz    http://nginx.org/download/nginx-1.18.0.tar.gz





```
# day07

@[toc]
### 1. sort命令

```
#排序  将不相同的行进行排序在一起     默认是根据第一列进行排序  默认是以空白字符为分割符  默认以字母进行排序


选项:

	-k		#指定哪一列为分隔符  
	
	-n		#以数值大小的方式进行排序 
	
	-r		#倒叙排序  

	-t		#指定分割符  
	
cat>sort.txt<<EOF
b   5
c   3
a   11
f   2
d   9
EOF



[root@qls ~]# cat sort.txt 
b   5
c   3
a   11
f   2
d   9
[root@qls ~]# sort sort.txt 
a   11
b   5
c   3
d   9
f   2

[root@qls ~]# sort  -k2   sort.txt 
a   11
f   2
c   3
b   5
d   9
[root@qls ~]# sort  -nk2   sort.txt 
f   2
c   3
b   5
d   9
a   11

[root@qls ~]# sort  -rnk2  sort.txt 
a   11
d   9
b   5
c   3
f   2


[root@qls ~]# cp  /etc/passwd  ./
[root@qls ~]# cat passwd 
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin


[root@qls ~]# sort  -t ":"  -nk3  passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin


cat>file.txt<<EOF
123
abc
123
edf
456
123
abc
EOF


[root@qls ~]# cat file.txt 
123
abc
123
edf
456
123
abc

[root@qls ~]# sort  file.txt 
123
123
123
456
abc
abc
edf


```

### 2. uniq命令

```bash
#去重   去除重复的行   只能去除相同相邻的行     统计   将重复的行的次数统计出来    跟sort结合使用  


|		#管道   将前面命令的执行结果交给后面的命令继续执行   操作的是数据  


选项:

		-c		#统计重复的行的次数 

[root@qls ~]# sort  file.txt 
123
123
123
456
abc
abc
edf

[root@qls ~]# sort  file.txt | uniq  
123
456
abc
edf

[root@qls ~]# sort  file.txt | uniq  -c
      3 123
      1 456
      2 abc
      1 edf


[root@qls ~]# sort  file.txt | uniq  -c | sort  
      1 456
      1 edf
      2 abc
      3 123
[root@qls ~]# sort  file.txt | uniq  -c | sort  -n
      1 456
      1 edf
      2 abc
      3 123
[root@qls ~]# sort  file.txt | uniq  -c | sort  -rn
      3 123
      2 abc
      1 edf
      1 456

```

### 3. cut命令

```bash
#取列      awk命令的小弟    默认的分隔符为tab键 

选项:

		-d		#指定分隔符 
		
		-f		#取出指定的列 
        
        -c		#取出指定的字符  按照行进行处理的  
	
[root@qls ~]# echo "root:x:0:0:root:/root:/bin/bash" >test.txt
[root@qls ~]# cat test.txt
root:x:0:0:root:/root:/bin/bash

#取出第七列
[root@qls ~]# cut  -d ":"  -f7   test.txt 
/bin/bash

#取出第一列和第七列
[root@qls ~]# cut  -d ":"  -f1,7   test.txt 
root:/bin/bash

#取出第五列到第七列
[root@qls ~]# cut  -d ":"  -f5-7   test.txt 
root:/root:/bin/bash

[root@qls ~]# cut  -d  ":"  -f7   passwd 
/bin/bash
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/bin/sync
/sbin/shutdown
/sbin/halt
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
[root@qls ~]# cut  -d  ":"  -f7   passwd  | sort  
/bin/bash
/bin/sync
/sbin/halt
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/nologin
/sbin/shutdown
[root@qls ~]# cut  -d  ":"  -f7   passwd  | sort   | uniq 
/bin/bash
/bin/sync
/sbin/halt
/sbin/nologin
/sbin/shutdown
[root@qls ~]# cut  -d  ":"  -f7   passwd  | sort   | uniq  -c
      1 /bin/bash
      1 /bin/sync
      1 /sbin/halt
     14 /sbin/nologin
      1 /sbin/shutdown
[root@qls ~]# cut  -d  ":"  -f7   passwd  | sort   | uniq  -c | sort -n
      1 /bin/bash
      1 /bin/sync
      1 /sbin/halt
      1 /sbin/shutdown
     14 /sbin/nologin
[root@qls ~]# cut  -d  ":"  -f7   passwd  | sort   | uniq  -c | sort -rn
     14 /sbin/nologin
      1 /sbin/shutdown
      1 /sbin/halt
      1 /bin/sync
      1 /bin/bash


[root@qls ~]# cat test.txt 
root:x:0:0:root:/root:/bin/bash
[root@qls ~]# cut  -c 6  test.txt 
x
[root@qls ~]# cut  -c 6  passwd 
x
:
n
:
4
x
o
x
x
t
#取出不同的字符 
[root@qls ~]# cut  -c 6,8  test.txt 
x0

#取出连续的字符  
[root@qls ~]# cut  -c 1-4  test.txt 
root


#取出系统eth0的IP地址

[root@qls ~]# yum install  -y  net-tools

[root@qls ~]# ifconfig  eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.0.100  netmask 255.255.255.0  broadcast 10.0.0.255
        inet6 fe80::3310:9d15:9ee4:43e8  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:eb:ea:8d  txqueuelen 1000  (Ethernet)
        RX packets 1634  bytes 464970 (454.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1033  bytes 114568 (111.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@qls ~]# ifconfig  eth0 | head  -2
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.0.100  netmask 255.255.255.0  broadcast 10.0.0.255
[root@qls ~]# ifconfig  eth0 | head  -2 | tail  -1 
        inet 10.0.0.100  netmask 255.255.255.0  broadcast 10.0.0.255
[root@qls ~]# ifconfig  eth0 | head  -2 | tail  -1  | cut  -d " "  -f10
10.0.0.100



[root@qls ~]# ip a s eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:eb:ea:8d brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.100/24 brd 10.0.0.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::3310:9d15:9ee4:43e8/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
[root@qls ~]# ip a s eth0  | head  -3
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:eb:ea:8d brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.100/24 brd 10.0.0.255 scope global noprefixroute eth0
[root@qls ~]# ip a s eth0  | head  -3 | tail  -1
    inet 10.0.0.100/24 brd 10.0.0.255 scope global noprefixroute eth0
[root@qls ~]# ip a s eth0  | head  -3 | tail  -1 | cut -c 10-19
10.0.0.100



[root@qls ~]# ip a s eth0  | head  -3 | tail  -1
    inet 10.0.0.100/24 brd 10.0.0.255 scope global noprefixroute eth0
[root@qls ~]# ip a s eth0  | head  -3 | tail  -1 | cut  -d " "  -f6
10.0.0.100/24
[root@qls ~]# ip a s eth0  | head  -3 | tail  -1 | cut  -d " "  -f6 | cut -d "/"  -f1
10.0.0.100

```

### 4. tr命令

```bash

#替换  删除   sed的小弟     只能单对单的替换 

选项:

	-d		#删除指定的字符
	
语法:

	tr   old   new   <   file  


<		#标准输入重定向 


[root@qls ~]# cat test.txt 
root:x:0:0:root:/root:/bin/bash

[root@qls ~]# tr  "0"  "9"  < test.txt 
root:x:9:9:root:/root:/bin/bash

[root@qls ~]# tr  -d  "o"  <  test.txt 
rt:x:0:0:rt:/rt:/bin/bash
[root@qls ~]# 


[root@qls ~]# ip a s eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:eb:ea:8d brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.100/24 brd 10.0.0.255 scope global noprefixroute eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::3310:9d15:9ee4:43e8/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
[root@qls ~]# ip a s eth0 | head -3 | tail -1
    inet 10.0.0.100/24 brd 10.0.0.255 scope global noprefixroute eth0
[root@qls ~]# ip a s eth0 | head -3 | tail -1 | tr  '/'  ' '
    inet 10.0.0.100 24 brd 10.0.0.255 scope global noprefixroute eth0
[root@qls ~]# ip a s eth0 | head -3 | tail -1 | tr  '/'  ' ' | cut  -d " "  -f6
10.0.0.100

```

### 5. wc命令

```bash
#统计    行数  字节数  列数   行的长度  

选项:

	-l		#统计行数 
	
	-w		#统计列数,默认以空白字符为分隔符 
	
	-c		#统计字节数 
	
	-L		#统计文件中最长的行的长度
	
	
[root@qls ~]# wc  passwd 
 18  26 798 passwd
[root@qls ~]# wc -l  passwd 
18 passwd
[root@qls ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
[root@qls ~]# wc  /etc/hosts
  2  10 158 /etc/hosts
[root@qls ~]# wc -w  /etc/hosts
10 /etc/hosts
[root@qls ~]# ll passwd 
-rw-r--r--. 1 root root 798 Jul 13 16:49 passwd
[root@qls ~]# ll /etc/hosts
-rw-r--r--. 1 root root 158 Jun  7  2013 /etc/hosts
[root@qls ~]# wc -c  /etc/hosts
158 /etc/hosts
[root@qls ~]# wc -c  passwd 
798 passwd
[root@qls ~]# 


[root@qls ~]# wc -L  passwd
68 passwd
[root@qls ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
[root@qls ~]# wc -L  /etc/hosts
78 /etc/hosts


[root@qls ~]# name=ewuighrtuighwiorteugh
[root@qls ~]# echo $name
ewuighrtuighwiorteugh
[root@qls ~]# echo $name | wc -L
21

```

### 6. grep命令

```bash
#过滤    给过滤出来的内容加上颜色    按照行进行处理的  


[root@qls ~]# alias 
alias cp='cp -i'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'

#选项:

	-n		#显示出过滤出来的所在文件的行号
	
	-v		#排除,取反
	
	-c		#统计过滤出来的内容的总行数 
	
	-i		#过滤的时候忽略大小写   
	
	-o		#只显示你要过滤的内容
    
    -w		#精确匹配  只过滤你要过滤的单词,而不是包含这个单词的字符串  
    
    -r		#递归过滤  针对目录进行操作  

	-A		#显示出你要过滤的内容及向下多少行的内容 
	
	-B		#显示出你要过滤的内容及向上多少行的内容 
	
	-C		#显示出你要过滤的内容向上向下各多少行 

	^		#以什么开头
	
	$		#以什么为结尾
	
	|		# 或者    扩展正则   
	
	-E		#支持扩展正则   ====  egrep
	
	.		#任意一个字符  排除换行符  
	
	*		#前面的字符出现0次或者0次以上  
	
	.*		#所有  
	
[root@qls ~]# grep  'root'  passwd 
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin


[root@qls ~]# grep  -n  'root'  passwd 
1:root:x:0:0:root:/root:/bin/bash
10:operator:x:11:0:operator:/root:/sbin/nologin


[root@qls ~]# grep  -v  'root'  passwd 
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin


[root@qls ~]# grep 'root'  passwd 
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[root@qls ~]# grep  -c  'root'  passwd 
2


[root@qls ~]# echo "ROOT"  >> passwd 
[root@qls ~]# grep  "root"  passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
[root@qls ~]# grep -i  "root"  passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
ROOT


[root@qls ~]# grep  -o  'root'  passwd 
root
root
root
root


[root@qls ~]# echo  "roottttt"  >>passwd 
[root@qls ~]# grep  'root'  passwd 
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
roottttt
[root@qls ~]# grep  -w  'root'  passwd 
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin


[root@qls ~]# ifconfig  eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.0.100  netmask 255.255.255.0  broadcast 10.0.0.255
        inet6 fe80::3310:9d15:9ee4:43e8  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:eb:ea:8d  txqueuelen 1000  (Ethernet)
        RX packets 3778  bytes 648285 (633.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2329  bytes 260396 (254.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@qls ~]# ifconfig  eth0 | grep  inet
        inet 10.0.0.100  netmask 255.255.255.0  broadcast 10.0.0.255
        inet6 fe80::3310:9d15:9ee4:43e8  prefixlen 64  scopeid 0x20<link>
[root@qls ~]# ifconfig  eth0 | grep -w  inet
        inet 10.0.0.100  netmask 255.255.255.0  broadcast 10.0.0.255
[root@qls ~]# 

#针对一个目录进行操作 

[root@qls ~]# grep  -r  'root'  ./
./passwd:root:x:0:0:root:/root:/bin/bash
./passwd:operator:x:11:0:operator:/root:/sbin/nologin
./passwd:roottttt
./test.txt:root:x:0:0:root:/root:/bin/bash
./data/test.txt:root
./test/test.txt:root
./backup/test.txt:root


[root@qls ~]# grep  -R  'root'  ./
./passwd:root:x:0:0:root:/root:/bin/bash
./passwd:operator:x:11:0:operator:/root:/sbin/nologin
./passwd:roottttt
./test.txt:root:x:0:0:root:/root:/bin/bash
./data/test.txt:root
./test/test.txt:root
./backup/test.txt:root


[root@qls ~]# grep  -A 4  'sync'  passwd 
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin


[root@qls ~]# grep  -B 4  'sync'  passwd 
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync


[root@qls ~]# grep  -C 4  'sync'  passwd 
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin


[root@qls ~]# grep  'root'  passwd 
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
roottttt
[root@qls ~]# grep  '^root'  passwd 
root:x:0:0:root:/root:/bin/bash
roottttt
[root@qls ~]# grep  't$'  passwd 
halt:x:7:0:halt:/sbin:/sbin/halt
roottttt
[root@qls ~]# grep  'adm|mail'  passwd 
[root@qls ~]# grep -E  'adm|mail'  passwd 
adm:x:3:4:adm:/var/adm:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
[root@qls ~]# egrep  'adm|mail'  passwd 
adm:x:3:4:adm:/var/adm:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin


#取出文件中的第5行到第15行 

[root@qls ~]# head  -15  passwd 
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
[root@qls ~]# head  -15  passwd  | tail  -11
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin


[root@qls ~]# grep  'r*'  passwd 
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
ROOT
roottttt



[root@qls ~]# grep  -n  '.*'  passwd 
1:root:x:0:0:root:/root:/bin/bash
2:bin:x:1:1:bin:/bin:/sbin/nologin
3:daemon:x:2:2:daemon:/sbin:/sbin/nologin
4:adm:x:3:4:adm:/var/adm:/sbin/nologin
5:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
6:sync:x:5:0:sync:/sbin:/bin/sync
7:shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
8:halt:x:7:0:halt:/sbin:/sbin/halt
9:mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
10:operator:x:11:0:operator:/root:/sbin/nologin
11:games:x:12:100:games:/usr/games:/sbin/nologin
12:ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
13:nobody:x:99:99:Nobody:/:/sbin/nologin
14:systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
15:dbus:x:81:81:System message bus:/:/sbin/nologin
16:polkitd:x:999:998:User for polkitd:/:/sbin/nologin
17:sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
18:postfix:x:89:89::/var/spool/postfix:/sbin/nologin
19:ROOT
20:roottttt
[root@qls ~]# 
[root@qls ~]# grep  -n  '.*'  passwd  | grep  '^5'
5:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[root@qls ~]# grep  -n  '.*'  passwd  | grep -w  '^5'
5:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
[root@qls ~]# grep  -n  '.*'  passwd  | grep -wA 10  '^5'
5:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
6:sync:x:5:0:sync:/sbin:/bin/sync
7:shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
8:halt:x:7:0:halt:/sbin:/sbin/halt
9:mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
10:operator:x:11:0:operator:/root:/sbin/nologin
11:games:x:12:100:games:/usr/games:/sbin/nologin
12:ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
13:nobody:x:99:99:Nobody:/:/sbin/nologin
14:systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
15:dbus:x:81:81:System message bus:/:/sbin/nologin
[root@qls ~]# 


[root@qls ~]# grep  -n  '.*'  passwd   | grep -Ew   '^8|^10'
8:halt:x:7:0:halt:/sbin:/sbin/halt
10:operator:x:11:0:operator:/root:/sbin/nologin


```

### 7. 总结

```bash
1. sort   	#排序    将相同的行排序在一起    指定某一列继续排序   默认以第一列进行排序 

	选项:
	
		-t		#指定分隔符  默认分隔符为空白字符  
		
		-k		#指定以哪一列进行排序 
		
		-n		#以数值大小进行排序 
		
		-r		#倒叙排序 


2. uniq		#去重  统计   把相邻相同的行进行去重   统计重复的次数 

	选项:
	
		-c		#统计重复的次数 
		
3.cut		#取列    

	选项:
	
		-d		#指定分隔符  ,m默认分隔符为tab键 
		
		-f		#取出指定的列,取出不连续的列使用逗号分割,取出连续的列使用短横杠进行分割 
		
		-c		#取出你指定的字符 取出不连续的列使用逗号分割,取出连续的列使用短横杠进行分割 取出的每一行
		
4. tr		#替换和删除的命令   只能单对单的进行替换 

	选项:
	
		-d		#删除指定的字符 
		
	语法:
	
		tr   旧的字符    新的字符   <  文件名 
		
5. wc		#统计

	选项:
	
		-l		#统计行数  
		
		-w		#统计列数  默认以空白字符为分隔符
		
		-c		#统计字节的大小  
		
		-L		#统计文件中最长的行的长度  字符的数量
		
6. grep		#过滤  给过滤出来的内容加上颜色 

	选项:
	
		-n		#给过滤出来的内容显示所在文件的行号 
		
		-v		#排除,取反 
		
		-i		#过滤的时候,忽略大小写 
		
		-c		#统计过滤出来的内容的行数  
		
		-o		#只显示过滤出来的内容 
		
		-w		#精确匹配,之过滤你要过滤的字符串,而不是包含这个字符串的字符串 
		
		-r		#递归过滤   针对目录进行操作 
		
		-E		#支持扩展正则使用  
		
		-A		#显示过滤出来的内容及向下多少行 
		
		-B		#显示过滤出来的内容及向上多少行 
		
		-C		#显示过滤出来的内容向上向下各多少行
        
        ^		#以什么为开头
        
        $		#以什么为结尾 
        
        |		#或者   扩展正则 
        
        .		#除换行符以外的任意一个字符 
        
        *		#匹配前面的字符出现0次或者0次以上 
        
        .*		#所有  包括空行 
        
        
        
```
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FikL-09-19

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值