文件目录命令
ls 功能:显示文件和目录的信息
ls -a 显示所有文件
ls -l 显示文件属性
ls -lh 显示文件大小
ls -lt 显示文件按照修改时间排序
cd 功能:切换目录
cd dir 切换到当前目录下的dir目录
cd / 切换到根目录
cd .. 切换到到上一级目录
cd ../.. 切换到上二级目录
cd ~ 切换到用户目录
cp 功能:复制文件
cp source target 将文件source复制为target
cp /root /source . 将/root下的文件source复制到当前目录
cp –av soure_dir target_dir 将整个目录复制,两目录完全一样
echo 功能:输出字符串或变量到标准输出或文件
echo "hello" 输出 hello
echo $PATH 输出环境变量PATH的值
pwd 功能:打印当前工作目录的绝对路径
mv 功能:移动或者重命名文件或目录
mv file1 file2 将1重命名为2
mv file1 dir1 将file1 移动到dir1目录下
rm 功能:删除文件或目录
rm file1 删除file1
rm -r dir1 删除dir1目录和内容
cat 功能:显示或连接文件的内容
cat file1 显示file1的内容
cat file1 file2 > file3 将1和2的内容连接起来,并写入到3中
grep 功能: 在文件中搜索匹配的字符串
grep "hello" file.txt 在file1中搜索包含hello的行并输出
grep -i "hello" *.txt 所有以.txt结尾的文件中搜索不区分大小写的"hello"并输出
find 功能: 在目录中查找符合条件的文件或目录
find . -name "*.txt" 在当前目录及其子目录中查找所有以.txt结尾的文件
find /home/user/Downloads -size +10M 在/home/user/Downloads目录中查找所有大于10M的文件
在shell脚本中处理错误和异常的常用方法
判断命令的返回值,如果不为0,则表示出错。可以使用 $? 变量获取上一个命令的返回值,或者使用 && 和 || 运算符来根据返回值执行不同的操作。
例子:ls file.txt || echo "file not found" 如果 file.txt 不存在,则输出 “file not found”
使用 set -e 命令来让脚本在遇到错误时自动退出,而不是继续执行。这样可以避免一些潜在的问题。
例子:set -e; cp file1 file2; echo "done" 如果 file1 不存在或者复制失败,则脚本会立即退出,不会输出 “done”
使用 trap 命令来捕获一些信号或异常,并执行相应的操作。比如,可以捕获 ERR 信号来处理所有非0返回的shell执行,或者捕获 EXIT 信号来在脚本结束时做一些清理工作。
例子:trap 'echo "error occurred at line $LINENO"' ERR; cp file1 file2; echo "done" 如果复制失败,则输出 “error occurred at line $LINENO”