本文共 2162 字,大约阅读时间需要 7 分钟。
Shell是 Unix/Linux系统中重要的命令行接口工具,主要用于批量处理、系统管理和自动化脚本编写。Shell分为两种类型:Bash和C Shell。
C Shell
。cat /etc/shells
echo
是Shell中最常用的命令,用于显示信息或执行操作。
echo -e "ab\bc" # 输出 "abc"echo -e "\e[1;31m abcd \e[0m" # 输出彩色字体,支持ANSI代码
\a 警告声\b 删除前一个字符\c 不加换行符\f 换页\n 换行(默认)\r 回车\t 制表符\v 垂直制表符\\ 插入`\`\0nnn 插入ASCII字符(八进制)\xhh 插入ASCII字符(十六进制)
chmod 755 my.sh # 使脚本可执行./my.sh # 执行脚本
bash my.sh
yum update -y dos2unix # 安装转换工具
history -c # 清除命令历史history -w # 强制保存历史!n # 执行第n条命令!字符串 # 找到最近包含“字符串”的命令vi /etc/profile # 修改bash配置文件,保存历史条数
alias vi="vim" # 定义别名unalias vi # 移除别名
Ctrl+A 光标到开头Ctrl+C 终止命令Ctrl+Z 后台暂停Ctrl+U 剪切前面命令Ctrl+K 剪切后面命令Ctrl+Y 粘贴命令Ctrl+L 清屏
/dev/stdin 标准输入(文件描述符0)/dev/stdout 标准输出(文件描述符1)/dev/stderr 标准错误(文件描述符2)# 重定向示例ls > my.txt # 覆盖ls >> my.txt # 追加ls > file 2>&1 # 同时保存正确输出和错误输出
wc -c my.txt 字符计数wc -l my.txt 行计数wc -w my.txt 单词计数
; 无关命令&& 前面无误执行后面命令|| 前面错误则执行后面命令
命令1 | 命令2
grep 'ss' /etc/services 查找文本grep -i 'ss' /etc/services 忽略大小写grep -n 'ss' /etc/services 显示行号grep -v 'ss' /etc/services 找不到的行
? 单个字符\* 任意字符(非空)[] 字符类^ 开头- 区间^0-5 特定范围
'' 不解析特殊符号"" 不解析特殊符号(除$、`、`)` 运行子shell$() 子shell输出# comment
name=12echo $name
PATH="/usr/bin:/usr/sbin:$PATH"
$0 命令名或脚本名$1 第一个参数$* 所有参数@ 分别处理参数# 命令的返回状态? 最后一个命令的状态$! 后台进程号$$ 进程号
read -s -t 30 -n 3 -p "输入数字" yournumber
aa=11bb=22declare -i cc=$aa+$bbdeclare -i cc=$aa+$bbdd=$(expr $aa + $bb)ff=$(( $aa + $bb ))
==
、!=
+
、-
、*
、/
、%
&&
、||
||
、&&
、!
==
、<
、>
、<=
、>=
=~
、$?
、+=
、-=
、*=
、/=
、%=
[ condition ][ -e /path/to/file ] 判断文件存在[ $a -eq $b ] 判断数值相等[ "字符串1" =~ "字符串2" ] 部分字符串匹配[ -d /path ] 判断是否是目录[ -f /path ] 判断是否是文件
转载地址:http://zhzfk.baihongyu.com/