第七章 基础命令

cp命令


选项: 
-r          #递归复制  复制目录      
-d          #保持软链接    
-p          #保持属性不变      
-a      === -pdr       
-i          #如果文件存在,提示是否覆盖  系统自带别名    
-t          #把原位置和目标位置的位置进行调换


复制文件或者拷贝文件 [root@sh-qls ~]# cp --help 
cp [OPTION]... SOURCE... DIRECTORY     #正常写法 
cp [OPTION]... -t DIRECTORY SOURCE...

[root@sh-qls ~]# cp  /etc/hosts  ./    #将/etc/hosts文件拷贝到当前目录下 [root@sh-qls ~]# ll 
total 
4 -rw-r--r--. 1 root root 158 Jun 15 12:15 hosts

[root@sh-qls ~]# cp /opt  ./test        #拷贝目录失败  
cp: omitting directory ‘/opt’  
[root@sh-qls ~]# cp -r  /opt  ./test        #-r  递归复制   将/opt拷贝当前目录,并改 名为test 
[root@sh-qls ~]# ll
total 
4 -rw-r--r--. 1 root root 158 Jun 15 12:15 hosts
drwxr-xr-x. 2 rootroot   6 Jun 15 12:16 test

[root@sh-qls ~]# cp -a /opt/  ./        # -a  == -pdr 
[root@sh-qls ~]# ll 
total 
4 lrwxrwxrwx. 1 root root   7 Jun  9 19:55 bin -> usr/bin 
lrwxrwxrwx. 1 root root  22 Jun 15 12:21 grub2.cfg -> ../boot/grub2/grub.cfg
-rw-r--r--. 1 root root 158 Jun 15 12:15 hosts
drwxr-xr-x. 2 root root   6 Apr 11  2018 opt 
drwxr-xr-x. 2 root root  23 Jun 15 12:22 test



[root@sh-qls ~]# ll 
total 12 
-rw-r--r--. 1 root root 4201 Jun 15 12:24 grub2.cfg 
-rw-r--r--. 1 root root  158 Jun 15 12:15 hosts
drwxr-xr-x. 2 root root    6 Apr 11  2018 opt
drwxr-xr-x. 2 root root   23 Jun 15 12:22 test 


[root@sh-qls ~]# cp /etc/hosts  ./    #文件已经存在时,会提示是否覆盖  y  覆盖 n 不 覆盖 
cp: overwrite ‘./hosts’? n 
[root@sh-qls ~]# cp -i  /etc/hosts  ./ 
cp: overwrite ‘./hosts’? n 
[root@sh-qls ~]# alias alias cp='cp -i

[root@sh-qls ~]# cp  -t   ./  /etc/passwd       #把目标位置和原位置进行调换 [root@sh-qls ~]# ll
total 16
-rw-r--r--. 1 root root 4201 Jun 15 12:24 grub2.cfg 
-rw-r--r--. 1 root root  158 Jun 15 12:15 hosts drwxr-xr-x. 2 root root    6 Apr 11  2018 opt 
-rw-r--r--. 1 root root 1013 Jun 15 12:27 passwd
drwxr-xr-x. 2 root root   23 Jun 15 12:22 test 
[root@sh-qls ~]# cp /etc/passwd  ./ 
cp: overwrite‘./passwd’? n 
[root@sh-qls ~]# 

mv命令

 选项:      
 -f          #移动的时候,文件存在时,强制覆盖              
 -i          #文件存在时,提示是否覆盖  系统自带的别名             
 -t          #把原位置跟目标位置进行调换               
 \           #临时取消别名的含义   

#移动或者重命名文件  
[root@sh-qls ~]# mv  --help
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...

[root@sh-qls ~]# mv hosts  /opt     #移动文件 ,原位置的文件已经存在
[root@sh-qls ~]# ll
total 12
-rw-r--r--. 1 root root 4201 Jun 15 12:24 grub2.cfg 
drwxr-xr-x. 2 root root    6 Apr 11  2018 opt
-rw-r--r--. 1 root root 1013 Jun 15 12:27 passwd 
drwxr-xr-x. 2 root root   23 Jun 15 12:22 test

[root@sh-qls ~]# ll /opt/
total 4
-rw-r--r--. 1 root root 158 Jun 15 12:15 hosts

[root@sh-qls ~]# mv test/  /opt/        #移动目录  不需要加任何选项   [root@sh-qls ~]# ll 
-rw-r--r--. 1 root root 4201 Jun 15 12:24 grub2.cfg 
drwxr-xr-x. 2 root root    6 Apr 11  2018 opt
-rw-r--r--. 1 root root 1013 Jun 15 12:27 passwd 

[root@sh-qls ~]# ll /opt/ 
total 4
-rw-r--r--. 1 root root 158 Jun 15 12:15 hosts 
drwxr-xr-x. 2 root root  23 Jun 15 12:22 test

[root@sh-qls ~]# cp /etc/hosts  ./ 
[root@sh-qls ~]# ll 
total 16
-rw-r--r--. 1 root root 4201 Jun 15 12:24 grub2.cfg 
-rw-r--r--. 1 root root  158 Jun 16 09:05 hosts
drwxr-xr-x. 2 root root    6 Apr 11  2018 opt 
-rw-r--r--. 1 root root 1013 Jun 15 12:27 passwd 

[root@sh-qls ~]# mv hosts  /opt/        #文件已经存在时,提示是否覆盖 
mv: overwrite ‘/opt/hosts’? n
[root@sh-qls ~]# mv -i hosts  /opt/
mv: overwrite ‘/opt/hosts’? n 
[root@sh-qls ~]# mv -i hosts  /opt/
mv: overwrite ‘/opt/hosts’? 


[root@sh-qls ~]# alias 
alias cp='cp -i' 
aliasegrep='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' 
aliasls='ls --color=auto' 
alias mv='mv -i'                #系统自带的别名 

[root@sh-qls ~]# mv -f  hosts  /opt/        #强制覆盖  
[root@sh-qls ~]# ll
total 12

[root@sh-qls ~]# \cp  /etc/passwd ./        #临时取消别名的作用 
[root@sh-qls ~]# mv -t  ./  /opt/hosts      #把原位置跟目标位置进行调换 

#重命名 
[root@sh-qls ~]# mv grub2.cfg  123.txt 

rename命令

#重命名的命令   用到的非常少,几乎不用  了解即可

假如有test.txt  


举例 rename  test  123      test.txt       得出这个123.txt文件
	  命令   文件   文件   针对这个个文件重命名文件

rm命令

选项:
   -r      递归删除 

   -f	   强制删除不提示



#删除文件或者目录
[root@sh-qls ~]# rm   123.txt           #提示你是否确认删除 

为什么会提示
[root@sh-qls ~]# alias 
alias rm='rm -i'            #提示是否删除文件  
           
           #-i就是提示你是否删除
           
  [root@sh-qls ~]# rm -f 123.txt      #强制删除不提示  
    
    
    [root@sh-qls ~]# rm -f  test/ 
    rm: cannot remove ‘test/’: Is a directory       #这是个目录 
    
    [root@sh-qls ~]# rm -rf  test/      #递归删除目录 
    
    [root@sh-qls ~]# rm -rf ./      #删除当前所在位置的目录 注意看自己在什么位置
     
    [root@sh-qls ~]# rm -rf ./*     #删除一个目录下的所有内容    排除隐藏文件   确认好自己在 那里   
     
   [root@sh-qls ~]# rm -rf /*      #禁止执行此命令   执行了准备跑路

echo命令

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


选项:

	-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"
 

cat命令

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


选项:

	-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
源文件还在 内容也在   

more命令

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


选项:

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


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

less命令

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


选项:

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

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

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


[root@qls ~]# less -N  services显示行号



[root@qls ~]# less -i  services 在里面搜索时忽略大小写

head命令

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

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


[root@gaofeng ~]# 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@gaofeng ~]# 

举例2:
 [root@gaofeng ~]# 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

举例3:
[root@gaofeng ~]# 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

举例4:
[root@gaofeng ~]# head  -c5  passwd 
root:[root@gaofeng ~]# 

tail命令

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

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

[root@gaofeng ~]# 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@gaofeng ~]# tail  -n 1  passwd
postfix:x:89:89::/var/spool/postfix:/sbin/nologin

===

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


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


[root@gaofeng ~]# 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@gaofeng ~]# echo 'hello'  >> passwd



[root@gaofeng ~]# 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

tailf命令

实时更新文件的内容  


tailf    ====    tail   -f

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


选项:  

	-n			#取消默认输出 
	

locate命令



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

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

选项:

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

/var/lib/mlocate/mlocate.db

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

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




root@gaofeng ~]# locate passwd
/etc/.passwd.swp
/etc/passwd
/etc/passwd-
/etc/pam.d/passwd
/etc/security/opasswd
/root/passwd
/root/1.txt/passwd
/usr/bin/gpasswd


#查找以hostname 结尾的文件
[root@gaofeng ~]# locate -r hostname$
/etc/hostname
/etc/selinux/targeted/active/modules/100/hostname
/usr/bin/hostname
/usr/bin/nmtui-hostname
/usr/lib64/gettext/hostname


#不区分大小写 
root@gaofeng ~]# locate -i hostnamectl
/root/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


which命令

查找命令的绝对路径  

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

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

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

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

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

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

whereis命令

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

选项:

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

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


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

type命令

#显示命令的类型  

选项:

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

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

[root@gaofeng ~]# type ping
ping is /usr/bin/ping
[root@gaofeng ~]# type cp
cp is aliased to `cp -i'



[root@gaofeng ~]# 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

find命令


#查找和搜索文件  

选项:

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


	-name		#根据名称进行查找  
	
	
	-iname		#查找的时候忽略大小写
	
语法:

find   /etc       -type f   -name"hostname"  默认打印 
命令    地区	       类型        名称           动作
	
#在/etc目录下进行查找    查找类型为普通文件    名称为  ifcfg-eth0  精确查找 
[root@gaofeng ~]# find /  -type  f  -name "ifcfg-eth0"
/etc/sysconfig/network-scripts/ifcfg-eth



查找 以ifcfg-eth0开头的文件
[root@gaofeng ~]# find /  -type  f  -name "*ifcfg-eth0"
/etc/sysconfig/network-scripts/ifcfg-eth


查找 以ifcfg-eyh0 结尾的的文件
oot@gaofeng ~]# find /  -type  f  -name "ifcfg-eth0*"
/etc/sysconfig/network-scripts/ifcfg-eth


查找文件名称包含了 ifcfg-eth的文件 

oot@gaofeng ~]# find /  -type  f  -name "*ifcfg-eth0*"
/etc/sysconfig/network-scripts/ifcfg-eth

#查找所有文件,包括隐藏文件
[root@gaofeng ~]# find /  -type  f  -name "*ifcfg-eth0*"
/etc/sysconfig/network-scripts/ifcfg-eth0
/root/.ifcfg-eth0

查找文件名称包括ifcfg-eth0的文件
[root@gaofeng ~]# find /  -type  d  -name "*ifcfg-eth0*"
/root/ifcfg-eth0
/opt/ifcfg-eth0

rz命令

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

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

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

选项:

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

[root@gaofeng ~]# rz

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


[root@gaofeng ~]# rz  -E

[root@gaofeng ~]# 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

sz命令

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

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

wget命令



[root@gaofeng ~]# yum  install  -y  wget 

#联网下载软件包  


选项:  

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

下载百度页面
root@gaofeng ~]# wget www.baidu.com
--2020-07-10 15:36:00--  http://www.baidu.com/
Resolving www.baidu.com (www.baidu.com)... 112.80.248.76, 112.80.248.75
Connecting to www.baidu.com (www.baidu.com)|112.80.248.76|: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 0s      

2020-07-10 15:36:00 (457 MB/s) - ‘index.html’ saved [2381/2381]


#-O用法指定下载的路径和名称

[root@gaofeng ~]# wget  -O  /opt/nginx.tar.gz  http://nginx.org/download/nginx-1.18.0.tar.gz
--2020-07-10 15:40:16--  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’

45% [===============>                    ] 467,889     19.5KB/s  eta 20s    ^C

#静默输出 不显示
[root@gaofeng ~] wget  -q  http://nginx.org/download/nginx-1.19.1.tar.gz

#限制下载的速率 
[root@gaofeng ~] wget   --limit-rate=10k   http://nginx.org/download/nginx-1.18.0.tar.gz

curl命令

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

#测试网站使用的命令  


选项:

		-o			#将访问的数据内容写入到指定的文件中 
        
        -s			#静默输出  
        
    [root@gaofeng ~]# 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@gaofeng ~]# curl  -s   -o   ./nginx.tar.gz    http://nginx.org/download/nginx-1.18.0.tar.gz

sotr命令

sotr:#排序  将不相同的行进行排序在一起     默认是根据第一列进行排序  默认是以空白字符为分割符  默认以字母进行排序
 
语法:
    sort  -rnk2  sort.txt 
    命令   选项    文件名 
   
   
选项:
	-k		#指定哪一列为分隔符  
	
	-n		#以数值大小的方式进行排序 
	
	-r		#倒叙排序  

	-t		#指定分割符  

举例1:以第一列字母进行排序 
[root@qls ~]# cat sort.txt 
b   5
c   3
a   11
f   2
d   9



举例2:以第二列数字进行排列 只看第一个数字
[root@qls ~]# sort  -k2   sort.txt 
a   11
f   2
c   3
b   5
d   9
举例3:以第二列数字大小进行排列 
[root@qls ~]# sort  -nk2   sort.txt 
f   2
c   3
b   5
d   9
a   11
举例5 以第二列数字大小倒叙进行排列 
[root@qls ~]# sort  -rnk2  sort.txt 
a   11
d   9
b   5
c   3
f   2

uniq命令

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


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


sort  file.txt   |    uniq  -c     |    sort  -n
命令   文件名    管道符  命令  选项  管道符  命令  选项
 
 
选项:

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



举例1:以第一列进行排序	
		[root@qls ~]# sort  file.txt 
123
123
123
456
abc
abc
edf
2 去掉重复的行
[root@qls ~]# sort  file.txt | uniq  
123
456
abc
edf

3统计重复行的次数
[root@qls ~]# sort  file.txt | uniq  -c
      3 123
      1 456
      2 abc
      1 edf
4:统计重复行以数值大小的方式进行排序 
[root@qls ~]# sort  file.txt | uniq  -c | sort  -n
      1 456
      1 edf
      2 abc
      3 123
      
5:统计重复行以数值大小的方式进行倒叙排序
[root@qls ~]# sort  file.txt | uniq  -c | sort  -rn
      3 123
      2 abc
      1 edf
      1 456

cut命令

 cut: awk命令的小弟    默认的分隔符为tab键 
 
选项:

		-d		#指定分隔符 
		
		-f		#取出指定的列 
        
        -c		#取出指定的字符  按照行进行处理的   
 
 语法:
 
 cut   -d ":"      -f 1,7      6.txt
 命令  指定分隔符    取出指定的列  文件名
 
#查看文件
[root@gaofeng ~]# cat 6.txt
root:x:0:0:root:/root:/bin/bash

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



#取出第一列和第七列
[root@gaofeng ~]# cut -d ":"  -f1,7  6.txt
root:/bin/bash
 
#取出第五列到第七列
[root@gaofeng ~]# cut -d ":"  -f5-7  6.txt
root:/root:/bin/bash

 #取出passwd文件中的第七咧 以冒号为分割符 以第一列进行排序 统计重复的行的次数 以数值的大小进行排序排序
 [root@gaofeng ~]# cut  -d  ":"  -f7   passwd      | sort   |   uniq  -c    |    sort -rn
  			
 #取出不同的字符       
        
  [root@gaofeng ~]# cut -c 7 passwd
:
1
:
3
:
:
w
:
:
o
x
1
:
d
:
d
:
x
			
#取出不同的字符 
[root@qls ~]# cut  -c 6,8  test.txt 
x0

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

#取出ip地址 
 [root@gaofeng ~]# ifconfig eth0 
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 10.0.0.250  netmask 255.255.255.0  broadcast 10.0.0.255
        inet6 fe80::5356:2ac5:e050:737a  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:61:38:85  txqueuelen 1000  (Ethernet)
        RX packets 1142  bytes 101353 (98.9 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 781  bytes 85028 (83.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

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



tr命令

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

选项:

	-d		#删除指定的字符
	
语法:
    tr    old     new    <    file  
   命令   旧字符	  新字符  		文件名

#查看源文件
[root@gaofeng ~]# cat 6.txt
root:x:0:0:root:/root:/bin/bash


<		#标准输入重定向 
 
# 替换指定字符 只能单对单的替换
  [root@gaofeng ~]# tr "o" "1"  <6.txt
r11t:x:0:0:r11t:/r11t:/bin/bash

#删除指定字符
[root@gaofeng ~]# tr -d "o" < 6.txt
rt:x:0:0:rt:/rt:/bin/bash
			
            	#  查看ip地址    取出前三行   在取出倒数第一行 把/替换成空格 在以空格为分隔符取出ip
[root@gaofeng ~]# ip a s  eth0  |head -3   |tail -1      | tr '/' ' '| cut -d " " -f6
10.0.0.250



wc命令

wc #统计    行数  字节数  列数   行的长度  

选项:

	-l		#统计行数 
	
	-w		#统计列数,默认以空白字符为分隔符 
	
	-c		#统计字节数 
	
	-L		#统计文件中最长的行的长度


语法:[root@gaofeng ~]#  wc   -wlc  passwd
						命令  选项  文件名

#统计行数 ,列数(默认以空白字符为分隔符 )字节数 #统计文件中最长的行的长度
[root@gaofeng ~]# wc -lwcL passwd
 18  26 798  68 passwd

 

#统计行数 
	[root@gaofeng ~]# wc -l passwd
18 passwd

#统计列数,默认以空白字符为分隔符 
[root@gaofeng ~]# wc -w passwd
26 passwd

#统计字节数
root@gaofeng ~]# wc -c passwd
798 passwd


#统计文件中最长的行的长度
[root@gaofeng ~]# wc -L passwd
68 passwd

posted @ 2022-09-09 14:03  高压锅炖主播  阅读(16)  评论(0编辑  收藏  举报