Linux查询命令手册网站:
https://wangchujiang.com/linux-command/
1.线上查询及帮助命令(3个)
man ls
help
info
2.文件和目录操作命令(13个)
ls
$ ls # 仅列出当前目录可见文件
$ ls -l # 列出当前目录可见文件详细信息 √
$ ls -hl # 列出详细信息并以可读大小显示文件大小
$ ls -al # 列出所有文件(包括隐藏)的详细信息 √
$ ls --human-readable --size -1 -S --classify # 按文件大小排序
$ du -sh * | sort -h # 按文件大小排序(同上)
cd
cd # 进入用户主目录;
cd / # 进入根目录
cd ~ # 进入用户主目录;
cd .. # 返回上级目录(若当前目录为“/“,则执行完后还在“/";".."为上级目录的意思);
cd ../.. # 返回上两级目录;
cd !$ # 把上个命令的参数作为cd参数使用。写脚本才用
关于切换到上一个工作目录的说明
cd -
# 命令会首先显示要切换到的目标目录,然后再进入。
cd ${OLDPWD}
# 命令会直接切换到上一个工作目录。
cp
cp -r
# 如果是目录需要加-r参数,递归作用
find
-amin<分钟>:查找在指定时间曾被存取过的文件或目录,单位以分钟计算;
-atime<24小时数>:查找在指定时间曾被存取过的文件或目录,单位以24小时计算;
-cmin<分钟>:查找在指定时间之时被更改过的文件或目录;
-ctime<24小时数>:查找在指定时间之时被更改的文件或目录,单位以24小时计算;
-depth:从指定目录下最深层的子目录开始查找;
-empty:寻找文件大小为0 Byte的文件,或目录下没有任何子目录或文件的空目录;
-exec<执行指令>:假设find指令的回传值为True,就执行该指令;
-inum<inode编号>:查找符合指定的inode编号的文件或目录;
-maxdepth<目录层级>:设置最大目录层级;
-mindepth<目录层级>:设置最小目录层级;
-mmin<分钟>:查找在指定时间曾被更改过的文件或目录,单位以分钟计算;
-mtime<24小时数>:查找在指定时间曾被更改过的文件或目录,单位以24小时计算;
-perm<权限数值>:查找符合指定的权限数值的文件或目录;
-size<文件大小>:查找符合指定的文件大小的文件;
-type<文件类型>:只寻找符合指定的文件类型的文件;递归查找
find / -type f -empty | xagrs rm -rf
# 检索空文件并删除
find / -type f -size +500M
# 查询大于500mb的文件
find /home/yuanbao/ -type f -name "t*"
find ./ -type f -mtime +3 -name "*.log" # 查找当前目录下 3天前 有更新的文件
find ./ -type f -mmin -900 # 查找当前目录下 900min 以内更新的文件
find ./ -type f -perm 764 # 递归查找当前目录下 权限为764 的文件
ll -i # 查看当前文件夹下文件的inum号 find ./ -inum 18775420 # 查找inum为18775420的文件 find ./ -inum 18775420 | xargs -i rm -rf {} # 查找并删除inum为18775420的文件
UNIX/Linux文件系统每个文件都有三种时间戳:
-
访问时间 (-atime/天,-amin/分钟):用户最近一次访问时间。
-
修改时间 (-mtime/天,-mmin/分钟):文件最后一次修改时间。
-
变化时间 (-ctime/天,-cmin/分钟):文件数据元(例如权限等)最后一次修改时间。
seq 100 > test.java # 创建100行的文件(清空原内容,标准输出新内容) find ./ -type f -name "*.java"|xargs cat|grep -v "^$"|wc -l # 代码行数统计,排除空行
mkdir
mkdir -p dir # 递归创建
mv
mv old new # 修改文件、文件夹名
rm
rm file # 运行后询问是否删除 rm -rf file # 强制删除
touch
touch file # 普通创建 touch test_{1..100} # 创建以test_开头的1~100的文件
file
file * file test.sh # 查看文件信息,一般看是否是shell脚本,或者executable可执行文件
[root@localhost ~]# file install.log install.log: UTF-8 Unicode text [root@localhost ~]# file -b install.log <== 不显示文件名称 UTF-8 Unicode text [root@localhost ~]# file -i install.log <== 显示MIME类别。 install.log: text/plain; charset=utf-8 [root@localhost ~]# file -b -i install.log text/plain; charset=utf-8
tree
tree -L 1 # 列出当前文件夹的第1层级
了解
basename
dirname
写脚本用的
chattr
用来改变文件属性
chattr +i /etc/fstab # 防止文件被修改和删除 chattr -i /etc/fstab # 移除属性
lsattr
查看文件的第二扩展文件系统属性
lsattr file
md5sum
计算和校验文件报文摘要的工具程序
md5sum test.sh # 记录文件的md5sum值,若文件被修改,其值也会变,防黑客用
# 检查文件testfile是否被修改过 md5sum testfile > testfile.md5 # 首先生成md5文件 md5sum testfile -c testfile.md5 # 检查文件
3.查看文件及内容处理命令 (19个)
vi
vim
:set nu # 打印行号 :wq! # 强制保存 shift+g # 跳到最后一行 shift+zz # 强制保存并退出 gg # 跳到第一行 dd # 删除当前行 3dd # 删3行 yy # 复制当前行 p # 粘贴在光标下方 o # 进入编辑模式,并往下方插入一行
cat
cat > test.java <<EOF > 1 > 2 > 3 > EOF # 清空原内容,标准追加新内容
more
显示文件内容,每次显示一屏
-
按
Space
键:显示文本的下一屏内容。 -
按
Enter
键:只显示文本的下一行内容。 -
按H键:显示帮助屏,该屏上有相关的帮助信息。
-
按B键:显示上一屏内容。
-
按Q键:退出more命令。
head
cat test.java | head -n 2 # 查看文件前两行
tail
默认输出文件的末尾10行
cat test.java | head -n 2 | tail -n 1 # 查看文件第2行
tail test.java # 实时查看文件后10行
sort
对文本文件中所有行进行排序
cat 1.txt | sort -nr # 打印文件内容,并进行降序排序
netstat -ant | awk 'NR>1{print $NF}' |sort |uniq -c # 打印最后一列,排序,去重并统计
netstat -ant | awk 'NR>1{print $NF}' |sort |uniq -c|sort -nrk 1 # 在上图的基础上再排序,倒叙,以第一列 # -n是按照数字大小排序,-r是以相反顺序,-k是指定需要排序的栏位
ifconfig ens33|awk 'NR==2{print $2}' # 提取网卡ip # ip于第2行 第2个
uniq
显示或忽略重复的行
uniq test
wc
统计文件的字节数、字数、行数
-c # 统计字节数,或--bytes:显示Bytes数。 -l # 统计行数,或--lines:显示列数。 -m # 统计字符数,或--chars:显示字符数。 -w # 统计字数,或--words:显示字数。一个字被定义为由空白、跳格或换行字符分隔的字符串。
wc -l test # 统计文件行数
cat test|wc -l # 统计文件行数
grep
egrep
强大的文本搜索工具,一般用egrep
-A <显示行数> --after-context=<显示行数> # 除了显示符合范本样式的那一行之外,并显示该行之后的内容。 -B<显示行数> --before-context=<显示行数> # 除了显示符合样式的那一行之外,并显示该行之前的内容。 -o # 只输出文件中匹配到的部分。 -n --line-number # 在显示符合范本样式的那一列之前,标示出该列的编号。 -G --basic-regexp # 将范本样式视为普通的表示法来使用。 -i --ignore-case # 忽略字符大小写的差别。
egrep -A 3 "2" test # 看后3行
egrep -ri -A 3 "error" app.log # 例:查找日志文件中报错的后3行信息
正则表达式
^ # 锚定行的开始 如:'^grep'匹配所有以grep开头的行。 $ # 锚定行的结束 如:'grep$' 匹配所有以grep结尾的行。 . # 匹配一个非换行符的字符 如:'gr.p'匹配gr后接一个任意字符,然后是p。 * # 匹配零个或多个先前字符 如:'*grep'匹配所有一个或多个空格后紧跟grep的行。 .* # 一起用代表任意字符。 [] # 匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。 [^] # 匹配一个不在指定范围内的字符,如:'[^A-Z]rep' 匹配不包含 A-Z 中的字母开头,紧跟 rep 的行 \(..\) # 标记匹配字符,如'\(love\)',love被标记为1。 \< # 锚定单词的开始,如:'\<grep'匹配包含以grep开头的单词的行。 \> # 锚定单词的结束,如'grep\>'匹配包含以grep结尾的单词的行。 x\{m\} # 重复字符x,m次,如:'0\{5\}'匹配包含5个o的行。 x\{m,\} # 重复字符x,至少m次,如:'o\{5,\}'匹配至少有5个o的行。 x\{m,n\} # 重复字符x,至少m次,不多于n次,如:'o\{5,10\}'匹配5--10个o的行。 \w # 匹配文字和数字字符,也就是[A-Za-z0-9],如:'G\w*p'匹配以G后跟零个或多个文字或数字字符,然后是p。 \W # \w的反置形式,匹配一个或多个非单词字符,如点号句号等。 \b # 单词锁定符,如: '\bgrep\b'只匹配grep。
cat /etc/passwd |egrep "^root" # 过滤文件内容以 root 开头的
cat /etc/passwd |egrep "nologin$" # 过滤文件内容以 nologin 结尾的
cat /etc/passwd |egrep "^s"|egrep "login$" # 过滤文件内容以 s 开头,并以 login 结尾的,不如下图方便
cat /etc/passwd |egrep "^s.*login$"
egrep -r "error" # 递归查找包含 error 的文件信息
egrep -r "error" -l # 递归查找包含 error 的文件
egrep "\b[1-9]\b" 1.txt # 过滤文件 1~9 的内容 # \b 表示字符的精准匹配
grep命令常见用法
在文件中搜索一个单词,命令会返回一个包含 “match_pattern” 的文本行:
grep match_pattern file_name grep "match_pattern" file_name
输出除之外的所有行 -v 选项:
grep -v "match_pattern" file_name
使用正则表达式 -E 选项:
grep -E "[1-9]+" # 或 egrep "[1-9]+"
tr
将字符进行替换压缩和删除
-d或——delete:删除所有属于第一字符集的字符;
将输入字符由大写转换为小写:
echo "HELLO WORLD" | tr 'A-Z' 'a-z' hello world
'A-Z' 和 'a-z'都是集合,集合是可以自己制定的,例如:'ABD-}'、'bB.,'、'a-de-h'、'a-c0-9'都属于集合,集合里可以使用'\n'、'\t',可以可以使用其他ASCII字符。
使用tr删除字符:
echo "hello 123 world 456" | tr -d '0-9' hello world
vimdiff
vimdiff 1.txt 2.txt # 对比文件内容
dos2unix
将DOS格式文本文件转换成Unix格式
最简单的用法就是dos2unix直接跟上文件名:
dos2unix file
4.文件压缩及解压缩命令
tar
将许多文件一起保存至一个单独的磁带或磁盘归档,并能从归档中单独还原所需文件
将 /home/vivek/bin/
目录打包,并使用 gzip 算法压缩。保存为 /tmp/bin-backup.tar.gz
文件。
tar -zcvf /tmp/bin-backup.tar.gz /home/vivek/bin/
5.信息显示命令
uname
uname -a # 看内核的
hostname
hostname # 看主机名的
hostname -I # 看网卡的ip地址
uptime
查看Linux系统负载信息
uptime # 输出 系统时间 运行的时间 当前登录的用户数 系统负载平均值 # 负载是代表整个系统的繁忙程度,负载数和cpu数绑定
stat
用于详细显示文件的状态信息
stat 1.txt
du
du -sh ./* # -s 仅显示总计,只列出最后加总的值。 # -h 以K,M,G为单位,提高信息的可读性。
df
df -h # -h 以可读性较高的方式来显示信息
df -i # -i 显示inode的信息
top
实时查看系统的运行状态
top交互命令
1:看cpu k:终止一个进程; q:退出程序; m:切换显示内存信息标签:文件,grep,字符,核心,egrep,命令,查找,Linux,匹配 From: https://www.cnblogs.com/Kodakku/p/17278757.html