常用Shell命令与脚本工具汇总

102 阅读4分钟

在日常运维工作中,利用Shell命令和脚本工具可以极大提高工作效率,减少重复劳动。本篇笔记将梳理一些常用的Shell命令及其使用方法,帮助大家在系统管理、自动化运维以及开发中更高效地操作。


文件权限管理:chmod

在Linux中,文件的权限管理是非常重要的,特别是在多用户环境下。chmod命令用于改变文件或目录的访问权限。通过理解文件权限以及chmod的使用,您可以轻松控制文件和目录的可访问性。

chmod +x filename

chmod +x使得文件变为可执行文件。

权限的数字表示

  • 读权限(r) = 4
  • 写权限(w) = 2
  • 执行权限(x) = 1

对于每个文件或目录,权限可以分为三类用户:

  • u:文件所有者
  • g:文件所属组
  • o:其他用户
  • a:所有用户

例如,chmod 777等同于chmod a=rwx,赋予所有用户读、写和执行的权限。


文本处理:grep, awk, sed, xargs

在日常运维中,经常需要处理大量的文本数据。以下命令在文本搜索、处理和转换中非常有用。

grep — 文本搜索

grep是一个强大的文本搜索工具,支持正则表达式,可以用来查找文件中的特定行。例如:

ls -l | grep ^d

这条命令会列出所有以"d"开头的文件,通常用来查找目录。

awk — 文本处理与格式化

AWK是一种强大的文本处理工具,常用于数据提取和报告生成。您可以使用AWK来处理列数据,过滤和格式化信息。

更多详细信息,请参考AWK维基

sed — 流编辑器

sed是一个流编辑器,用于解析和转换文本。最常用的操作是替换文本:

sed 's/regexp/replacement/g' inputFileName > outputFileName

xargs — 处理标准输入

xargs用于将标准输入转换为命令行参数并执行。许多命令(如grepawk)可以接受输入作为命令行参数,而有些命令(如cpecho)则只能接受命令行参数,此时可以用xargs来解决。


输出重定向:>2>&1

输出重定向是Shell编程中的一个重要概念,允许你将命令的输出重定向到文件或其他命令。重定向可以让你捕获标准输出(stdout)或标准错误输出(stderr)。

例如:

./test.sh > log.txt 2>&1

此命令会将标准输出和标准错误输出都重定向到log.txt文件中。


测试命令:test

test命令用于评估文件类型和文件属性。它常用于Shell脚本中,例如判断文件是否存在、是否具有可写权限等。

test -f file.txt && echo "File exists"

管理文件压缩和解压

Linux中有多种格式用于文件压缩和解压,常见的有targzipbzip2等。以下是常用的压缩解压命令。

tar命令

tar用于打包和解包文件。例如:

tar xvf FileName.tar
tar zcvf FileName.tar.gz DirName

gzipbzip2命令

gzipbzip2用于压缩文件,gunzipbunzip2用于解压。

gzip FileName
gunzip FileName.gz
bzip2 -z FileName
bunzip2 FileName.bz2

进程管理:ps, kill

进程管理是日常系统维护的重要任务。ps命令可以查看当前系统的进程,kill命令可以终止不响应的进程。

例如:

ps -A | grep name
kill -9 PID

环境变量管理

环境变量在Shell中扮演着重要角色,决定了系统和程序的运行环境。可以通过设置环境变量来影响命令的执行方式,或者为Shell脚本配置特定参数。

永久设置环境变量

系统级环境变量存储在/etc/profile中,用户级环境变量则存储在~/.bashrc中。可以通过export命令设置环境变量:

export PATH=/usr/local/bin:$PATH

查看和修改环境变量

使用echo可以查看环境变量的值,export命令用于设置新的环境变量。

echo $PATH
export MYNAME="Prin"

权限管理

Linux系统中的文件和目录都有访问权限,了解并正确使用文件权限管理命令是日常工作中的必备技能。

ls -l命令查看文件权限

ls -l 文件夹

输出的权限格式为drwxrwxrwx,其中每一组字符代表文件类型和不同用户的权限。

chmod命令修改权限

chmod o+w filename

这条命令为其他用户添加文件的写权限。

参考资料