Linux Shell命令基础汇总(长期更新)

就是个人记录,方便自己查找信息。

Shell基础及工具

  • chsh -l 或 cat /etc/shells 查看机器安装的所有shell
  • bash --login 是执行脚本的shell成为一个login shell,而login shell会读取系统和用户的profile/rc文件
  • env和export 显示的是环境变量
  • set和declare显示的是环境变量和自定义变量
  • read : -p 显示提示语;-t 设置等待输入的时长(秒);-s 静默模式(用于输入密码等时不显示在屏幕上);-u 从文件描述符中读取输入
  • expr 表达式计算
  • alias,unalias
  • eval 将一个字符串当成命令来执行 cmd_str='ls -l'; eval $cmd_str
  • history 历史命令; ctrl + R 搜索历史命令(如有多个匹配,多次按ctrl+R可以往前搜索;如果找到了,按 左右方方向键可以到命令的头或尾,修改命令后再执行;或者直接回车执行命令); 不想留下记录,export HISTCONTROL=ignorespace,然后在输入命令前加空格,这样命令将不会被记录;或者 export HISTCONTROL=* ,之后输入任何命令都不会被记录,恢复记录export HISTCONTROL=
  • xargs: 从标准输入中读取内容并传递给它协助的命令,如:find . -name "*.log" | grep "FAIL"
  • time:有bash内置的time命令,也有/usr/bin/time系统命令。time打印出一个命令的执行时长。time输出信息重定向: { time command-line; } 2>file 注意分隔符的使用;或 (time command-line) 2>file 这里time紧贴着小括号(这是启动子shell,占用资源,不推荐)。
  • sleep 睡眠,可以支持秒、分、时、天等,也支持0.01、0.003这样小数秒的睡眠,不过sleep命令只能保证10ms级别的精度。
  • sort : -n, --numeric-sort 按照数值大小排序;-k 按照一列或多列顺序排序;-r 表示倒序排序;-h 以human的形式排序,能识别G>M>K
  • cut 提取文件中每一行的一部分;cut -d ' ' -f 1 这种用法时,可以替代awk中的基本用法。

文件与磁盘命令

file - 识别文件的类型和编码格式

ln - 软链接、硬链接的创建 (硬链接不能跨文件系统、不允许普通用户对目录做硬链接)

find - 查找文件或目录

  • find . -type d -name good (根据文件类型查找:d, f, l, b, c, p, s)
  • find . -type f -regex './e.avi.*[0-9]+$' (使用正则表达式进行文件匹配)
  • 多种正则表达式:emacs, posix-awk, posix-basic, posix-egrep, posix-extended
  • find . -type f -mmin -5 (5分钟内被修改过的文件;+5 则是5分钟以前被修改过的;还有mtime按天)
  • find . -type f -size +50M (大约50MB大小的文件)
  • find . -maxdepth 1 size +50M -type f
  • find . -type f -a name "*.log" (-a 设置多个条件;还有 -o 、!expr 等)

du - 查看磁盘占用量

  • du -sm /home/jay/ (du -sh *)
  • du -ch *.tar.gz (-c 是求和)
  • du -ah . (-a 表示所有的文件,包括隐藏文件)
  • du -sh --exclude="*/.*" (--exclude 表示排除部分文件)
  • du -ah . | sort -hr (查看大小并排序;sort -h 表示human排序,能识别G>M>K之类的)
  • du 磁盘空间占用量;ls 展示的是文件内容的大小
  • 最小的磁盘占用量是一个数据快(block),一般是4KB

压缩解压相关命令

  • gzip, gzip -d
  • gzip 可指定压缩级别(1-9级,9级压缩度最高,但速度最慢)
  • tar -zcvf mytgzfile.tar.gz libvirt (-c 压缩,-x 解压缩,-z 表示gzip格式)
  • bzip2, bunzip2 (这两个命令其实是同一个文件;根据执行命令的名称来做不同的事情)
  • tar -jcvf mybizp2file.tar.bz2 (-j 表示bzip2格式)
  • zip, unzip

文本处理

echo - 返回字符

  • echo "Hello $name" 注意双引号、单引号的区别
  • 转义字符:\a, \b, \t, \r, \n等等
  • -n 去掉末尾的换行符
  • echo -e "\033[颜色1;颜色2m 要展示的文字 \033[0m" (输出有颜色的字符;颜色1为前景色、颜色2位背景色)

系统相关

  • uname -r

master

Stay hungry, stay foolish.

发表评论

邮箱地址不会被公开。 必填项已用*标注

*