Linux基础命令
- linux基础命令
- 命令:ls 作用:列出当前目录下的所有文件及文件夹
- 命令:cat 作用:查看文件内容
- 命令:mkdir 作用:创建目录
- 命令:alias 作用:相当于给一串复杂繁琐的命令取一个简单的代号方便使用
- 命令:history 作用:查看历史命令
- 命令:| grep 作用:当文件内容过多时,使用管道过滤精准找到自己所需的文件内容
- 命令:mv 作用:移动文件
- 命令:HISTSIZE 作用:设置历史最多储存量,默认为1000条
- 命令:type 作用:查看命令类型(内部 外部)
- 命令:touch 作用:创建新文件或更新时间戳
- 命令:stat 作用:显示文件及文件系统的状态
- 命令:rm 作用:删除文件(无法删除目录)
- 命令:cp 作用:复制文件,一个文件到一个文件,多个文件到一个目录
- 命令:cat 作用:查看文件内容及拼接多个文件
- 命令:tac 作用:倒序查看文件内容及倒序拼接
- 命令:more 作用:全屏查看文本文件内容(看完自动退出)
- 命令:less 作用:全屏查看文件文本内容(自由观看,q退出)
- 命令:head 作用:从文件首部开始打印文件内容,默认打印前十行(-n设置打印前多少行)
- 命令:tail 作用:从文件尾部开始打印文件内容,默认打印后十行(-n设置打印后多少行)
- 命令:wc 作用:文本统计
- 命令:du 作用:查看文件或目录占用磁盘空间大小
- 命令:df 作用:报告文件系统磁盘空间使用情况
- 命令:hostname 作用:查看或临时修改主机名(重开有效,重启失效)
- 命令:hostamectl 作用:查看或永久修改主机名(重开重启都有效)
- 命令:clear 作用:清屏
- 命令:whoami 作用:显示当前登录用户
- 命令:w 作用:显示当前在线用户并显示其正在运行的命令
- 命令:who 作用:查看当前在线用户
- 命令:which 作用:显示指定命令的绝对路径
- 命令:cal 作用:打印日历
- 命令:ldd 作用:查看指定程序有哪些依赖库文件
- 命令:date 作用:显示或设置日期与时间
- 通配符
- 命令:bzip2 作用:压缩文件
- 命令:gzip 作用:压缩文件
- 命令:xz(加-k保留原文件压缩) 作用:压缩文件
- 命令:zip filename.zip file1 file2... 作用:压缩多个文件file1 file2...并命名为filename.zip(压缩后自动保留原文件)
- 命令:compress 作用:压缩文件 解压需使用unmpress
- 命令:tar[参数][文件名] 作用:归档
- 命令:sort 作用:文本排序
- 命令:uniq 作用:文本去重
- 命令:cut 作用:打印文件每一行的选择部分到标准输出
- 命令:awk 作用:提取指定列的数据(每列之间可有多个数目不同的分隔符,默认分隔符为空格)
- 命令:sed 作用:直接修改文件
- 命令:grep 作用:文件过滤
- find 作用:查找路径 查找标准 查找到以后的处理动作
- 文件查找命令find(续一)
- 文件查找命令find(续三)
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位权限中有任何一位权限匹配都视为符合查找条件
示例:
- -size:根据文件大小进行查找。如1k、1M、+10k、+10M、-1k、-10M
文件查找命令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可规避此问题。
示例:
- 注意: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
- -print:打印到屏幕上