文件管理基础命令

pwd 显示当前目录绝对路径

 pwd            #显示当前工作目录的绝对路径    告诉我,你在哪里
[root@CentOS7 usr]# pwd
/usr
[root@CentOS7 usr]# cd local
[root@CentOS7 local]# pwd
/usr/local

 

cd 切换工作目录

cd          #切换工作目录   切换路径 
[root@CentOS7 local]# cd #直接切换到当前用户的家目录
[root@CentOS7 ~]#
[root@CentOS7 ~]# cd ~ #切换当前用户的家目录   ====   cd /root

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

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

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

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

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

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

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

 

ls 显示文件或者目录列表信息

ls      #显示文件或者目录列表信息      打开目录  显示目录里面的内容  
常用选项:
   -l #以长格式形式显示文件或者目录的详细属性信息  

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

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

[root@CentOS7 ~]# ls -l     #以长格式形式显示文件或者目录的详细属性信息
total 4
-rw-------. 1 root root 1429 Jul  6 02:17 anaconda-ks.cfg

[root@CentOS7 ~]# ls -li     #以长格式形式显示文件或者目录的详细属性信息及inode信息   索引节点信息
total 4
134317667 -rw-------. 1 root root 1429 Jul  6 02:17 anaconda-ks.cfg

[root@CentOS7 ~]# ll -h     #以字节大小的形式显示文件大小   B   KB   MB   GB
total 4.0K
-rw-------. 1 root root 1.4K Jul  6 02:17 anaconda-ks.cfg

[root@CentOS7 ~]# ll -a     #显示所有的文件,隐藏文件 所有以点开头的文件就是隐藏文件
total 28
dr-xr-x---.  2 root root  127 Jul  8 12:24 .
dr-xr-xr-x. 17 root root  224 Jul  6 09:33 ..
-rw-r--r--.  1 root root    8 Jul  8 12:24 1.txt
-rw-------.  1 root root 1458 Jul  6 09:34 anaconda-ks.cfg
-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@CentOS7 ~]# ll -aS     #显示所有文件包含隐藏文件并从大到小显示
total 28
-rw-------.  1 root root 1458 Jul  6 09:34 anaconda-ks.cfg
dr-xr-xr-x. 17 root root  224 Jul  6 09:33 ..
-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  129 Dec 29  2013 .tcshrc
dr-xr-x---.  2 root root  127 Jul  8 12:24 .
-rw-r--r--.  1 root root  100 Dec 29  2013 .cshrc
-rw-r--r--.  1 root root   18 Dec 29  2013 .bash_logout
-rw-r--r--.  1 root root    8 Jul  8 12:24 1.txt

[root@CentOS7 ~]# ll -aSr     #显示所有文件包含隐藏文件并从小到大显示
total 28
-rw-r--r--.  1 root root    8 Jul  8 12:24 1.txt
-rw-r--r--.  1 root root   18 Dec 29  2013 .bash_logout
-rw-r--r--.  1 root root  100 Dec 29  2013 .cshrc
dr-xr-x---.  2 root root  127 Jul  8 12:24 .
-rw-r--r--.  1 root root  129 Dec 29  2013 .tcshrc
-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 09:33 ..
-rw-------.  1 root root 1458 Jul  6 09:34 anaconda-ks.cfg

[root@CentOS7 ~]# ll -at     #显示所有文件包含隐藏文件并根据时间进行排序 最新的时间在最上面
total 28
-rw-r--r--.  1 root root    8 Jul  8 12:24 1.txt
dr-xr-x---.  2 root root  127 Jul  8 12:24 .
-rw-------.  1 root root 1458 Jul  6 09:34 anaconda-ks.cfg
dr-xr-xr-x. 17 root root  224 Jul  6 09:33 ..
-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@CentOS7 ~]# 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 09:33 ..
-rw-------.  1 root root 1458 Jul  6 09:34 anaconda-ks.cfg
dr-xr-x---.  2 root root  127 Jul  8 12:24 .
-rw-r--r--.  1 root root    8 Jul  8 12:24 1.txt

[root@CentOS7 ~]# ll -aF     #显示所有文件包含隐藏文件并给不同的文件加上不同的标识符
total 28
dr-xr-x---.  2 root root  127 Jul  8 12:24 ./
dr-xr-xr-x. 17 root root  224 Jul  6 09:33 ../
-rw-r--r--.  1 root root    8 Jul  8 12:24 1.txt
-rw-------.  1 root root 1458 Jul  6 09:34 anaconda-ks.cfg
-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@CentOS7 ~]# ll -d /root     #显示目录本身信息
dr-xr-x---. 2 root root 127 Jul  8 12:24 /root

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

 

stat 详细显示文件的属性

stat          #详细显示文件的属性信息
选项:
    -c     #指定格式输出   %a 以8进制显示文件的权限
[root@CentOS7 ~]# stat passwd
File: ‘passwd’
Size: 798       Blocks: 8         IO Block: 4096   regular file
Device: 803h/2051d Inode: 134317678   Links: 1
Access: (0644/-rw-r--r--) Uid: (    0/   root)   Gid: (    0/   root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2020-07-14 19:13:16.904691535 +0800
Modify: 2020-07-14 19:13:12.935691465 +0800
Change: 2020-07-14 19:13:12.935691465 +0800
Birth: -

# -c 指定格式输出   %a 以8进制显示文件的权限  
[root@CentOS7 ~]# stat -c %a passwd
644

 

file 详细显示文件的信息

file        #详细显示文件的信息  
[root@CentOS7 ~]# file passwd
passwd: ASCII text    #标准文件

[root@CentOS7 ~]# file /opt/
/opt/: directory       #目录

[root@CentOS7 ~]# file /bin/ls
/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=ceaf496f3aec08afced234f4f36330d3d13a657b, stripped

[root@CentOS7 ~]# ll /bin/ls
-rwxr-xr-x. 1 root root 117680 Oct 31  2018 /bin/ls

[root@CentOS7 ~]# file /etc/grub2.cfg
/etc/grub2.cfg: symbolic link to `../boot/grub2/grub.cfg'

[root@CentOS7 ~]# file /dev/log
/dev/log: socket

[root@CentOS7 ~]# file /run/systemd/initctl/fifo
/run/systemd/initctl/fifo: fifo (named pipe)

 

tree 树状形式显示目录列表

tree            #以树状形式显示目录列表
#tree命令软件包
yum install  -y tree    
选项:
    -a #显示所有文件或者目录 隐藏文件
    -d #只显示目录及目录的数量
    -h #显示文件的大小  
    -F #给不同类型的文件加上不同的标识符
    -L    #层级显示
    / #目录
    * #可执行文件  
    = #套接字文件 socker文件  
    | #管道文件  
   
 
[root@CentOS7 ~]# tree
.
├── 1.txt
└── anaconda-ks.cfg

0 directories, 2 files

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

0 directories, 7 files

[root@CentOS7 ~]# tree -d /var/log     #只显示目录及目录的数量
/var/log
├── anaconda
├── audit
├── rhsm
└── tuned

4 directories

[root@CentOS7 ~]# tree -h /var/log     #显示文件大小
/var/log
├── [ 176] anaconda
│   ├── [ 27K] anaconda.log
│   ├── [3.9K] ifcfg.log
│   ├── [1.5M] journal.log
│   ├── [   0] ks-script-1jLLxc.log
│   ├── [197K] packaging.log
│   ├── [ 29K] program.log
│   ├── [121K] storage.log
│   ├── [275K] syslog
│   └── [ 21K] X.log

[root@CentOS7 ~]# tree -L 2 /   #只显示 n 层目录 (n 为数字)
/
├── bin -> usr/bin
├── boot
│?? ├── config-3.10.0-957.el7.x86_64
│?? ├── efi
│?? ├── grub
│?? ├── grub2
│?? ├── initramfs-0-rescue-73dc23c3ad884fa58a6392e44d25cfd0.img
│?? ├── initramfs-3.10.0-957.el7.x86_64.img
│?? ├── symvers-3.10.0-957.el7.x86_64.gz
│?? ├── System.map-3.10.0-957.el7.x86_64
│?? ├── vmlinuz-0-rescue-73dc23c3ad884fa58a6392e44d25cfd0
│?? └── vmlinuz-3.10.0-957.el7.x86_64

 

mkdir 创建目录

mkdir            #创建目录
选项:
      -p #创建多级目录 递归创建   当目录已经存在时,再次创建不会提示报错  

-v #显示创建的过程  

-m #创建的时候,给目录设置一个权限  


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

* #通配符   所有的意思


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

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

[root@CentOS7 ~]# mkdir /data #使用绝对路径进行创建
[root@CentOS7 ~]# ll /
total 20
lrwxrwxrwx.   1 root root    7 Jul  6 09:29 bin -> usr/bin
dr-xr-xr-x.   5 root root 4096 Jul  6 09:34 boot
drwxr-xr-x.   2 root root    6 Jul  8 22:56 data
drwxr-xr-x.  19 root root 3200 Jul  8 08:20 dev
drwxr-xr-x.  80 root root 8192 Jul  8 22:47 etc
drwxr-xr-x.   3 root root   17 Jul  7 08:45 home

[root@CentOS7 ~]# mkdir data #使用相对路径进行创建    
[root@CentOS7 ~]# ll
total 8
-rw-r--r--. 1 root root    8 Jul  8 12:24 1.txt
-rw-------. 1 root root 1458 Jul  6 09:34 anaconda-ks.cfg
drwxr-xr-x. 2 root root    6 Jul  8 22:57 data

[root@CentOS7 ~]# mkdir -p /root/data   #当目录已经存在时,再次创建不会提示报错  

[root@CentOS7 ~]# mkdir -v data01       #显示创建的过程  
mkdir: created directory ‘data01’

[root@CentOS7 ~]# mkdir -m 700 data02   #创建的时候,给目录设置一个权限  
[root@CentOS7 ~]# ll
total 8
-rw-r--r--. 1 root root    8 Jul  8 12:24 1.txt
-rw-------. 1 root root 1458 Jul  6 09:34 anaconda-ks.cfg
drwxr-xr-x. 2 root root    6 Jul  8 22:57 data
drwxr-xr-x. 2 root root    6 Jul  8 23:01 data01
drwx------. 2 root root    6 Jul  8 23:02 data02

[root@CentOS7 ~]# mkdir test/data{01..04}     #批量创建目录
[root@CentOS7 ~]# ll test
total 0
drwxr-xr-x. 2 root root 6 Jul  8 23:03 data01
drwxr-xr-x. 2 root root 6 Jul  8 23:03 data02
drwxr-xr-x. 2 root root 6 Jul  8 23:03 data03
drwxr-xr-x. 2 root root 6 Jul  8 23:03 data04

 

touch 创建文件

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

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

[root@CentOS7 ~]# touch data.{txt,sh,log,xml,tar,py,js}
[root@CentOS7 ~]# 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@CentOS7 ~]# touch data{01..10}.txt
[root@CentOS7 ~]# 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
                                                       

 

cp 复制,拷贝

cp       #复制,拷贝  

语法:

命令     源文件     目标目录

选项:

-r #递归复制   复制目录时所使用的

-p #保持源文件属性

-d #复制的时候保持软连接

-a   ===  -pdr  #保留原文件属性的前提下复制文件

-t #把源文件的位置跟目标目录的位置进行调换   在批量拷贝文件时使用

-i #当拷贝的文件在目标目录已经存在时,提示是否覆盖     系统自带的别名

[root@CentOS7 ~]# cp /etc/hosts /root
[root@CentOS7 ~]# cp /etc/passwd   ./
[root@CentOS7 ~]# cp /etc/resolv.conf .
[root@CentOS7 ~]# ll
total 20
-rw-r--r--. 1 root root  158 Jul  9 15:32 hosts
-rw-r--r--. 1 root root 1011 Jul  9 15:32 passwd
-rw-r--r--. 1 root root   51 Jul  9 15:33 resolv.conf

[root@CentOS7 ~]# cp /opt/ ./
cp: omitting directory ‘/opt/’
[root@CentOS7 ~]# cp -r /opt/ ./     # -r 复制目录使用
[root@CentOS7 ~]# ll
total 20
drwxr-xr-x. 2 root root    6 Jul  9 15:38 opt

[root@CentOS7 ~]# ll /etc/grub2.cfg
lrwxrwxrwx. 1 root root 22 Jul  6 02:14 /etc/grub2.cfg -> ../boot/grub2/grub.cfg
[root@CentOS7 ~]# cp /etc/grub2.cfg ./
[root@CentOS7 ~]# 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@CentOS7 ~]# rm -f grub2.cfg
[root@CentOS7 ~]# cp -d /etc/grub2.cfg   ./     #-d 复制的时候保持软连接
[root@CentOS7 ~]# 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@CentOS7 ~]# cp -t ./   /etc/fstab   #把源文件的位置根目标目录的位置进行调换   在批量拷贝文件时使用
[root@CentOS7 ~]# 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@CentOS7 ~]# alias   #当拷贝的文件在目标目录已经存在时,提示是否覆盖 系统自带的别名
alias cp='cp -i'

#强制覆盖不提示   临时取消别名
[root@CentOS7 ~]# cp /etc/hosts ./

 

mv 移动和重命名文件

mv       #移动和重命名文件 
语法:

命令     源文件   目标目录  

选项:

-i #当文件已经存在时,移动的时候,提示是否覆盖目标文件   系统自带别名
[root@CentOS7 ~]# alias
alias mv='mv -i'

-f #强制覆盖,不提示  

-t #把源文件的位置跟目标目录的位置进行调换

#强制覆盖不提示
[root@CentOS7 ~]# mv /opt/hosts   ./

[root@CentOS7 ~]# mv -f /opt/hosts   ./
[root@CentOS7 ~]# 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@CentOS7 ~]# 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@CentOS7 ~]# mv -t /opt/   ./hosts   #把源文件的位置跟目标目录的位置进行调换
[root@CentOS7 ~]# ll
total 0
drwxr-xr-x. 2 root root 6 Jul  9 09:59 mnt
[root@CentOS7 ~]# 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@CentOS7 ~]# mv mnt/   mot
[root@CentOS7 ~]# ll
total 0
drwxr-xr-x. 2 root root 6 Jul  9 09:59 mot
[root@CentOS7 ~]# mv /opt/hosts   ./host
[root@CentOS7 ~]# 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

 

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

 rename    #利用替换字符串的方式进行重命名 


[root@CentOS7 ~]# rename   test   oldboy   test.txt
[root@CentOS7 ~]# 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

 

rm 删除

rm      #删除命令     特别危险
选项:

-i    #在删除文件的时候,提示你是否确认删除   系统别名

-f #强制删除不提示  

-r #删除目录使用 递归删除  

[root@CentOS7 ~]# 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@CentOS7 ~]# rm host
rm: remove regular file ‘host’? n
[root@CentOS7 ~]# 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@CentOS7 ~]# 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@CentOS7 ~]# rm -f   host         #强制删除文件不提示
[root@CentOS7 ~]# 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@CentOS7 ~]# rm -rf mot/       #强制删除目录,文件不提示
[root@CentOS7 ~]# ll
total 0
-rw-r--r--. 1 root root 0 Jul  9 10:08 oldboy.txt

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

 

echo 打印输出文件 创建新文件 修改文件

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

选项:

-n #不自动换行

-e #支持一些特殊字符的使用   #换行符   #tab键  
   
 
[root@CentOS7 ~]# echo hello world
hello world
[root@CentOS7 ~]# echo -n   hello world
hello world[root@CentOS7 ~]#

#定义和打印变量
[root@CentOS7 ~]# Name=zzc
[root@CentOS7 ~]# Name
-bash: Name: command not found
[root@CentOS7 ~]# echo $Name
zzc

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


#创建新文件  
>   #标准输出重定向   如果文件不存在,会自动创建,如果文件存在,会首先把文件的内容清空,然后再把你要输出的内容重定向进去  
[root@CentOS7 ~]# echo 1 > test.txt
[root@CentOS7 ~]# 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@CentOS7 ~]# cat test.txt
1

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


>> #标准输出追加重定向 如果文件不存在,会自动创建,如果文件存在,会把你要输出的内容追加到文件的底部
[root@CentOS7 ~]# echo 3 >> test.txt
[root@CentOS7 ~]# cat test.txt
2
3

[root@CentOS7 ~]# echo -e "hello world"     #支持一些特殊字符的使用     #tab键
hello
world

[root@CentOS7 ~]# echo -e "1 2 3"       #     换行符
1
2
3
[root@CentOS7 ~]# echo -e "1 2 3" > oldboy.txt
[root@CentOS7 ~]# cat oldboy.txt
1
2
3

字颜色:30—–37

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

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

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

cat 显示文件内容 创建新文件 修改文件 合并文件

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

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

-A #给显示的文件内容的每行结尾加上一个标识符  

[root@CentOS7 ~]# 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@CentOS7 ~]# 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@CentOS7 ~]# 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@CentOS7 ~]# cat >1.txt<<EOF
> 123
> EOF
[root@CentOS7 ~]# cat 1.txt
123

>> #标准输出追加重定向 如果文件不存在,会自动创建,如果文件存在,会把你要输出的内容追加到文件的底部
[root@CentOS7 ~]# cat >>1.txt<<EOF  
> 456
> EOF
[root@CentOS7 ~]# cat 1.txt
123
456


#将多个文件合并为一个文件
[root@CentOS7 ~]# cat 1.txt
123
456
789
qwrw
[root@CentOS7 ~]# cat test.txt
qwewrrew
[root@CentOS7 ~]# cat 1.txt test.txt
123
456
789
qwrw
qwewrrew

[root@CentOS7 ~]# cat test.txt 1.txt > 2.txt   #合并两个文件并新建文件
[root@CentOS7 ~]# cat 2.txt
qwewrrew
123
456
789
qwrw

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

 more      #分页显示文件内容    文件显示完成之后,会自动退出
选项:
-num #num是数字   指定一页显示多少行

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

操作:
空格或者f键 #向下翻页

b键   #向上翻页

回车  #向下一行  

h   #帮助信息

q   #退出  

/xxx   #搜索你要搜索的内容   搜索出来的内容不会高亮显示
  n   #向下查找   不能向上查找
  =   #显示当前光标所在的行号

[root@CentOS7 ~]# more services


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


[root@CentOS7 ~]# 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 分页显示文件内容 文件显示完成之后,不会自动退出

less     #分页显示文件内容     文件显示完成之后,不会自动退出
选项:
   -N #显示文件内容的时候,加上行号  
   
   -i #在搜索的时候,忽略大小写  

操作:
空格或者f键 #向下翻页

b键 #向上翻页

回车   #向下一行

q #退出

h #显示帮助

/xxxx #搜索指定的内容   会把搜索出来的内容高亮显示  
  n   #向下查找
  N   #向上查找
  =   #显示当前页的内容是由哪些行组成的 显示总行数 显示文件从开头到当前行总共显示了多少字节内容   总字节大小


[root@CentOS7 ~]# less -N services   #显示文件内容的时候,加上行号

[root@CentOS7 ~]# less -i services   #在搜索的时候,忽略大小写

 

head 默认显示文件头部前十行内容

head        #显示文件头部信息,默认显示前十行内容
选项:
-nN       #(数字) 取消默认输出,可以简写 ===  -num
 
 -cN      #(数字) 显示文件的前几个字符
 
[root@CentOS7 ~]# 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@CentOS7 ~]# head -n 2 passwd   #显示文件头部前两行内容
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[root@CentOS7 ~]# head -2 passwd    # -num   === -n  num
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin

[root@CentOS7 ~]# head -c 5 passwd   #显示文件头部前几个字符
root:[root@CentOS7 ~]#

 

tail 默认显示文件尾部最后十行内容 实时显示文件的尾部变化

tail        #显示文件尾部信息,默认显示文件最后十行内容
选项:
 -nN      #(数字) 取消默认输出,可以简写  ===  -num
 
 -cN      #(数字) 显示文件的最后几个字符,默认最后有个换行符,  换行符也是一个字符
 
 -f       #实时显示文件的尾部变化信息  实时查看文件内容的更新,当文件不存在时,会报错退出
 
 -F       #实时更新文件的内容,当文件不存在,不会退出,会一直尝试读取这个文件,直到文件存在
 
 
[root@CentOS7 ~]# tail  passwd
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
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin

[root@CentOS7 ~]# tail -n 2 passwd     #显示文件尾部最后两行内容
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
[root@CentOS7 ~]# tail -3 passwd       # -num === -n num  
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin

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


#新建窗口进行测试
2.[root@CentOS7 ~]# echo 'hello' >> passwd

1.[root@CentOS7 ~]# tail -f passwd        #实时显示文件的尾部变化信息
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
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin
hello

[root@CentOS7 ~]# tail -f test.log      #实时查看文件内容的更新,当文件不存在时,会报错退出
tail: cannot open ‘test.log’ for reading: No such file or directory
tail: no files remaining
[root@CentOS7 ~]# tail -F test.log      #实时更新文件的内容,当文件不存在,不会退出,会一直尝试读取这个文件,直到文件存在
tail: cannot open ‘test.log’ for reading: No such file or directory


tailf	    #实时输出文件内容  监控日志   ===  tail   -f
选项:
 -nN      #(数字) 取消默认输出,可以简写  ===  -num

 

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

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

#locate 命令安装包
yum  install  -y  mlocate

选项:
         -i		  #不区分大小写  
		
		-r	      #简单使用正则表达式   $  结尾  
		
[root@CentOS7 ~]# updatedb		#更新数据库  

[root@CentOS7 ~]# locate passwd    #把系统中所有文件名称包含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/include/rpcsvc/yppasswd.h
/usr/include/rpcsvc/yppasswd.x
/usr/lib/firewalld/services/kpasswd.xml
/usr/lib64/security/pam_unix_passwd.so

#创建一个新文件,正常情况下使搜索不到的   因为本地数据库表是一天更新一次  需要手动更新
[root@CentOS7 ~]# touch test.txt
[root@CentOS7 ~]# ll
total 4
-rw-r--r--. 1 root root 980 Jul 10 14:35 passwd
drwxr-xr-x. 2 root root   6 Jul 10 12:04 test
-rw-r--r--. 1 root root   0 Jul 10 15:00 test.txt
[root@CentOS7 ~]# locate test.txt
[root@CentOS7 ~]# updatedb
[root@CentOS7 ~]# locate test.txt
/root/test.txt

[root@CentOS7 ~]# touch TEST.TXT
[root@CentOS7 ~]# ll
total 4
-rw-r--r--. 1 root root 980 Jul 10 14:35 passwd
drwxr-xr-x. 2 root root   6 Jul 10 12:04 test
-rw-r--r--. 1 root root   0 Jul 10 15:00 test.txt
-rw-r--r--. 1 root root   0 Jul 10 15:01 TEST.TXT
[root@CentOS7 ~]# updatedb
[root@CentOS7 ~]# locate test.txt
/root/test.txt
[root@CentOS7 ~]# locate -i test.txt     #搜索内容时不区分大小写
/root/TEST.TXT
/root/test.txt

[root@CentOS7 ~]# locate -r txt$        #搜索时以什么为结尾的内容需加$符为结尾
/etc/pki/nssdb/pkcs11.txt
/root/test.txt
/usr/lib/firmware/TDA7706_OM_v2.5.1_boot.txt
/usr/lib/firmware/TDA7706_OM_v3.0.2_boot.txt
/usr/lib/firmware/ivtv-firmware-license-end-user.txt
/usr/lib/firmware/ivtv-firmware-license-oemihvisv.txt
/usr/lib/firmware/ar3k/1020200/RamPatch.txt
/usr/lib/firmware/ar3k/1020201/RamPatch.txt
/usr/lib/firmware/ar3k/30000/RamPatch.txt
/usr/lib/firmware/ar3k/30101/RamPatch.txt

 

which 查找命令的绝对路径

which     #查找命令的绝对路径

[root@CentOS7 ~]# which cd
/usr/bin/cd

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

#查找命令来源于哪个软件
[root@CentOS7 ~]# rpm -qf `which tree`
tree-1.6.0-10.el7.x86_64
[root@CentOS7 ~]# rpm -qf `which locate`
mlocate-0.26-8.el7.x86_64
[root@CentOS7 ~]# rpm -qf /usr/bin/tree
tree-1.6.0-10.el7.x86_64
[root@CentOS7 ~]# rpm -qf /usr/bin/locate
mlocate-0.26-8.el7.x86_64

 

whereis 查找系统二进制程序,man帮助文件,源代码文件

whereis     #查找系统二进制程序、man帮助文件、源代码文件     查找不到自己创建的文件
选项:
  -b         #只查找二进制程序文件
 
  -m		#查找man帮助文件
 
  -s		#查找源代码文件  
  
[root@CentOS7 ~]# whereis ping
ping: /usr/bin/ping /usr/share/man/man8/ping.8.gz
[root@CentOS7 ~]# whereis cp
cp: /usr/bin/cp /usr/share/man/man1/cp.1.gz
#以上输出信息从左至右分别为查询的程序名、bash路径、bash的man 手册页路径。

[root@CentOS7 ~]# whereis -b cp   #显示cp命令的二进制程序
cp: /usr/bin/cp              # cp命令的二进制程序的地址

[root@CentOS7 ~]# whereis -m cp    #显示cp命令的man帮助文件
cp: /usr/share/man/man1/cp.1.gz    #cp命令的帮助文件地址

 

type 显示命令的类型

type      #显示命令的类型
选项:
    -a		#显示内置命令的绝对路径  
	
	-p		#只显示命令的绝对路径
	
# help 命令可以显示系统中所有的内置命令 	

[root@CentOS7 ~]# type cd   
cd is a shell builtin      #内置命令
[root@CentOS7 ~]# type -a cd   #显示内置命令的绝对路径
cd is a shell builtin   
cd is /usr/bin/cd

[root@CentOS7 ~]# type ping
ping is /usr/bin/ping
[root@CentOS7 ~]# type -p ping   #只显示命令的绝对路径
/usr/bin/ping
[root@CentOS7 ~]# type -ap cp    #显示内置命令的绝对路径 内置命令必须加a
/usr/bin/cp

find 查找和搜索文件

find      #文件查找命令包括隐藏文件     指定路径查找   根据名称  大小  权限  时间等查找 
选项:
  -type			#根据类型查找 

	   f		    #普通文件
	
	   d		    #目录
	
  -name			#根据名称进行查找  

	   "*xxx"	#以任意开头的,xxx为结尾的文件 
		
	   "xxx*"	#以xxx开头,任意字符为结尾的文件  
		
	   "*xxx*"	#查找文件名称中包含xxx的

  -iname		#查找的时候忽略大小写  

  -maxdepth	    #查找目录的层级  根据目录层级进行查找

   *		    #特殊符号  通配符  不是正则     所有的意思

                  命令   目录    类型   普通文件   根据名称   叫什么名字
[root@CentOS7 ~]# find   /etc   -type      f      -name     "hostname"		#精确查找 
/etc/hostname
                  命令    目录   类型     目录     忽略大小写   名字
[root@CentOS7 ~]# find   /root  -type      d      -iname      "zzc"
/root/zzc
/root/ZZC

#查找以hostname开头的文件   "xxx*"	#以xxx开头,任意字符为结尾的文件
[root@CentOS7 ~]# find  /opt/    -name  "hostname*" 
/opt/hostname
/opt/hostnamectl

#查找以hostname为结尾的文件  "*xxx"	#以任意开头的,xxx为结尾的文件 
[root@CentOS7 ~]# find   /opt/  -name  "*hostname"
/opt/hostname
/opt/test_hostname

#查找文件名称包含hostname的文件包括隐藏文件    "*xxx*"  #查找文件名称中包含xxx的
[root@CentOS7 ~]# find  /opt/  -name "*hostname*"
/opt/hostname
/opt/hostnamectl
/opt/test_hostname
/opt/test_hostname.txt

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

#查找根目录下前四个目录的所有已oldbboy开头的文件
[root@CentOS7 ~]# find / -maxdepth 4 -type f -name "oldboy*"
/etc/oldboy.txt
/root/oldboy.txt
/test/123/456/oldboy.txt

#根据目录的层级查找
[root@CentOS7 ~]# find  /  -maxdepth  2   -type  d   -name  "hostname"
/root/hostname
[root@CentOS7 ~]# 

 

rz 上传

rz      #将本地的文件上传到Linux操作系统
#不能上传目录,需要将目录打成一个压缩包进行上传     只能上传 4G以下的文件

#rz上传 sz下载命令安装包
[root@CentOS7 ~]# yum  install  lrzsz   -y

选项:
   -E   #当上传的文件已经存在时,系统会进行重命名   会在原来的文件名称后面加上.数字  从0开始
   
[root@CentOS7 ~]# rz  -E
[root@CentOS7 ~]# 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 下载

sz          #将Linux系统的文件下载到本地
[root@CentOS7 ~]# sz passwd

 

wget 联网下载

wget     #联网下载

#软件包
[root@CentOS7 ~]# yum  install  -y  wget

选项:  
	-O(大写)		#指定下载的路径和名称  
	
	-q		#静默输出  
	
	--limit-rate=10k		#限制下载的速率     k  ===KB    m  == MB
	
[root@CentOS7 ~]# wget www.baidu.com
--2020-07-10 16:22:58--  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 16:22:58 (105 MB/s) - ‘index.html’ saved [2381/2381]


[root@CentOS7 ~]# wget http://nginx.org/download/nginx-1.18.0.zip
--2020-07-10 16:25:32--  http://nginx.org/download/nginx-1.18.0.zip
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: 1711619 (1.6M) [application/zip]
Saving to: ‘nginx-1.18.0.zip’

100%[=========================================>] 1,711,619   38.1KB/s   in 54s    

2020-07-10 16:26:26 (31.0 KB/s) - ‘nginx-1.18.0.zip’ saved [1711619/1711619]

[root@CentOS7 ~]# ll
total 1692
-rw-r--r--. 1 root root    9810 Jul  8 00:06 download.html
-rw-r--r--. 1 root root    2381 Jul 10 16:22 index.html
-rw-r--r--. 1 root root 1711619 Apr 21 22:33 nginx-1.18.0.zip
-

#指定下载路径及名称 
[root@CentOS7 ~]# wget -O /opt/nginx-org http://nginx.org/download/nginx-1.18.0.zip--2020-07-10 16:30:23--  http://nginx.org/download/nginx-1.18.0.zip
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: 1711619 (1.6M) [application/zip]
Saving to: ‘/opt/nginx-org’

100%[=========================================>] 1,711,619   25.6KB/s   in 48s    

2020-07-10 16:31:11 (35.0 KB/s) - ‘/opt/nginx-org’ saved [1711619/1711619]

[root@CentOS7 ~]# ll /opt
total 1984
-rw-r--r--. 1 root root 1711619 Apr 21 22:33 nginx-org

#静默下载,不显示下载过程
[root@CentOS7 ~]# wget  -q  http://nginx.org/download/nginx-1.19.1.tar.gz
[root@CentOS7 ~]# 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@CentOS7 ~]# wget   --limit-rate=10k   http://nginx.org/download/nginx-1.18.0.tar.gz ^C
[root@CentOS7 ~]# rm -rf ./*
[root@CentOS7 ~]# 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   

 

curl 访问网站

curl		#利用URL规则在命令行下面工作的文件传输工具   联网下载   测试网站  访问网站 
选项:  
	-o		#把访问的内容写入到一个指定的文件中
	
	-s		#静默输出  不显示访问写入的过程 


[root@CentOS7 ~]# 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@CentOS7 ~]# ll
total 1356
-rw-r--r--. 1 root root    2381 Jul 10 12:15 baidu.html


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

 

sort 排序

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

选项:
	-k		#指定哪一列排序
	
	-n		#以数值大小的方式进行排序 
	
	-r		#倒叙排序  

	-t		#指定分隔符  

[root@CentOS7 ~]# cat test.txt
a 3
c 5
e 8
b 4
g 9
d 12
[root@CentOS7 ~]# sort -k2 test.txt    #指定第二列排序
d 12
a 3
b 4
c 5
e 8
g 9

[root@CentOS7 ~]# sort -nk2 test.txt   #指定第二列按数值大小排序
a 3
b 4
c 5
e 8
g 9
d 12

[root@CentOS7 ~]# sort -rnk2 test.txt   #指定第二列按数值大小倒序排列
d 12
g 9
e 8
c 5
b 4
a 3

[root@CentOS7 ~]# 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
ntp:x:38:38::/etc/ntp:/sbin/nologin
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/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
abrt:x:173:173::/etc/abrt:/sbin/nologin
systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
polkitd:x:999:998:User for polkitd:/:/sbin/nologin

 

uniq 去重

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

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

选项:
		-c		#统计重复的行的次数 
		
[root@CentOS7 ~]# sort file.txt
123
123
456
abc
abc
qwe
[root@CentOS7 ~]# sort file.txt | uniq  
123
456
abc
qwe

[root@CentOS7 ~]# sort file.txt | uniq -c    #统计重复的行
      2 123
      1 456
      2 abc
      1 qwe
 
[root@CentOS7 ~]# sort file.txt | uniq -c | sort
      1 456
      1 qwe
      2 123
      2 abc
[root@CentOS7 ~]# sort file.txt | uniq -c | sort -n
      1 456
      1 qwe
      2 123
      2 abc
[root@CentOS7 ~]# sort file.txt | uniq -c | sort -rn
      2 abc
      2 123
      1 qwe
      1 456

 

cut 取列

cut   #取列  awk命令的小弟  默认的分隔符为tab键   截取字段   截取你想要的内容

选项:
		-d		#指定分隔符 
		
		-f		#取出指定的列 
        
        -c		#取出指定的字符  按照行进行处理的 
 
[root@CentOS7 ~]# cat test.txt
root:x:0:0:root:/root:/bin/bash
[root@CentOS7 ~]# cut -d ":" -f7 test.txt    #指定以 : 为分隔符取第七列
/bin/bash

[root@CentOS7 ~]# cut -d ":" -f1,7 test.txt  #指定以 :为分隔符取第一和第七列
root:/bin/bash

[root@CentOS7 ~]# cut -d ":" -f4-7 test.txt  #指定以 : 为分隔符取第四到第七列
0:root:/root:/bin/bash

[root@CentOS7 ~]# cat test.txt
root:x:0:0:root:/root:/bin/bash
[root@CentOS7 ~]# cut -c 6 test.txt   #取第六个字符
x
[root@CentOS7 ~]# cut -c 4,8 test.txt  #取第四个和第八个字符
t0
[root@CentOS7 ~]# cut -c 3-7 test.txt  #取第三到第七的字符
ot:x:

#取出系统eth0的IP地址
[root@CentOS7 ~]# 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::5169:baec:f4cd:6fb9  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:02:d2:3a  txqueuelen 1000  (Ethernet)
        RX packets 2524  bytes 206264 (201.4 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1280  bytes 138388 (135.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
[root@CentOS7 ~]# ifconfig eth0 | head -2 | tail -1 | cut -d " " -f10
10.0.0.100

[root@CentOS7 ~]# 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:02:d2:3a 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::5169:baec:f4cd:6fb9/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
[root@CentOS7 ~]# ip a s eth0 | head -3 | tail -1 | cut -c 10-19
10.0.0.100

 

tr 替换 删除

tr   #替换或者删除字符的命令    只能单对单的替换
选项:
	-d		#删除指定的字符
	
语法:
	tr   old   new   <   file  
   <		#标准输入重定向
   
[root@CentOS7 ~]# cat test.txt
root:x:0:0:root:/root:/bin/bash
[root@CentOS7 ~]# tr "0" "7" < test.txt    #替换字符
root:x:7:7:root:/root:/bin/bash

[root@CentOS7 ~]# cat test.txt             #删除字符
root:x:0:0:root:/root:/bin/bash
[root@CentOS7 ~]# tr -d "0" < test.txt
root:x:::root:/root:/bin/bash

 

wc 统计

wc     ##统计    行数  字节数  列数   行的长度 
选项:
	-l		#统计行数 
	
	-w		#统计列数,默认以空白字符为分隔符 
	
	-c		#统计字节数 
	
	-L		#统计文件中最长的行的长度
	
[root@CentOS7 ~]# wc passwd
 21  39 974 passwd
[root@CentOS7 ~]# wc -l passwd    #只统计行数
21 passwd
[root@CentOS7 ~]# wc -w passwd    #只统计列数
39 passwd
[root@CentOS7 ~]# wc -c passwd    #只统计字节数
974 passwd
[root@CentOS7 ~]# wc -L passwd    #统计文件中最长的行的长度
99 passwd	

 

gerp 过滤

grep      #过滤   文本搜索工具    给过滤的字符加上颜色  支持正则  | 
选项: 
	-n		#显示过滤出来的内容所在文件的行号
	
	-v		#排除,取反
	
	-c		#统计过滤出来的内容的总行数 
	
	-i		#过滤的时候忽略大小写   

	-o		#只显示你要过滤的内容
    
	-w		#精确匹配  只过滤你要过滤的单词,而不是包含这个单词的字符串  
    
    -r		#递归过滤  针对目录进行操作  

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

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

[root@CentOS7 ~]# grep -n 'root' passwd       #显示过滤出来的内容所在文件的行号
1:root:x:0:0:root:/root:/bin/bash
10:operator:x:11:0:operator:/root:/sbin/nologin

[root@CentOS7 ~]# grep -v 'root' passwd       #排除包含'root'内容
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
tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
ntp:x:38:38::/etc/ntp:/sbin/nologin

[root@CentOS7 ~]# grep -c 'root' passwd    #统计过滤出来的内容的行数
2

[root@CentOS7 ~]# cat file.txt
root
roottt
oldboy
olirl
oldgirl
ROOT
[root@CentOS7 ~]# grep -i 'root' file.txt   #过滤内容时忽略大小写
root
roottt
ROOT

[root@CentOS7 ~]# grep -o 'root' passwd     #只显示过滤的内容
root
root
root
root


[root@CentOS7 ~]# grep 'root' file.txt
root
roottt
[root@CentOS7 ~]# grep -w 'root' file.txt    #只过滤你要过滤的单词而不是包含这个单词的字符串
root

[root@CentOS7 ~]# grep -r 'root' ./       #递归过滤,针对目录的操作
./.bash_history:find root
./.bash_history:find /root/
./.bash_history:find /root -type f 
./.bash_history:find /root -type f -name "^.txt"
./.bash_history:[root@CentOS7 ~]# ll
./.bash_history:-rw-r--r--. 1 root root 38607 Jul  9  2013 7f6f8291jw1ee8c5j55rzj21hc0u0gwq.jpg
./.bash_history:-rw-r--r--. 1 root root   974 Jul 10 11:00 passwd
./.bash_history:drwxr-xr-x. 2 root root     6 Jul 10 12:04 test
./.bash_history:[root@CentOS7 ~]# 
./test.txt:root:x:0:0:root:/root:/bin/bash
./passwd:root:x:0:0:root:/root:/bin/bash
./passwd:operator:x:11:0:operator:/root:/sbin/nologin
./file.txt:root
./file.txt:roottt

[root@CentOS7 ~]# cat file.txt
root
roottt
oldboy
olirl
oldgirl
ROOT
[root@CentOS7 ~]# grep -A 2 'olirl' file.txt    #显示过滤的内容及向下2行的内容
olirl 
oldgirl
ROOT

[root@CentOS7 ~]# grep -B 2 'olirl' file.txt    #显示过滤的内容及向上2行的内容
roottt
oldboy
olirl

[root@CentOS7 ~]# grep -C 2 'olirl' file.txt    #显示过滤的内容及向上向下各多少行
roottt
oldboy
olirl
oldgirl
ROOT

#过滤root或者mail的字符串     -E 支持扩展正则的使用     |  或者的意思
[root@CentOS7 ~]# grep -E  'root|mail'  passwd 
root:x:0:0:root:/root:/bin/bash
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
rootttt


原文地址:https://www.cnblogs.com/backz/p/13396966.html