~~~
# day04@[toc]
### 1. 文件管理概述```bash创建  复制  移动  删除  查看  编辑  压缩 

2. 系统的目录结构

WindowsD:\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/local2.  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.cfg10月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
sys4. tree          #以树状形式显示目录列表  [root@qls ~]# yum install  -y  tree 选项:-a     #显示所有文件或者目录  隐藏文件 -d        #只显示目录及目录的数量 -h     #显示文件的大小  -F        #给不同类型的文件加上不同的标识符/      #目录 *       #可执行文件  =      #套接字文件  socker文件  |     #管道文件  -L       #根据目录的基本显示  [root@qls ~]# tree
.
└── anaconda-ks.cfg0 directories, 1 file[root@qls ~]# tree  -a
.
├── anaconda-ks.cfg
├── .bash_history
├── .bash_logout
├── .bash_profile
├── .bashrc
├── .cshrc
└── .tcshrc0 directories, 7 files[root@qls ~]# tree  -d   /var/log/
/var/log/
├── anaconda
├── audit
├── rhsm
└── tuned4 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 existsFile 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 A6. 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—–37echo -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—–47echo -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  passwd1 root:x:0:0:root:/root:/bin/bash2    bin:x:1:1:bin:/bin:/sbin/nologin3   daemon:x:2:2:daemon:/sbin:/sbin/nologin4    adm:x:3:4:adm:/var/adm:/sbin/nologin5   lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin6   sync:x:5:0:sync:/sbin:/bin/sync7    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
000cat >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/nologinhello#另外一个窗口进行测试
[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 directorytail: ‘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  CurrentDload  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/nologincat>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  -c3 1231 4562 abc1 edf[root@qls ~]# sort  file.txt | uniq  -c | sort  1 4561 edf2 abc3 123
[root@qls ~]# sort  file.txt | uniq  -c | sort  -n1 4561 edf2 abc3 123
[root@qls ~]# sort  file.txt | uniq  -c | sort  -rn3 1232 abc1 edf1 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  -c1 /bin/bash1 /bin/sync1 /sbin/halt14 /sbin/nologin1 /sbin/shutdown
[root@qls ~]# cut  -d  ":"  -f7   passwd  | sort   | uniq  -c | sort -n1 /bin/bash1 /bin/sync1 /sbin/halt1 /sbin/shutdown14 /sbin/nologin
[root@qls ~]# cut  -d  ":"  -f7   passwd  | sort   | uniq  -c | sort -rn14 /sbin/nologin1 /sbin/shutdown1 /sbin/halt1 /bin/sync1 /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 1500inet 10.0.0.100  netmask 255.255.255.0  broadcast 10.0.0.255inet6 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 0TX 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 1500inet 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 1000link/ether 00:0c:29:eb:ea:8d brd ff:ff:ff:ff:ff:ffinet 10.0.0.100/24 brd 10.0.0.255 scope global noprefixroute eth0valid_lft forever preferred_lft foreverinet6 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 1000link/ether 00:0c:29:eb:ea:8d brd ff:ff:ff:ff:ff:ffinet 10.0.0.100/24 brd 10.0.0.255 scope global noprefixroute eth0
[root@qls ~]# ip a s eth0  | head  -3 | tail  -1inet 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  -1inet 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 1000link/ether 00:0c:29:eb:ea:8d brd ff:ff:ff:ff:ff:ffinet 10.0.0.100/24 brd 10.0.0.255 scope global noprefixroute eth0valid_lft forever preferred_lft foreverinet6 fe80::3310:9d15:9ee4:43e8/64 scope link noprefixroute valid_lft forever preferred_lft forever
[root@qls ~]# ip a s eth0 | head -3 | tail -1inet 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/hosts2  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 1500inet 10.0.0.100  netmask 255.255.255.0  broadcast 10.0.0.255inet6 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 0TX packets 2329  bytes 260396 (254.2 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0[root@qls ~]# ifconfig  eth0 | grep  inetinet 10.0.0.100  netmask 255.255.255.0  broadcast 10.0.0.255inet6 fe80::3310:9d15:9ee4:43e8  prefixlen 64  scopeid 0x20<link>
[root@qls ~]# ifconfig  eth0 | grep -w  inetinet 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次以上 .*       #所有  包括空行 ```

linux 基础 --04-07相关推荐

  1. Linux 基础入门 07

    一.磁盘阵列 RAID 独立磁盘冗余阵列(Redundant Array of Independent Disks) 高效的数据组织和条带化的并行访问 1.1 RAID 数据组织的形式 条带:硬盘中单 ...

  2. 【linux基础】07、用户管理

    目录 1.用户,组,名称解析,权限,安全上下文, 2.useradd,userdel,usermod,passwd,id,chfn,chsh,chage,finger, 3./etc/passwd,/ ...

  3. day55 linux 基础以及系统优化

    Linux系统基础优化及常用命令   Linux基础系统优化 引言没有,只有一张图. Linux的网络功能相当强悍,一时之间我们无法了解所有的网络命令,在配置服务器基础环境时,先了解下网络参数设定命令 ...

  4. Linux基础系统优化及常用命令

    # Linux基础系统优化及常用命令 [TOC] ## Linux基础系统优化 Linux的网络功能相当强悍,一时之间我们无法了解所有的网络命令,在配置服务器基础环境时,先了解下网络参数设定命令. - ...

  5. SRE运维工程师笔记-Linux基础入门

    SRE运维工程师笔记-Linux基础入门 1. Linux基础 1.1 用户类型 1.2 终端terminal 1.2.1 终端类型 1.2.2 查看当前的终端设备 1.3 交互式接口 1.3.1 交 ...

  6. Linux基础学习(十七)--- wiki,jira 搭建、公司面试常见问题

    Linux基础学习(十七) wiki,jira 搭建.公司面试常见问题 mysql中 utf8 支持中文字符 du -sh * 查看当前目录所有文件大小 wiki 企业多人协作系统–>企业级文档 ...

  7. Linux随笔-鸟哥Linux基础篇学习总结(全)

    Linux随笔-鸟哥Linux基础篇学习总结(全) 修改Linux系统语系:LANG-en_US,如果我们想让系统默认的语系变成英文的话我们可以修改系统配置文件:/etc/sysconfig/i18n ...

  8. 一键检查LINUX基础环境

    一键检查LINUX基础环境 搞这个脚本的初衷: 每次我部署完环境,都得认真慢慢检查一般,有点费劲,一直想搞个像样的一键检查脚本,这不,可算抽空打个样了. [root@z4 ~]# sh bench.s ...

  9. Python3_01(Linux基础)

    Python之路 前言:因为Python主要是在Linux和widows操作系统上使用所以,首先就介绍Pyhton在这两个平台上的安装和一些基础知识 版权声明:本文为博主原创文章,欢迎转载,但必须标识 ...

  10. m7y30处理器跑linux,linux基础

    ---恢复内容开始--- linux基础 一.网络补点 1.tcp三次握手和四次挥手 tcp是可靠连接,它可以通过发送ack确认收到包 udp是不可靠连接,发完包就清除缓存. 哪条路传完数据哪条路再断 ...

最新文章

  1. Horizon6.2.0批量部署XP虚拟机
  2. 【十五分钟Talkshow】谈谈HTML 5及其对Web开发人员的挑战和机遇
  3. Python函数的定义和使用教程
  4. Android启动(Booting)
  5. MySQL8.0.16主从同步
  6. 浏览器兼容性问题解决方案· 总结
  7. python Django基本介绍
  8. c++中的STL的常用算法---3(排序算法,拷贝和替换算法,算术生成算法,集合算法)
  9. suse 10 下mysql安装
  10. Bzoj3262 陌上花开
  11. php mysql apache vbb
  12. Java微服务面试题及答案2022,微服务面试题2022
  13. 智慧工地、智慧建筑、项目GIS、工程信息化协同管理平台、BIM一体化项目管理平台、工程进度管理、计划进度、施工模拟、BIM视图、模型管理、质量管理、安全管理、施工管理、文档管理、建筑施工、工程展板
  14. 内外边距问题(清除、合并、塌陷)
  15. 星河智联Android开发
  16. 判断数字的正则表达式
  17. 抖音开发 发布内容至抖音H5
  18. 游久刘亮:从最具草莽气质的80后 到上市公司CEO
  19. Error evaluating ORM mappings block for domain
  20. 快速剪辑视频,每个视频按秒数快速分割,并保留原声

热门文章

  1. eclipse查看mysql_eclipse查看数据库
  2. Java Web中动态网页开发基础重点总结
  3. 假设计算机显示器,计算机显示器的正确位置
  4. 2021-08-23 layui给input文本框赋值
  5. 洛谷P1095 守望者的逃离 dp
  6. TIA博途V13安装的必要条件
  7. 流媒体服务器中的单播点播和广播
  8. 德语语法:双宾动词总结
  9. 叶子华戒烟经历:在家如何练腹肌
  10. CorelDRAW快速制作雨天、雪天和雾天效果