一、基础知识
Shell是什么?
Shell是一种命令行解释器,它能够作为用户与Linux内核之间的接口,为用户提供了一种操作系统内核的方式。
常见的Shell有哪些?
常见的Shell有Bash、Ksh、Tsh等,在Linux系统中,Bash被广泛使用,它是GNU计划的一部分,并且是大多数Linux系统的默认Shell。
Shell脚本是什么?
Shell脚本是用Shell语言编写的一组命令,它可以很方便地调用Linux系统提供的各种工具和命令。
二、常用命令
1、ls命令
ls [-aAdfFhilnrRSt] directory...
ls命令用于显示当前工作目录下的文件和子目录,包含隐藏文件和分别对待文件和目录。常用参数:
- -a:显示所有文件,包括隐藏文件。
- -l:显示详细信息。
- -h:配合-l使用,以易读的方式显示文件大小。
2、cd命令
cd [目录名称]
cd命令用于切换当前所在目录。常用操作:
- cd:切换到用户主目录。
- cd ..:切换到上一级目录。
- cd /:切换到根目录。
3、mkdir命令
mkdir [目录名称]
mkdir命令用于创建新的目录。常用选项:
- -p:递归创建目录。
4、rm命令
rm [-fir] [文件或目录]
rm命令用于删除文件或目录。常用选项:
- -f:强制删除,不进行确认。
- -i:交互式删除,需要确认。
- -r:递归删除目录及其内容。
5、cp命令
cp [-adfilprsu] [源文件路径] [目标文件路径]
cp命令用于复制文件或目录。常用选项:
- -r:递归复制目录及其内容。
- -p:复制文件的属性。
- -f:强制覆盖。
三、常用技巧
1、通配符
通配符是用来匹配文件名的特殊字符,常见的通配符有 *、?、[],通过使用通配符,可以进行批量操作。
# 显示所有以 .txt 结尾的文件 ls *.txt # 显示所有以 t 开始的 3 个字符的文件 ls t?? # 显示所有以 a、b、c 开头的文件 ls [abc]*
2、管道
管道符(|)将一个命令的输出作为另一个命令的输入,可以用来进行数据的过滤和转换。
# 显示所有以 .txt 结尾的文件,并按文件大小排序 ls -l *.txt | sort -k 5 # 统计文件中包含 foo 关键字的行数 cat file.txt | grep 'foo' | wc -l
3、命令替换
命令替换($())可以将命令的输出结果作为变量传递给其他命令。
# 显示当前系统的登录用户数量 echo "当前系统用户数量为 $(who | wc -l)"
四、综合应用
将前缀为 a 的所有文件复制到新建的目录中,并将文件名修改为以 z 结尾:
# 创建新目录 mkdir new_dir # 复制文件并重命名 cp -r a* new_dir/ && cd new_dir && rename 's/$/.z/' a*
统计当前目录中所有文件的总大小:
# 输出文件大小并求和 ls -l | awk '{print $5}' | grep '^[[:digit:]]' | awk '{s+=$1} END {print s}'
将 csv 文件中第 2,3 列合并为新的一列,并将价格乘以2:
# 使用awk命令进行列合并和计算 awk -F, '{print $1 "," $2+$3*2 "," $4}' file.csv
五、总结
Shell命令是Linux系统中不可或缺的一部分,通过掌握基础知识和常用命令,可以大大提高工作效率和代码质量,同时,熟练应用常用技巧和命令组合,可以进行复杂的数据处理和自动化操作。