bash shell笔记
1 cd 切换到指定文件位置 " . " 当前目录 " .. " 父目录 2 pwd 显示路径 3 ls 显示当前目录下的文件和目录 4 ls -F 区分文件和目录 5 ls -a 显示隐藏文件和普通文件 6 ls -R 显示文件下的内容 7 ls -l (ll)显示每个文件的相关信息 8 touch 创建空文件 cp 复制文件 rm 删除文件 mv 移动文件或重命名 9 cp -R 复制目录 rm -f 强制删除 rm -R 删除多个文件 rm -rf 强制删除多个文件 10 mkdir 创建目录 mkdir -p 同时创建多个目录和子目录 11 rmdir 删除空目录 12 file 查看文件类型 13 cat 查看整个文件 cat -n 加行号 14 more(less) 查看整个文件,显示每页数据后停止 15 16 查看部分文件: tail 显示文件末尾10行 tail -n x 显示行数 17 head 显示文件前10行 head x 显示行数 18 ps 显示运行的程序的信息 19 top 实时监测进程 20 df 磁盘空间 21 mount 卸载设备 22 du 显示当前目录下所有文件的磁盘使用情况 23 du -hs 总计磁盘空间 24 sort 对数据进行排序 sort -n 把数字识别成数字而不是字符 sort -M 按月排序 -t 指定分隔符 25 grep [搜索内容]+ 搜索文件 搜索数据 26 exit 退出shell 27 sleep 10 会话暂停10秒 sleep 10& 后台睡眠10秒 28 jobs 显示后台运行的进程 29 coproc { ; } 协程,后台生成子shell,并执行命令,命令以分号结束,花括号前后都要有一个空格 30 31 外部命令:当外部命令执行时,会创建一个子进程。 32 内建命令:不需要借助外部程序文件来运行,运用type命令检查是哪种命令 33 history 查看最近用过的命令 34 alias 命令创建另一个名称 35 env或printenv 查看全局环境变量 36 set 显示所有环境变量,包括局部变量和全局变量 37 echo $ 显示变量当前值,让命令作为命令行参数 38 variable="Hello World" 设置局部变量 39 export variable 将局部变量变为全局变量 40 unset 删除环境变量 41 PATH shell查找命令的目录列表,由冒号分割 42 useradd 添加新用户 43 userdel 删除用户 44 groupadd 创建新组 45 groupmod 修改组 46 文件权限符: - 代表文件 d文件 r可写 w可读 x可执行 u用户 g组 o其他 +增加权限 -移除权限 =权限设置确定值 47 umask 默认文件权限设置 48 chmod 改变文件权限 49 chown 改变文件属主 50 chgrp 改变默认属主 51 52 关于shell 53 ` ` 或 $() 实现命令替换fee 54 输出重定向:将命令的输出发送到一个文件中 符号: > 或 >> (不覆盖文件原内容) 55 command > file 56 输入重定向:将文件的内容向指定命令中执行 符号: < 57 command < file 58 内联输入重定向:命令行中输入指向命令中执行的数据 符号: << 59 command << mark 60 >test1 61 >test2 62 >mark (数据开始和结尾文本标记必须一致) 63 管道:将一个命令的输出作为另一个命令的输入 符号: | 64 command1 | command2 65 数学运算符: 66 expr命令:expr 1 \* 2 (\)转义符 67 $[1 * 2]命令 68 bc :内建的bash计算器 输入quit退出 scale=4 表示结果包含四位小数 print打印变量结果 69 if-then语句: if command 70 then 71 command 72 fi 73 test 当命令中的条件成立时,退出状态码0 74 数值比较: 75 x1 -eq x2 (是否相等) x1 -ge x2 (x1是否大于或等于x2) x1 -gt x2(x1是否大于x2) 76 x1 -le x2 (x1是否小于或等于x2) x1 -lt x2 (x1是否小于x2) x1 -ne x2 (是否不相等) 77 case命令: case variable in 78 pattern1) command1;; 79 pattern2) command2;; 80 *) default command3;; 81 esac 变量与多种模式进行比较 82 for循环: for var in x1 x2 x3 83 do 84 commands 85 done (var第一次迭代x1第二次x2) 86 IFS内部字段分隔符: 默认(空格,制表符,换行符)IFS=$'\n'(只识别换行符) 87 C语言风格的for循环:for((i=1; i<=10; i++)) 88 do 89 echo 90 done 91 while命令:while testcommand 92 do 93 command 94 done (当test成立时进入循环) 95 until命令:until testcommand 96 do 97 command 98 done (当test成立时退出循环) 99 break命令:退出循环 break n (n是退出的循环层级) 100 continue命令:终止循环中的某次命令 continue n(n是要继续的循环层级) 101 命令行参数:$0程序名 $1第一个参数 $2第二个参数 $#参数的个数 102 $*将所有参数视为一个单词一个整体 $@将所有参数视为同一字符串的多个独立单词 103 shift命令:移动变量 默认将每个参数变量左移动一个位置