linux常用的命令

121 阅读4分钟
  1. 文件操作类
# cat 
cat -n /etc/profile 显示行号 
cat -n /etc/profile | more 
tac  从最后一行开始显示,可以看出 taccat 的倒着写!

# more 
空格键(space) 代表向下翻一页
enter 代表向下翻一行
q 离开 
control + f  代表向下滚动一屏
control + b 或者 b 代表向是上滚动一屏,管道符模式下不生效
= 输出当前的行号
:f 输出当前的文件名和行号

# less
空白键    :向下翻动一页;
[pagedown]:向下翻动一页;
[pageup]  :向上翻动一页;
/字串     :向下搜寻『字串』的功能;
?字串     :向上搜寻『字串』的功能;
n         :向下查找
N         :向上查找
q         :离开 less 这个程序;

# head 
head  /etc/profile  默认显示前10行内容
head -n 5 /etc/profile 显示文件的前5行内容

# tail 
tail /etc/profile 默认显示文件尾的10行内容
tail -n 5 /etc/profile  展示文件尾的5行内容
tail -f  /etc/prodile 实时追踪文件的更新 
tail -fn 5 /etc/profile 实时追踪时只展示末尾5行

# > (重定向) 和 >> (追加) 
ls -l > 文件  将ls -l的内容写入到文件,如果文件不存在会创建
ls -l >> 文件 将ls -l的内容追加到文件,如果文件不存在会创建

# ln
ln -s 文件名/目录名  链接名
ln -s /usr/local/Cellar/openssl/1.0.2s openssl #1.0.2s目录指向openssl (openssl 是 1.0.2s的链接)

# history 查看已执行的历史命令
history 10 展示最近执行的10个命令
!5 执行编号为5的命令
  1. 时间日期类
# date
date "+%Y-%m-%d %H:%M:%S" 当前的年月日时分秒
date -s "2022-01-10 12:08:08" 设置系统当前的时间

# cal 查看日历 
cal  显示本月的日期
cal 2022 显示2022全年的日期

  1. 搜索查询类
# find
find ./ -iname 1.txt  按照指定文件名查找 -i 忽略大小写
find ./ -user nobody  查找属于指定用户名的所有文件
find ./ -size +200M   查找大于200M的文件 (+n大于 -n小于 n等于,单位有k M G)
find ./ -type d -name l 查找类型是文件夹并且名称为l的文件夹  -type  指定文件的类型(d f l)
find ./ -perm 0777 # 根据权限来查找
find ./ ! -perm 0777 #权限不是777的

# locate (快速定位文件的路径 需定期执行 updatedb 创建locate数据库)
locate命令要比find -name快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/mlocate/mlocate.db
locate + 文件名 
locate /user/*.shell | less  查找.shell结尾的文件 并用less命令展示
locate -c /user/*.shell  统计shell文件的个数
locate --regex "(\.mp4|\.avi)" 搜索 .mp4 或者 .avi文件

# which 
which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令

# whereis 
查找二进制文件、源文件和帮助手册文件

# type
命令用来显示指定命令的类型,判断给出的指令是内部指令还是外部指令
外部命令会显示 命令的路径

# grep 
参数 -r显示文件名 -n显示行号 -e正则表达式 -i不区分大小写   -c显示匹配的行(显示匹配的行数)	-v 显示不包含匹配的文本所有行
grep -r 'linux' *.php  查找当前后缀名称为 .php 并包含 linux字符串的文件 
grep -r 'hello' /User/qmp/text  查找某个文件夹中 包含 hello 字符串的文件
grep -v 'test' *test*   查询文件名中包含 test 的文件中不包含test 的行
grep -v "k" a.txt  查看a.txt中不包含 k 的行 
  1. 压缩和解压类
# gzip (压缩) 和 gunzip (解压)
压缩后拓展名为 .gz  , 不会保留原始文件 , 不会对目录进行压缩 , 会对目录中的文件依次压缩
例子 :temp 目录下有两个文件 1.txt 2.txt 
gzip temp/* 会得到 1.txt.gz 2.txt.gz , 且 文件 1.txt 2.txt 也不会保留
gzip -c 1.txt > 1.txt.gz  压缩后保留原始文件 1.txt
gzip -r /test/            -r递归压缩  会对test目录下的文件依次进行压缩
gzip -d 1.txt.gz          对压缩文件进行解压缩 解压后的文件名为1.txt
gunzip + 1.txt.gz         解压文件  gunzip 内部执行的就是 gzip -d 

# zip (压缩) 和 unzip (解压)
zip [选项] 要生成的压缩文件  将要压缩的内容
选项: 
   -r 递归压缩
   -d 指定解压目录
   -l 查看压缩的文件
zip -r 1.zip /tmp   将/tmp目录中的文件和文件夹 递归压缩成 1.zip 
unzip -d /a 1.zip   将1.zip 中的内容解压到 /a 目录下 
unzip -l 1.zip      查看1.zip中的内容

# tar
tar [选项] xxx.tar.gz 要打包的内容
选项:
  -c 产生 .tar 的打包文件
  -v 显示详细信息
  -f 指定压缩后的文件名
  -z 打包同时压缩
  -x 解包 .tar 文件 
  -C 切换到指定的目录
tar -zcvf 1.tar.gz 1.txt 2.txt  将1.txt 和 2.txt 压缩成 1.tar.gz 
tar -zcvf 1.tar.gz /home/       将home文件夹压缩成 1.tar.gz
tar -zxvf 1.tar.gz  -C /tmp     将1.tzr.gz 解压到 tmp 目录下