shell常用命令
- Shell常用命令
- Shell字符串
- Shell脚本
Shell常用命令
Shell 常用命令包括文件和目录操作、文本处理、系统管理等,以下是一些常用的命令及其用法: 文件和目录操作: cd:切换当前目录,例如 cd /home 进入 /home 目录,cd .. 返回上一级目录。 pwd:显示当前工作目录的完整路径。 ls:列出目录内容,常用参数包括 -a(显示隐藏文件)、-l(显示详细信息)、-F(显示文件类型)。 chmod:改变文件或目录的权限,例如 chmod 755 aaa.txt 或者 chmod +x aaa.sh chown:改变文件或目录的所有者和所属组,例如 chmod www:www aaa.txt mkdir:创建目录,例如 mkdir -p 1/2/3 创建多级目录。 rmdir:删除空目录,例如 rmdir -p 1/2/3 删除多级空目录。 cp:复制文件或目录,例如 cp -r a b 复制目录 a 并命名为 b。 mv:移动或重命名文件或目录,例如 mv a b 将 a 移动到 b 或重命名为 b。 rm:删除文件或目录,常用参数包括 -i(删除前询问)、-r(递归删除)、-f(强制删除)。 find 查找文件或文件目录,find ./ -name aaa.txt 查找当前目录下 aa.txt文件 grep 正则查找文本,例如 grep -rl 'www.baidu.com' ./ 查找当前目录下所有含有 www.baidu.com 文本的文件 文本处理: sed:流编辑器,用于文本替换、删除等操作。例如 sed 's/old/new/g' 将所有 old 替换为 new。 awk:文本处理工具,用于模式扫描和处理。例如 awk '{print $1}' file.txt 打印每行的第一个字段。 sort:排序文本文件,例如 sort file.txt 按字典序排序。 uniq:去除重复行,常用参数包括 -c(计数每个唯一行出现的次数)。 系统管理: df:报告文件系统的磁盘空间使用情况 df -h du:估算文件和目录的磁盘使用情况 du -sh dir su:切换用户,例如 su root 切换到 root 用户。 who:显示当前登录的用户信息。 top:实时显示系统中各个进程的资源占用情况。 ps:显示当前运行的进程信息,例如 ps aux 显示所有进程的详细信息。 kill:终止进程,例如 kill PID 终止 PID 对应的进程。 tar:打包和压缩文件,例如 tar -czvf test.tar.gz a.c 将 a.c 压缩为 test.tar.gz。 netstat:查看网络 netstat -ano | grep 80 或 netstat -ntlp | grep 80 systemctl:系统命令 systemctl status mysql wget:下载文件 wget http://example.com/file.txt curl:向服务器发送数据 curl http://baidu.com 这些命令在 Shell 中非常常用,掌握它们可以大大提高工作效率和处理系统任务的能力。
Shell字符串
Shell脚本
echo命令 1.6.1 功能说明 用于显示文字。 1.6.2 语法 Echo [-ne] [字符串]或echo [--help] [--version]。 补充说明:echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开,并在最后加上换行号。 -n不进行换行 -e若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出\n换行\b空格... 1.7 常见参数 -n 不要在最后自动换行; -e 若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出; \a 发出警告声; \b 删除前一个字符; \c 最后不加上换行符号; \f 换行但光标仍旧停留在原来的位置; \n 换行且光标移至行首; \r 光标移至行首,但不换行; \t 插入tab; \v与\f相同; \\插入\字符; \nnn插入nnn(八进制)所代表的ASCII字符; --help 显示帮助; --version 显示版本信息; 8 shell变量 $0 Shell本身的文件名 $1~$n 添加到Shell的各参数值,$1是第1参数、$2是第2参数… $$Shell 本身的PID(ProcessID) $? 最后运行的命令的结束代码(返回值) $* 所有参数列表。如“$*”用「“」括起来的情况、以"$1$2…$n"的形式输出所有数。 $@ 所有参数列表。如"$@"用「"」括起来的情况、以"$1""$2"…"$n"的形式输出所有参数。 $# 添加到Shell的参数个数。 case选择语句 case expr in 1) //todo 条件1处理 ;; *) //todo 默认 ;; esac 随机数和expr命令 echo $RANDOM 范围是:[0,32767] expr:通用的表达式计算命令,表达式中参数与操作符必须以空格分开,表达式中的运算可以是算术运算,比较运算,字符串运算和逻辑运算。 例:expr 5 % 3 Expr 5 \* 3 #乘法符号必须被转义 脚本调试 h–x脚本名 该选项可以使用户跟踪脚本的执行,此时shell对脚本中每条命令的处理过程为:先执行替换,然后显示,再执行它。 shell显示脚本中的 执行时,会在行首添加一个加号“+”。 sh–v脚本名 在执行脚本之前,按输入的原样打印脚本中的各行,打印一行执行一行。 sh–n脚本名 对脚本进行语法检查,但不执行脚本。如果存在语法错误,shell会报错,如果没有错误,则不显示 任何内容。 比较字符串 等于 = str1 = str2 不等于 != str1 != str2 整数比较 等于 -eq [ int1 -eq int2 ] 不等于 -ne [ int1 -ne int2 ] 大于 -gt [ int1 -gt int2 ] 大于等于 -ge [ int1 -ge int2 ] 小于 -lt [ int1 -lt int2 ] 小于等于 -le [ int1 -le int2 ] 等于 = [[ int1 = int2 ]] 不等于 != [[ int1 != int2 ]] 大于 > [[ int1 > int2 ]] 大于等于 >= [[ int1 >= int2 ]] 小于 < [[ int1 < int2 ]] 小于等于 <= [[ int1 <= int2 ]] 逻辑比较 与 -a [ expr1 -a expr2 ] 或 -o [ expr1 -o expr2 ] 非 ! [ ! expr ] 与 && [[ expr1 && expr2 ]] 或 || [[ expr1 || expr2 ]] 非 ! [[ ! expr ]] 文件测试 -f fname fname 存在且是普通文件时,返回真 ( 即返回 0 ) -L fname fname 存在且是链接文件时,返回真 -d fname fname 存在且是一个目录时,返回真 -e fname fname(文件或目录)存在时,返回真 -s fname fname 存在且大小大于 0 时,返回真 -r fname fname(文件或目录)存在且可读时,返回真 -w fname fname(文件或目录)存在且可写时,返回真 -x fname fname(文件或目录)存在且可执行时,返回真 控制结构 (1)if条件语句; (2)case选择语句; (3)for循环语句; (4)while循环语句; (5)until循环语句; (6)break、continue、sleep命令; (7)select循环与菜单; (8)shift命令; (9)各种括号的作用,${...},$(...),$[...],$((...)),[...],[[...]],((...))。 几种特殊的替换结构 ${var:string},${var:+string},${var:=string},${var:?string} ①${var:-string}和${var:=string}:若变量var为空,则用在命令行中用string来替换${var:-string},否则变量var不为空时,则用变量var的值来替换${var:-string};对于${var:=string}的替换规则和${var:-string}是一样的,所不同之处是${var:=string}若var为空时,用string替换${var:=string}的同时,把string赋给变量var:${var:=string}很常用的一种用法是,判断某个变量是否赋值,没有的话则给它赋上一个默认值。 ②${var:+string}的替换规则和上面的相反,即只有当var不是空的时候才替换成string,若var为空时则不替换或者说是替换成变量var的值,即空值。(因为变量var此时为空,所以这两种说法是等价的) ③${var:?string}替换规则为:若变量var不为空,则用变量var的值来替换${var:?string};若变量var为空,则把string输出到标准错误中,并从脚本中退出。我们可利用此特性来检查是否设置了变量的值。 补充扩展:在上面这五种替换结构中string不一定是常值的,可用另外一个变量的值或是一种命令的输出。