shell常用命令&脚本编写

简介: 想看看你的Shell是哪一种,执行命令: echo $SHELL

想看看你的Shell是哪一种,执行命令: echo $SHELL

在Linux中,$符号代表一个shell变量。所有的shell都用这种方式使用变量。有一些shell变量在你的系统启动
的时候就有了默认值。例如,$SHELL;$LOGNAME是你的登录名,而$PATH变量指明了你的shell命令的搜索范围。
echo命令的作用就是打印出你的输入。如果你的输入具有shell的特殊意义,例如shell变量,他就输出变量的值。

ls -la

这行命令的意义是输出当前目录的所有文件的文件名,l代表“long”,a代表“all”,有了l选项,你会发现,输
出的内容比较丰富,不只包括文件 名,还有文件的访问权限,所有者,所属组等。你会发现这个命令会在屏幕上
输出大量的信息,如果当前目录的文件比较多的话。现在就是“pipe”出场的时候了。
ls -la | more
ls -l a*
这个命令会列出在当前工作目录下所有的以小写a开头的文件,比如说abc.txt,alpha.jpg等等。
ls a?cd
这条命令会列出所有以小写a开头隔一个未知字符以小写cd结尾的所有文件。例如adcd,axcd,但是不会列出adfdcd,
也不会列出axcd.txt。


man:如果你想了解每一个命令代表什么含义以及他的用法,你就可以使用man(意义为manual)命令,例如:

man ls ,man输出的内容是为系统管理员和开发者编写的,如果你想了解更多命令的用法,你可以去找网络上
的Linux命令文档,有一个非常方便的就是丹尼尔·巴雷特的Linux的袖珍指南。

su和sudo

 su命令的作用是切换用户,这也被称为超级用户,因为在有些系统中su命令可以使你以系统的所有权限用户
 root登录。除非你是系统管理员,否则我绝不推荐你使用su切换到root,因为这可能给你带来很多麻烦。
 一个相对安全的多的办法是使用sudo命令,这个命令可以上你以root权限运行一个命令。这两个命令都需要
 系统密码。在大多数Linux的桌面发行版中这两个是相同的,就是你系统的第一个用户设置的密码。


grep:grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

 例如:
 grep foo /etc/passwd
 返回在password文件中所有的含有foo的行
 grep -i “foo” /etc/passwd
 -i选项是忽略大小写,这就意味着若某一行含有FOO或FOo也会被搜索到。
 grep还支持递归搜索:
 grep -r “foo” /home/sjvn
 这条命令将会搜索/home/sjvn目录及其子目录下所有的包含“foo”的行
 grep也通常与其他命令串连起来使用,例如:
 ls -la | grep foo*
 列出当前目录下任何以foo开头的文件或目录。例如如下文件将被匹配:foo,foobar,foolish.txt等等。

history : 显示出最近使用的全部命令


返回上一次使用的命令


 如: ! ls 显示出上一次ls 命令的具体内容.选取哪一个命令后默认已经将该命令复制到剪切板,
 直接command+v就可以粘贴该命令了.
  1. cat + 文件名 : 列出该文件的内容


  1. mv +旧文件名 + 新文件名 : 更改文件名


  1. 切换文件目录
cd : 根目录,即当前用户的目录
cd . : 当前目录
cd .. : 进入当前目录的上级目录

./可执行文件 : 执行当前文件


ls : 列出当前用户的所有文件夹


ls -F : 列出当前用户的文件夹,如是文件夹,文件名后面有/


ls -lrt : 以文件修改的时间列出当前用户的文件夹


tab : 补齐正在输入的文件名


clear:如果你觉得你的屏幕上有太多的东西,看起来很讨厌,可以使用clear命令清空文件/目录命令


cp:cp代表copy,就是复制,他可以复制一个或多个文件到指定的一个或多个目录下。



一个通常的用法是:
cp fred.txt ethel.txt
把fred.txt中的内容复制到当前文件夹中名为ethel.txt中
cp fred.txt /home/sjvn/docs/fred.txt
把fred.txt复制到指定文件中。
cp *.txt  /home/sjvn/docs/
复制当前目录下所有以.txt结尾的文件到指定的目录下。
cp -r /home/sjvn/docs/* /home/sjvn/backup
递归的复制在/home/sjvn/docs/目录下的所有文件到指定的文件夹。
  1. hostname:显示你当前登录进去的计算机的名称。


  1. mv:mv(意义为move)顾名思义就是移动,可以移动指定文件到指定位置。当然这个命令有的时候还可以用来实现重命名。
例如:
mv fred.txt ethel.txt
这条命令的作用你可以简单的认为是重命名fred.txt为ethel.txt。
当然此命令还有其他用法,此处不再一一罗列,用法与cp类似,只是这条命令不再保留原文件。

rm:rm代表remove,是删除的意思,所以我运行:


rm fred.txt
我将删除fred.txt。
我强烈推荐你在执行rm命令的时候使用-i选项。这儿选项将在你执行命令的时候询问你是否要真的删除文件。就像这样:
rm -i fred.txt

编写shell脚本


  1. 例如:find + <条件> 是执行命令,意思为查找文件
 $ find ./ -size +200M -exec du -h {} \;  
 //表示在当前目录下查找大于200M的文件

但是每一次输入这些命令,比较麻烦,如果有更多的命令需要一起执行,那将会更加麻烦,我们可以事先将我们需要执行的一系列命令放在一个文件中,这个文件就是一个脚本文件,以.sh结尾,然后编译脚本,最后执行脚本就可以得到我们想要执行一系列命令的结果,这对于我们经常用的一系列命令非常方便。

 vim findLarger200M.sh
 //创建一个脚本并打开
 find ./ -size +200M -exec du -h {} \;
 //在里面利用find写一个查找文件脚本
 chmod u+x findLarger200M.sh
 //编译脚本,生成可执行脚本文件
 ./findLarger200M.sh
 //执行,注意是 ./ + 脚本文件名




相关文章
|
2月前
|
存储 安全 Unix
七、Linux Shell 与脚本基础
别再一遍遍地敲重复的命令了,把它们写进Shell脚本,就能一键搞定。脚本本质上就是个存着一堆命令的文本文件,但要让它“活”起来,有几个关键点:文件开头最好用#!/usr/bin/env bash来指定解释器,并用chmod +x给它执行权限。执行时也有讲究:./script.sh是在一个新“房间”(子Shell)里跑,不影响你;而source script.sh是在当前“房间”里跑,适合用来加载环境变量和配置文件。
411 9
|
2月前
|
存储 Shell Linux
八、Linux Shell 脚本:变量与字符串
Shell脚本里的变量就像一个个贴着标签的“箱子”。装东西(赋值)时,=两边千万不能有空格。用单引号''装进去的东西会原封不动,用双引号""则会让里面的$变量先“变身”再装箱。默认箱子只能在当前“房间”(Shell进程)用,想让隔壁房间(子进程)也能看到,就得给箱子盖个export的“出口”戳。此外,Shell还自带了$?(上条命令的成绩单)和$1(别人递进来的第一个包裹)等许多特殊箱子,非常有用。
298 2
|
5月前
|
Shell
Shell脚本循环控制:shift、continue、break、exit指令
使用这些命令可以让你的Shell脚本像有生命一样动起来。正确使用它们,你的脚本就能像一场精心编排的舞蹈剧目,既有旋律的起伏,也有节奏的跳跃,最终以一场惊艳的表演结束。每一个动作、每一个转折点,都准确、优雅地完成所需要表达的逻辑。如此,你的脚本不只是冰冷的代码,它透过终端的界面,跳着有节奏的舞蹈,走进观众——使用者的心中。
264 60
|
2月前
|
数据采集 监控 Shell
无需Python:Shell脚本如何成为你的自动化爬虫引擎?
Shell脚本利用curl/wget发起请求,结合文本处理工具构建轻量级爬虫,支持并行加速、定时任务、增量抓取及分布式部署。通过随机UA、异常重试等优化提升稳定性,适用于日志监控、价格追踪等场景。相比Python,具备启动快、资源占用低的优势,适合嵌入式或老旧服务器环境,复杂任务可结合Python实现混合编程。
|
8月前
|
关系型数据库 MySQL Shell
MySQL 备份 Shell 脚本:支持远程同步与阿里云 OSS 备份
一款自动化 MySQL 备份 Shell 脚本,支持本地存储、远程服务器同步(SSH+rsync)、阿里云 OSS 备份,并自动清理过期备份。适用于数据库管理员和开发者,帮助确保数据安全。
|
4月前
|
Web App开发 缓存 安全
Linux一键清理系统垃圾:释放30GB空间的Shell脚本实战​
这篇博客介绍了一个实用的Linux系统盘清理脚本,主要功能包括: 安全权限检查和旧内核清理,保留当前使用内核 7天以上日志文件清理和系统日志压缩 浏览器缓存(Chrome/Firefox)、APT缓存、临时文件清理 智能清理Snap旧版本和Docker无用数据 提供磁盘空间使用前后对比和大文件查找功能 脚本采用交互式设计确保安全性,适合定期维护开发环境、服务器和个人电脑。文章详细解析了脚本的关键功能代码,并给出了使用建议。完整脚本已开源,用户可根据需求自定义调整清理策略。
533 1
|
6月前
|
存储 Unix Shell
确定Shell脚本在操作系统中的具体位置方法。
这对于掌握Linux的文件系统组织结构和路径方面的理解很有帮助,是我们日常工作和学习中都可能使用到的知识。以上讲解详细清晰,应用简便,是每一个想要精通操作系统的计算机爱好者必备的实用技能。
178 17
|
6月前
|
Linux Shell
Centos或Linux编写一键式Shell脚本删除用户、组指导手册
Centos或Linux编写一键式Shell脚本删除用户、组指导手册
195 4
|
6月前
|
Linux Shell 数据安全/隐私保护
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
397 3
|
7月前
|
Linux Shell
在Linux、CentOS7中设置shell脚本开机自启动服务
以上就是在CentOS 7中设置shell脚本开机自启动服务的全部步骤。希望这个指南能帮助你更好地管理你的Linux系统。
618 25