Linux Shell编程基础与实践:命令详解与案例演示

需积分: 3 1 下载量 119 浏览量 更新于2024-09-18 收藏 4KB TXT 举报
"这篇文档是关于shell编程的初级到精通2-3章的学习总结,涵盖了基本的文件操作、用户管理、权限设置、正则表达式以及编辑器VIM的使用方法。" 在shell编程中,我们经常需要与Linux系统进行交互,对文件和目录进行操作。例如,`ls -l /etc/sh*`用于列出`/etc`目录下所有以`sh`开头的文件和目录,其详细信息包括权限、所有者、大小等。`date`命令显示当前日期和时间,而`who`则用来查看当前登录系统的用户。`useradd wang`创建了一个名为`wang`的新用户,`usermod -p 123456 wang`则将该用户的密码设置为`123456`。然而,这个密码是明文显示的,通常在生产环境中不会这样操作。`userdel -r wang`会删除用户`wang`,包括其主目录。`passwd wang`允许修改用户`wang`的密码。`groupadd -g 666 wang`创建了一个 gid 为 666 的新组`wang`,`groupmod -g 555 wang`将`wang`组的 gid 改为555,而`groupdel wang`则删除了`wang`组。 文件和目录的操作同样重要。`ls /home`列出`/home`目录下的所有文件和子目录。`cp -r sourceDir destDir`用于递归复制整个`sourceDir`到`destDir`。`mkdir -m 777 mydir`创建一个名为`mydir`的目录,并赋予所有者读、写、执行的权限(777)。`mkdir -p mydir/subdir`创建了多级目录结构。`chmod u+x,g+w mydir`使文件夹`mydir`的所有者具有执行权限,组成员具有写入权限。`ls -l mydir`则显示`mydir`目录内的详细列表。 在权限管理方面,`chown`命令用于更改文件或目录的所有者,如`chown root file.txt`将`file.txt`的所有者改为`root`。`chmod`命令用于更改文件或目录的权限,如`chmod 744 file.txt`将文件的权限设置为所有者有读、写、执行权限,而其他用户只有读权限。 在查找文件时,`find`命令非常实用。`find . -name 't*' -perm 744 -print`搜索当前目录及其子目录中权限为744且名字以`t`开头的文件。`find . -mtime -90 -print`查找在过去90天内被修改过的文件。`find /etc -type f -name "rc*" -exec ls -l {} \;`找到所有以`rc`开头的配置文件并列出它们的详细信息。`find /var/log -mtime -3 -ok rm {} \;`询问用户是否删除最近3天未被访问的日志文件。 对于文本编辑,`vi`是Linux中的强大工具。`vi -c "command"`允许在打开文件时执行特定的命令,如`vi -c "clear"`清空屏幕,`vi -r hello.txt`恢复文件`hello.txt`,`vi -R hello.txt`以只读方式打开文件。`vi +5 hello.txt`直接跳转到文件的第5行,`vi + hello.txt`跳转至文件末尾。在`vi`编辑模式中,`:w`保存文件,`:q`退出,`:q!`强制退出不保存,`:wq`保存并退出,`h`、`j`、`k`、`l`分别对应光标移动到左、下、上、右,`{}`、`(`)、`^`、`$`用于选择文本块,`:5`跳转到第5行,`x`删除当前字符,`dd`删除当前行,`d$`删除至行尾,`dw`删除单词,`J`合并当前行和下一行,`a`在当前字符后添加,`A`在行尾添加,`:s/wang/jin`替换当前行的第一个`wang`为`jin`,`:s/wang/jin/g`全局替换,`/jin`和`?jin`分别用于向前和向后搜索`jin`,`:1,3s/jin/wang/g`替换前3行的`jin`为`wang`,`:1,$s/wang/jin/g`替换全文的`wang`为`jin`,`:1,$s/find/find\/\-name/g`替换所有`find`为`find/-name`。 正则表达式是搜索和匹配文本的关键工具。`hel*o`匹配`hello`、`heello`等,`^cloud`匹配以`cloud`开头的字符串,`^X86*`匹配以`X86`开头的任何字符串,`micky$`匹配以`micky`结尾的字符串,`^%`匹配以空白字符开头的行,`^.%`匹配以任意非空白字符开头的行,`[01234`匹配包含0到4之间任意数字的字符串。 通过这些基本操作,shell编程能够帮助我们高效地管理Linux系统,实现自动化任务和脚本编写。理解并熟练掌握这些命令和概念,是成为Linux系统管理员和脚本编写者的必备技能。