1.1 Linux基础命令

Linux基础命令

linux基础命令

命令:ls 作用:列出当前目录下的所有文件及文件夹

示例:

[root@localhost ~]# ls
ab{hello}  ac  ad  anaconda-ks.cfg  def  haha

命令:ls -a 作用:列出目录下所有文件(包括’.'开头的隐藏目录)

示例:

[root@localhost ~]# ls -a
.  ..  a  ab{hello}  ac  ad  anaconda-ks.cfg  .bash_history  .bash_logout  .bash_profile  .bashrc  .cshrc  def  haha  huhu  .tcshrc

命令:ls -l 作用:显示文件详细信息,创建者、创建时间、文件读写及权限

示例:

[root@localhost ~]# ls -l
总用量 4
drwxr-xr-x. 3 root root   15 9月   7 17:19 a
drwxr-xr-x. 2 root root    6 9月   7 11:39 ab{hello}
drwxr-xr-x. 2 root root    6 9月   7 11:39 ac
drwxr-xr-x. 3 root root   16 9月   7 11:39 ad
-rw-------. 1 root root 1451 9月   3 20:40 anaconda-ks.cfg
drwxr-xr-x. 2 root root    6 9月   7 15:47 def
drwxr-xr-x. 2 root root    6 9月   7 11:31 haha
drwxr-xr-x. 2 root root    6 9月   7 16:33 huhu

命令:cat 作用:查看文件内容

示例:

[root@localhost network-scripts]# cat ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=8c8659cc-9a38-4b35-aaab-51903d31a790
DEVICE=ens33
ONBOOT=yes

命令:mkdir 作用:创建目录

示例:

[root@localhost ~]# mkdir huhu
[root@localhost ~]# ls
ab{hello}  ac  ad  anaconda-ks.cfg  def  haha  huhu

命令:mkdir -p 作用:批量创建文件目录及父子目录

示例:

[root@localhost ~]# mkdir -p a/b/{c,d}
[root@localhost ~]# ls a
b
[root@localhost ~]# ls a/b
c  d

命令:mkdir -v 作用:显示创建目录的过程

示例:

[root@localhost ~]# mkdir -pv a/b/c/{d,e}
mkdir: 已创建目录 "a"
mkdir: 已创建目录 "a/b"
mkdir: 已创建目录 "a/b/c"
mkdir: 已创建目录 "a/b/c/d"
mkdir: 已创建目录 "a/b/c/e"

命令:alias 作用:相当于给一串复杂繁琐的命令取一个简单的代号方便使用

示例:

[root@localhost ~]# alias cdnet='cd /etc/sysconfig/network-scripts'
[root@localhost ~]# cdnet
[root@localhost network-scripts]# pwd
/etc/sysconfig/network-scripts

命令:history 作用:查看历史命令

示例:

   54  cdnet
   55  alias cdnet=cd /etc/sysconfig/network-scripts/
   56  cdnet
   57  cdnet 
   58  alias cdnet='cd /etc/sysconfig/netword-scripts'
   59  cdnet
   60  alias cdnet='cd /etc/sysconfig/network-scripts'
   61  cdnet
   62  pwd
   63  cd
   64  history
[root@localhost ~]# history

命令:!n 作用:调用历史命令

示例:

[root@localhost ~]# !77
ls -a
.  ..  a  ab{hello}  ac  ad  anaconda-ks.cfg  .bash_history  .bash_logout  .bash_profile  .bashrc  .cshrc  def  haha  huhu  .tcshrc

命令:| grep 作用:当文件内容过多时,使用管道过滤精准找到自己所需的文件内容

示例:

[root@localhost ~]# cat anaconda-ks.cfg | grep file
repo --name="Server-HighAvailability" --baseurl=file:///run/install/repo/addons/HighAvailability
repo --name="Server-ResilientStorage" --baseurl=file:///run/install/repo/addons/ResilientStorage

命令:mv 作用:移动文件

示例:

[root@localhost ~]# ls
a  ab{hello}  ac  ad  anaconda-ks.cfg  def  haha  huhu
Try 'mv --help' for more information.
[root@localhost ~]# mv ac 1
[root@localhost ~]# ls
1  a  ab{hello}  ad  anaconda-ks.cfg  def  haha  huhu

命令:HISTSIZE 作用:设置历史最多储存量,默认为1000条

示例:

[root@localhost ~]# HISTSIZE=10
[root@localhost ~]# history
  214  type $an
  215  $ type an
  216  type haha
  217  ls
  218  alias an='ls huhu'
  219  an
  220  ls huhu
  221  HISTSIZE=10
  222  HISTORY
  223  history

命令:type 作用:查看命令类型(内部 外部)

示例:

[root@localhost ~]# echo $SHELL
/bin/bash
[root@localhost ~]# type ls
ls 是 `ls --color=auto' 的别名
[root@localhost ~]# type cd
cd 是 shell 内嵌

命令:touch 作用:创建新文件或更新时间戳

示例:

[root@localhost ~]# touch anaconda-ks.cfg 
[root@localhost ~]# stat anaconda-ks.cfg 
  文件:"anaconda-ks.cfg"
  大小:1451      	块:8          IO 块:4096   普通文件
设备:fd00h/64768d	Inode:33574992    硬链接:1
权限:(0600/-rw-------)  Uid:(    0/    root)   Gid:(    0/    root)
环境:system_u:object_r:admin_home_t:s0
最近访问:2019-09-10 18:43:04.519023128 +0800
最近更改:2019-09-10 18:43:04.519023128 +0800
最近改动:2019-09-10 18:43:04.519023128 +0800
创建时间:-
[root@localhost ~]# touch abc
[root@localhost ~]# ls
1  123  a abc anaconda-ks.cfg  huhu

命令:stat 作用:显示文件及文件系统的状态

示例:

[root@localhost ~]# stat anaconda-ks.cfg 
  文件:"anaconda-ks.cfg"
  大小:1451      	块:8          IO 块:4096   普通文件
设备:fd00h/64768d	Inode:33574992    硬链接:1
权限:(0600/-rw-------)  Uid:(    0/    root)   Gid:(    0/    root)
环境:system_u:object_r:admin_home_t:s0
最近访问:2019-09-10 11:17:05.577640499 +0800
最近更改:2019-09-03 20:40:58.892996693 +0800
最近改动:2019-09-03 20:40:58.892996693 +0800
创建时间:-

命令:rm 作用:删除文件(无法删除目录)

示例:

[root@localhost ~]# ls
1  123  a  abc  anaconda-ks.cfg  huhu
[root@localhost ~]# rm a
rm: 无法删除"a": 是一个目录
[root@localhost ~]# rm abc
rm:是否删除普通空文件 "abc"?y
[root@localhost ~]# ls
1  123  a  anaconda-ks.cfg  huhu

命令:rm -r 作用:递归依次删除(删除目录必用)

示例:

[root@localhost ~]# ls a/b/c
d  e
[root@localhost ~]# rm -r a/b/c/{d,e}
rm:是否删除目录 "a/b/c/d"?y
rm:是否删除目录 "a/b/c/e"?y

命令:rm -f 作用:强制删除,不询问(删除目录时与-r配合使用)

示例:

[root@localhost ~]# mkdir -p a/b/c/{d,e}
[root@localhost ~]# rm -f a/b/c/{d,e}
rm: 无法删除"a/b/c/d": 是一个目录
rm: 无法删除"a/b/c/e": 是一个目录
[root@localhost ~]# rm -rf a/b/c/{d,e}
[root@localhost ~]# ls a/b/c/{d,e}
ls: 无法访问a/b/c/d: 没有那个文件或目录
ls: 无法访问a/b/c/e: 没有那个文件或目录

命令:cp 作用:复制文件,一个文件到一个文件,多个文件到一个目录

示例:

[root@localhost ~]# ls
1  123  222  a  abc  anaconda-ks.cfg  huhu
[root@localhost ~]# cp 222 abc huhu/
[root@localhost ~]# ls huhu
222  abc

命令:cp -a 作用:归档复制(啥都没变),用于备份

示例:

[root@localhost ~]# cp -a 222 abc
cp:是否覆盖"abc"? y
[root@localhost ~]# cat abc
yuu
hjk
fghj
dfgna

命令:cp -r 作用:递归复制,复制目录必须使用

示例:

[root@localhost ~]# cp -r abc a/
[root@localhost ~]# ls a
abc  b

命令:cat 作用:查看文件内容及拼接多个文件

示例:

[root@localhost ~]# cat abc
hello
[root@localhost ~]# cat 222
yuu
hjk
fghj
dfgna
[root@localhost ~]# cat abc 222
hello
yuu
hjk
fghj
dfgna

命令:tac 作用:倒序查看文件内容及倒序拼接

示例:

[root@localhost ~]# tac abc
dfgna
fghj
hjk
yuu

命令:more 作用:全屏查看文本文件内容(看完自动退出)

示例:

[root@localhost ~]# more anaconda-ks.cfg 
#version=DEVEL
# System authorization information
auth --enableshadow --passalgo=sha512
repo --name="Server-HighAvailability" --baseurl=file:///run/install/repo/addons/HighAvailability
repo --name="Server-ResilientStorage" --baseurl=file:///run/install/repo/addons/ResilientStorage
# Use CDROM installation media

命令:less 作用:全屏查看文件文本内容(自由观看,q退出)

示例:

[root@localhost ~]# less anaconda-ks.cfg 

命令:head 作用:从文件首部开始打印文件内容,默认打印前十行(-n设置打印前多少行)

示例:

[root@localhost ~]# head -2 anaconda-ks.cfg 
#version=DEVEL
# System authorization information

命令:tail 作用:从文件尾部开始打印文件内容,默认打印后十行(-n设置打印后多少行)

示例:

[root@localhost ~]# tail -2 anaconda-ks.cfg 
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
%end

命令:tail -f 作用:实时查看文件的更新

示例:

[root@localhost ~]# tail -f abc
yuu
hjk
fghj
dfgna
rty
rty

命令:wc 作用:文本统计

示例:

[root@localhost ~]# wc 222
 4  4 19 222

命令:wc -c 作用:统计文本字节数

示例:

[root@localhost ~]# wc -c 222
19 222

命令:wc -w 作用:统计文本单词数

示例:

[root@localhost ~]# wc -w 222
4 222

命令:wc -l 作用:统计文本行数

示例:

[root@localhost ~]# wc -l 222
4 222

命令:du 作用:查看文件或目录占用磁盘空间大小

示例:

[root@localhost ~]# du a
0	a/b/c
0	a/b
4	a

命令:du -s 作用:显示总的占用空间的大小

示例:

[root@localhost ~]# du -s a
4	a

命令:du -h 作用:合理使用单位显示大小

示例:

[root@localhost ~]# du -h a
0	a/b/c
0	a/b
4.0K	a

命令:df 作用:报告文件系统磁盘空间使用情况

示例:

[root@localhost ~]# df 222
文件系统                 1K-块   已用     可用 已用% 挂载点
/dev/mapper/rhel-root 17811456 969840 16841616    6% /

命令:df -h 作用:合理使用单位显示使用情况

示例:

[root@localhost ~]# df -h 222
文件系统               容量  已用  可用 已用% 挂载点
/dev/mapper/rhel-root   17G  948M   17G    6% /

命令:hostname 作用:查看或临时修改主机名(重开有效,重启失效)

示例:

[root@localhost ~]# hostname
localhost.localdomain
[root@localhost ~]# hostname 123
[root@localhost ~]# hostname
123

命令:hostamectl 作用:查看或永久修改主机名(重开重启都有效)

示例:

[root@localhost ~]# hostnamectl
   Static hostname: localhost.localdomain
Transient hostname: 123
         Icon name: computer-vm
           Chassis: vm
        Machine ID: b67a2839835345708ed8c56d966cb74e
           Boot ID: ac4c991e725a45ac8f90e96227f61f4b
    Virtualization: vmware
  Operating System: Red Hat Enterprise Linux Server 7.4 (Maipo)
       CPE OS Name: cpe:/o:redhat:enterprise_linux:7.4:GA:server
            Kernel: Linux 3.10.0-693.el7.x86_64
      Architecture: x86-64

命令:clear 作用:清屏

命令:whoami 作用:显示当前登录用户

示例:

[root@localhost network-scripts]# whoami
root

命令:w 作用:显示当前在线用户并显示其正在运行的命令

示例:

[root@localhost ~]# w
 16:36:02 up  9:49,  2 users,  load average: 0.00, 0.01, 0.05
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1                      二09   24:26m  0.19s  0.19s -bash
root     pts/1    192.168.174.1    13:57    2.00s  0.43s  0.09s w

命令:who 作用:查看当前在线用户

示例:

[root@localhost ~]# who
root     tty1         2019-09-10 09:07
root     pts/1        2019-09-11 13:57 (192.168.174.1)

命令:which 作用:显示指定命令的绝对路径

示例:

[root@localhost ~]# which ls
alias ls='ls --color=auto'
	/usr/bin/ls

命令:cal 作用:打印日历

示例:

[root@localhost ~]# cal
      九月 2019     
日 一 二 三 四 五 六
 1  2  3  4  5  6  7
 8  9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

命令:ldd 作用:查看指定程序有哪些依赖库文件

示例:

[root@localhost ~]# ldd /usr/bin/ls
	linux-vdso.so.1 =>  (0x00007fffd9342000)
	libselinux.so.1 => /lib64/libselinux.so.1 (0x00007f92034ec000)
	libcap.so.2 => /lib64/libcap.so.2 (0x00007f92032e7000)
	libacl.so.1 => /lib64/libacl.so.1 (0x00007f92030dd000)
	libc.so.6 => /lib64/libc.so.6 (0x00007f9202d1a000)
	libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f9202ab8000)
	libdl.so.2 => /lib64/libdl.so.2 (0x00007f92028b3000)
	/lib64/ld-linux-x86-64.so.2 (0x0000559b997bc000)
	libattr.so.1 => /lib64/libattr.so.1 (0x00007f92026ae000)
	libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f9202492000)

命令:date 作用:显示或设置日期与时间

示例:

[root@localhost ~]# date
2019年 09月 11日 星期三 16:53:02 CST

命令:date -s 作用:以字符串方式设置时间

示例:

[root@localhost ~]# date -s '2019-9-11 16:58:40'
2019年 09月 11日 星期三 16:58:40 CST
[root@localhost ~]# date
2019年 09月 11日 星期三 16:58:47 CST

命令:date +(%Y:年 %m:月 %d:日 %H:时 %M:分 %S:秒) 作用:格式化输出时间

示例:

[root@localhost ~]# date +%Y
2019

命令:man+命令 作用:查看man帮助手册

示例:

[root@localhost b]# man pwd
PWD(1)                            User Commands                           PWD(1)

NAME
       pwd - print name of current/working directory

SYNOPSIS
       pwd [OPTION]...

DESCRIPTION
       Print the full filename of the current working directory.

通配符

*:匹配任意长度的任意字符

[root@localhost 123]# ls 1*
1  10  100  11  12  13  14  15  16  17  18  19

?:匹配任意单个字符

[root@localhost 123]# ls 1?
10  11  12  13  14  15  16  17  18  19
[root@localhost 123]# ls ?1
11  21  31  41  51  61  71  81  91

[]:匹配指定范围内的任意单个字符
[abc],[a-m],[0-9]

[[:space:]]:表示空白字符
[[:punct:]]:表示标点符号
[[:lower:]]:表示小写字母
[[:upper:]]:表示大写字母
[[:alpha:]]:表示大小写字母
[[:digit:]]:表示数字
[[:alnum:]]:表示数字和大小写字母

[^]:匹配指定范围之外的任意单个字符

命令:bzip2 作用:压缩文件

示例:

[root@localhost 123]# bzip2 haha
[root@localhost 123]# ls
321  haha.bz2  ok

命令:bzip2 -k 作用:压缩时保留原文件

示例:

[root@localhost 123]# bzip2 -k hello
[root@localhost 123]# ls
haha  hello  hello.bz2  ok

命令:bzip2 -d 作用:解压缩,解压完成后会删除原文件

示例:

[root@localhost 123]# ls
321  haha  ok  ok.bz2
[root@localhost 123]# mv ok.bz2 321
[root@localhost 123]# bzip2 -d 321/ok.bz2 
[root@localhost 123]# ls 321
hello  ok

命令:gzip 作用:压缩文件

示例:

[root@localhost 123]# ls
321  haha  ok
[root@localhost 123]# gzip haha
[root@localhost 123]# ls
321  haha.gz  ok

命令:azip -d 作用:解压缩,解压完成后会删除原文件

示例:

[root@localhost 123]# ls
321  haha.gz  ok
[root@localhost 123]# gzip -d haha.gz 
[root@localhost 123]# ls
321  haha  ok

命令:xz(加-k保留原文件压缩) 作用:压缩文件

示例:

[root@localhost 123]# xz haha
[root@localhost 123]# ls
321  haha.xz  ok
[root@localhost 123]# xz -k ok
[root@localhost 123]# ls
321  haha.xz  ok  ok.xz

命令:xz -d 作用:解压缩,解压完成后会删除原文件

示例:

[root@localhost 123]# xz -d haha.xz 
[root@localhost 123]# ls
321  haha  ok  ok.xz

命令:zip filename.zip file1 file2… 作用:压缩多个文件file1 file2…并命名为filename.zip(压缩后自动保留原文件)

示例:

[root@localhost 123]# ls 
321  abc  haha  ok
[root@localhost 123]# zip 1.zip haha ok
  adding: haha (stored 0%)
  adding: ok (stored 0%)
[root@localhost 123]# ls
1.zip  321  abc  haha  ok

命令:zip filename.zip DIR/* 作用:压缩一个目录下的所有文件并命名为filename.zip

示例:

[root@localhost 123]# ls
321  abc  haha  ok
[root@localhost 123]# zip def.zip 321/*
  adding: 321/hello (stored 0%)
  adding: 321/ok (stored 0%)
[root@localhost 123]# ls
321  abc  def.zip  haha  ok

命令:unzip 作用:解压zip格式的压缩包

示例:

[root@localhost 123]# ls 
abc  def.zip  haha  ok
[root@localhost 123]# unzip def.zip 
Archive:  def.zip
 extracting: 321/hello      
 extracting: 321/ok         
[root@localhost 123]# ls
321  abc  def.zip  haha  ok

命令:compress 作用:压缩文件 解压需使用unmpress

示例:

[root@localhost ~]# ls
anaconda-ks.cfg
[root@localhost ~]# compress anaconda-ks.cfg
[root@localhost ~]# ls
anaconda-ks.cfg.Z
[root@localhost ~]# uncompress anaconda-ks.cfg.Z
[root@localhost ~]# ls
anaconda-ks.cfg

命令:tar[参数][文件名] 作用:归档

  • -c 创建归档文件
  • -f file.tar 指定要操作的归档文件

    示例:
[root@localhost 123]# tar -cf a.tar haha
[root@localhost 123]# ls
321  abc  a.tar  def.zip  haha  ok
  • -x 还原归档(与-f混合使用)

    示例:
[root@localhost 123]# ls
321  abc  a.tar  def.zip
[root@localhost 123]# tar -xf a.tar 
[root@localhost 123]# ls
321  abc  a.tar  def.zip  haha
  • -v 显示归档过程

    示例:
[root@localhost 123]# tar cfv 1.tar haha ok
haha
ok
[root@localhost 123]# ls
1.tar  321  abc  haha  hello  ok  v
  • -p 归档时保留权限信息(只有管理员才有权限用此选项)

    示例:
[root@localhost 123]# tar cfp b.tar ok hello
[root@localhost 123]# ls
1.tar  321  abc  b.tar  haha  hello  ok  v
  • -C 指定还原归档或解压时的目标目录

    示例:
[root@localhost 123]# tar xfC 1.tar 123/
[root@localhost 123]# ls
123  1.tar  2.tar  321  abc  b.tar  haha  hello  ok  v
[root@localhost 123]# ls 123
haha  ok
  • tf 不展开归档,直接查看归档了哪些文件

    示例:
[root@localhost 123]# tar tf 1.tar
haha
ok
  • zcf file.tar.gz… 归档并调用gzip进行压缩
  • xf file.tar.gz 解压缩
    示例:
[root@localhost 123]# tar zcf 3.tar.gz haha v
[root@localhost 123]# ls
123  1.tar  2.tar  321  3.tar.gz  abc  b.tar  haha  hello  ok  v
[root@localhost 123]# ls
123  1.tar.gz  321  abc  haha  hello
[root@localhost 123]# tar xf 1.tar.gz 
[root@localhost 123]# ls
123  1.tar.gz  321  abc  haha  hello  ok  v
  • -jcf file.tar 归档并调用bzip2进行压缩
  • xf file.tar.bz2 解压缩
    示例:
[root@localhost 123]# tar jcf h.tar.bz2 ok v
[root@localhost 123]# ls
123  1.tar.gz  321  abc  haha  hello  h.tar.bz2  ok  v
[root@localhost 123]# rm ok v
rm:是否删除普通空文件 "ok"?y
rm:是否删除普通文件 "v"?y
[root@localhost 123]# tar xf h.tar.bz2
[root@localhost 123]# ls
123  1.tar.gz  321  abc  haha  hello  h.tar.bz2  ok  v
  • Jcf file.tar.xz 归档并调用xz进行压缩
  • xf file.tar.xz 解压缩
    示例:
[root@localhost 123]# tar Jcf j.tar.zx abc haha
[root@localhost 123]# ls
123  1.tar.gz  321  abc  haha  hello  j.tar.zx  ok  v
[root@localhost 123]# rm -rf abc haha
[root@localhost 123]# tar xf j.tar.zx
[root@localhost 123]# ls
123  1.tar.gz  321  abc  haha  hello  j.tar.zx  ok  v

命令:sort 作用:文本排序

  • -n 以数值大小进行排序
    示例:
[root@localhost d]# sort -n d
0
1
2
3
4
5
6
7
8
9
  • -r 逆序排序
    示例:
[root@localhost d]# sort -r d
9
8
7
6
5
4
3
2
1
0
  • -t 字段分隔符
  • -k 以哪个字段为关键字进行排序
    示例:
[root@localhost d]# sort -t ' ' -k2 d
9  a
4  b
3  c
2  d
7  e
1  f
5  g
8  h
0  i
6  j
  • -u 去重,排序后相同的行只显示一次
    示例:
[root@localhost d]# cat d
9  a
3  a
2  d
4  b
1  d
5  g
7  e
6  h
8  h
0  i
[root@localhost d]# sort -t ' ' -k2 -u d 
9  a
4  b
2  d
7  e
5  g
6  h
0  i
  • -f 排序时忽略字符大小写
    示例:
[root@localhost d]# sort -t ' ' -k2 -f d
3  A
9  a
4  b
1  D
2  d
0  E
7  e
5  g
6  h
8  h

命令:uniq 作用:文本去重

  • -c 显示文件中行重复的次数
    示例:
[root@localhost d]# sort -t ' ' -k1 d | uniq -c
      2 0  d
      1 1  D
      1 2  d
      1 3  A
      1 4  4
      1 4  a
      1 6  h
      1 7  7
      1 8  h
      1 9  a
  • -d 只显示重复的行
    示例:
[root@localhost d]# sort -t ' ' -k1 d | uniq -d
0  d
  • -u 只显示未重复的行
    示例:
[root@localhost d]# sort -t ' ' -k1 d | uniq -u
1  D
2  d
3  A
4  4
4  a
6  h
7  7
8  h
9  a

命令:cut 作用:打印文件每一行的选择部分到标准输出

  • -d 指定字段分隔符,默认是空格
  • -f 指定要显示的字段

    -f 1,3:显示1和3字段

    -f 1-3:显示1到3字段

示例:

[root@localhost d]# cut -d ' ' -f1-3 d
9  a
3  A
2  d
4  4
1  D
4  a
7  7
6  h
8  h
0  d
0  d

命令:awk 作用:提取指定列的数据(每列之间可有多个数目不同的分隔符,默认分隔符为空格)

示例:

[root@localhost d]# df -h | awk '{print $1}'
文件系统
/dev/mapper/rhel-root
devtmpfs
tmpfs
tmpfs
tmpfs
/dev/sda1
tmpfs
/dev/sr0

命令:sed 作用:直接修改文件

  • sed -i ‘s/any/xxx/g’ 将文中数据any替换为xxx

示例:

[root@localhost d]# sed -i 's/root/runtime/g' passwd
[root@localhost d]# cat passwd
runtime:x:0:0:runtime:/runtime:/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:/runtime:/sbin/nologin
  • sed -i ‘n,$d’ 删除文件第n行到最后的所有内容

示例:

[root@localhost d]# cat passwd
runtime:x:0:0:runtime:/runtime:/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

命令:grep 作用:文件过滤

  • -i 忽略大小写

示例:

[root@localhost d]# grep -i 'runtime' passwd
runtime:x:0:0:runtime:/runtime:/bin/bash
  • –color 匹配到的内容高亮显示(默认)
  • -v 显示没有被正则表达式匹配到的内容

示例:

[root@localhost d]# grep -v 'runtime' 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
  • -o 只显示正则表达式匹配到的内容

示例

[root@localhost d]# grep -o 'runtime' passwd
runtime
runtime
runtime
  • -E 使用扩展正则表达式

示例:

[root@localhost d]# grep -E 'runtime' passwd
runtime:x:0:0:runtime:/runtime:/bin/bash
  • -q 静默模式,不输出任何信息

示例:

[root@localhost d]# grep -q 'runtime' passwd | head
  • -A# 此处的#必须是数字。被正则匹配到的内容以及其后面#行的内容都显示出来

示例:

[root@localhost d]# grep -A2 'runtime' passwd | head
runtime:x:0:0:runtime:/runtime:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
  • -B# 此处的#必须是数字。被正则匹配到的内容以及其前面#行的内容都显示出来

示例:

[root@localhost d]# grep -B2 'runtime' passwd | head
runtime:x:0:0:runtime:/runtime:/bin/bash
  • -C# 此处的#必须是数字。被正则匹配到的内容及其前后各#行的内容都显示出来

示例:

[root@localhost d]# grep -C2 'runtime' passwd | head
runtime:x:0:0:runtime:/runtime:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin

find 作用:查找路径 查找标准 查找到以后的处理动作

  • -name filename 对文件名精确匹配,支持通配符

示例:

[root@localhost ~]# find / -name passwd
/sys/fs/selinux/class/passwd
/sys/fs/selinux/class/passwd/perms/passwd
/etc/passwd
/etc/pam.d/passwd
/root/123/d/passwd
/usr/bin/passwd
  • -iname filename 文件名匹配时不区分大小写

示例:

[root@localhost 123]# find -iname passwd
./d/passwd
./PASSwd
./passWD
./passwd
  • -regex pattern 基于正则表达式进行文件名匹配

示例:


  • -user 查找某用户的所有文件

    示例:
[root@localhost ~]# find -user root -name passwd
./123/d/passwd
  • -group 查找某组的所有文件

    示例:
[root@localhost 123]# find -group root
.
./.haha.swp
./a
./d
./d/.d.swp
./d/.d.swo
./d/d
./d/passwd
  • -uid 根据UID进行查找
  • -gid 根据GID进行查找
  • -nouser 查找没有拥有者的文件

    示例:
[root@localhost 123]# useradd tom   //创建用户
[root@localhost 123]# chown tom.tom passwd  //将passwd移到用户下
[root@localhost 123]# ll
总用量 24
-rw-r--r--. 1 root root   0 9月  16 15:19 0
-rw-r--r--. 1 root root   0 9月  15 15:06 a
-rw-r--r--. 1 root root 106 9月  16 15:09 abc
drwxr-xr-x. 2 root root 171 9月  15 18:39 d
-rw-r--r--. 1 root root 106 9月  16 15:15 def
-rw-r--r--. 1 root root   0 9月  16 15:16 haha
-rw-r--r--. 1 root root  10 9月  16 15:37 hello
-rw-r--r--. 1 root root   2 9月  16 15:20 huhu
-rw-r--r--. 1 root root   2 9月  16 15:20 jiji
-rw-r--r--. 1 root root   6 9月  16 16:13 ok
-rw-r--r--. 1 tom  tom    0 9月  16 18:50 passwd
-rw-r--r--. 1 root root   0 9月  16 18:50 passWD
-rw-r--r--. 1 root root   0 9月  16 18:50 PASSwd
[root@localhost 123]# userdel tom  //删除用户
[root@localhost 123]# find -nouser
./passwd
  • -nogroup 查找没有属组的文件

    示例:
     [root@localhost er]# find -nogroup
     ./passwd
    
  • -type 根据文件类型进行查找

    示例:
    [root@localhost er]# find -type f
    ./123/a
    ./123/b
    ./123/c
    [root@localhost er]# find -type d
    .
    ./123
    ./abc
    ./holle
    ./word
    

文件查找命令find(续一)

  • 查找标准(续):
    • -size:根据文件大小进行查找。如1k、1M、+10k、+10M、-1k、-10M
      • +表示大于,-表示小于

        示例:
    [root@localhost ~]# find -size +1
    ./.bash_history
    ./anaconda-ks.cfg
    ./.file1.txt.swp
    [root@localhost ~]# find -size -1k
    ./er/c
    ./er/PASSwd
    ./er/Passwd
    [root@localhost ~]# find -size -1000
    .
    ./.bash_logout
    ./.bash_profile
    ./.bashrc
    ./.cshrc
    ./.tcshrc
    ./.bash_history
    ./anaconda-ks.cfg
    ./.file1.txt.swp
    ./er
    ./er/c
    ./er/a
    ./er/passwd
    ./er/b
    ./er/PASSwd
    ./er/Passwd
    ./aaa
    ./.lesshst
    ./aa
    ./20180808-19:05:05
    
    
    • -mtime:根据修改时间查找
      • +5:表示查找5天以前修改的文件
      • -5:表示查找5天以内修改的文件

        示例:
    [root@localhost ~]# find -mtime +5
    ./.bash_logout
    ./.bash_profile
    ./.bashrc
    ./.cshrc
    ./.tcshrc
    ./anaconda-ks.cfg
    ./.file1.txt.swp
    ./20180808-19:05:05
    [root@localhost ~]# find -mtime -5
    .
    ./.bash_history
    ./er
    ./er/c
    ./er/a
    ./er/passwd
    ./er/b
    ./er/PASSwd
    ./er/Passwd
    ./.lesshst
    ./aa
    
    • -atime:根据访问时间查找

      示例:
    [root@localhost ~]# find -atime 1
    ./er/c
    ./er/a
    
    • -ctime:根据改变时间查找

      示例:
    [root@localhost ~]# find -ctime 1
    ./er/c
    ./er/a  
    
    • -perm mode:根据权限精确查找

      示例:
    
    
    • -perm –mode:文件权限能完全包含此mode时才符合条件

      示例:
    
    
    • -perm /mode:9位权限中有任何一位权限匹配都视为符合查找条件

      示例:
    
    

文件查找命令find(续三)

  • 处理动作:默认动作是显示到屏幕上

    • -print:打印到屏幕上

      示例:
    [root@localhost ~]# find -type f -name anaconda-ks.cfg -print
    ./anaconda-ks.cfg
    
    • -ls:类似ls –l的形式显示每一个文件的详细信息

      示例:
    [root@localhost ~]# find -type f -name anaconda-ks.cfg -ls
    33575032    4 -rw-------   1 root     root         1451 9月  7 15:02 ./anaconda-ks.cfg
    
    • -delete:删除查找到的文件

      示例:
    [root@localhost ~]# find -name aaa -delete
    [root@localhost ~]# ll
    总用量 8
    drwxr-xr-x. 2 root root    6 8月   8 2018 20180808-19:05:05
    -rw-r--r--. 1 root root   13 9月  11 14:59 aa
    -rw-------. 1 root root 1451 9月   7 15:02 anaconda-ks.cfg
    drwxr-xr-x. 2 root root   75 9月  15 23:38 er
    [root@localhost ~]# find -type f -delete
    [root@localhost ~]# ll
    总用量 0
    drwxr-xr-x. 2 root root 6 8月   8 2018 20180808-19:05:05
    drwxr-xr-x. 2 root root 6 9月  16 09:14 er
    
    • -fls /path/to/somefile:将查找到的所有文件的长格式信息保存至指定文件中

      示例:
    [root@localhost ~]# find -name er -fls er/c
    [root@localhost ~]# cat er/c
    16784424    0 drwxr-xr-x   2 root     root           15 9月 16 09:18 ./er
    
    • -ok COMMAND {} ;:对查找到的所有文件执行COMMAND,每次操作都需要用户确认

      示例:
    [root@localhost ~]# ls tmp
    a  b
    [root@localhost ~]# find -type d -name tmp -ok rm -rf {} \;
    < rm ... ./tmp > ? y
    find: ‘./tmp’: 没有那个文件或目录
    [root@localhost ~]# ls
    20180808-19:05:05  a  er
    
    • -exec COMMAND {} ;:对查找到的所有文件执行COMMAND,操作不需要确认
      • 注意:find传递查找到的文件至后面指定的命令时,查找到所有符合条件的文件一次性传递给后面的命令,而有些命令不能接受过多的参数,此时命令执行可能会失败,而xargs可规避此问题。

        示例:
    [root@localhost ~]# mkdir tmp
    [root@localhost ~]# touch tmp/{a,b}
    [root@localhost ~]# find -type d -name tmp -exec mv {} abc \;
    find: ‘./tmp’: 没有那个文件或目录
    [root@localhost ~]# ll
    总用量 0
    drwxr-xr-x. 2 root root  6 8月   8 2018 20180808-19:05:05
    -rw-r--r--. 1 root root  0 9月  16 09:19 a
    drwxr-xr-x. 2 root root 24 9月  16 09:23 abc
    drwxr-xr-x. 2 root root 15 9月  16 09:18 er
    
    • xargs:通过管道将查找到的内容给xargs处理,xargs后面直接跟命令即可

      示例:
    [root@localhost ~]# find -type d -name abc | xargs rm -rf
    [root@localhost ~]# ls
    20180808-19:05:05  a  er
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值