1.软文推荐

2.软文推荐

3.软文推荐

如果你希望自动执行常规任务并使你的生活更轻松,那么使用 Shell 脚本是一个很好的选择。本文将向你介绍一些基本概念,这些概念将帮助你编写高效的 Shell 脚本。

Shell 脚本是一种被设计用来运行命令行解释器 UNIX Shell 的计算机程序。Shell 脚本的各类变种被视作脚本语言。Shell 脚本执行的典型操作包括文件操作、程序执行和文本打印。设置环境、运行程序并执行任何必要的清理或日志记录的脚本称为封装。

识别 Shell 命令提示符

你可以通过查看终端窗口中的提示符符号来识别 Linux 系统的计算机上的 Shell 命令提示符的用户是普通用户还是超级用户。#符号用于超级用户,$符号用于具有标准权限的用户。

基本命令

脚本附带了很多可以在终端窗口上执行的、用以管理您的计算机的命令。每个命令的详细信息可以在该命令附带的使用手册中找到。你可以使用如下命令来查看手册:

一些常用的命令有:

每个命令都附带了几个可以一起使用的选项。你可以参考使用手册以了解更多的细节。man date 的输出如图 1 所示。

Figure 1: Manual of date command

重定向操作符

当你希望捕获文件中的命令输出或重定向到文件时,可以使用重定向操作符。

命令 描述
ls -l /usr/bin >file 默认标准输出到文件
ls -l /usr/bin 2>file 重定向标准错误到文件
ls -l /usr/bin > ls-output 2>&1 重定向标准错误和标准输出到文件
ls -l /usr/bin &> ls-output 重定向标准错误和标准输出到文件
ls -l /usr/bin 2> /dev/null 写入 /dev/null,丢弃输出
大括号扩展

大括号扩展是 UNIX 提供的强大选项之一。它有助于在一行指令中使用最少的命令完成大量操作。例如:

这条命令会为 2009 到 2011 年里的每个月建立一个目录。

环境变量

环境变量是一个动态命名的值,它可以影响计算机上运行的进程的行为方式。此变量是进程运行环境的一部分。

命令 描述
printenv 打印出所有环境变量的值。
set 设置 Shell 选项
export 导出环境到随后执行的程序
alias 为命令创建别名
网络命令

网络命令对于排查网络问题和检查连接到客户机的特定端口非常有用。

命令 描述
ping 发送 ICMP(网际网路控制讯息协定)数据包
traceroute 打印数据包在网络中的路径
netstat 打印网络连接信息、路由表、接口数据
ftp/lftp 互联网文件传输程序
wget 非交互式网络下载器
ssh OpenSSH SSH 客户端 (远程登录程序)
scp 安全拷贝
sftp 安全文件传输程序
grep 命令

grep 命令用于查找系统和日志中的错误。它是 Shell 拥有的强大工具之一。

命令 描述
grep -h ‘.zip’ file.list . 表示任意字符
grep -h ‘^zip’ file.list 以 zip 开头
grep -h ‘zip$’ file.list 以 zip 结尾
grep -h ‘^zip$’ file.list 只含有 zip
grep -h ‘bzzip’ file.list 不含 b 和 z
grep -h ‘^[A-Za-z0-9]’ file.list 所有文件名有效的文件

量词

下面是一些量词的例子:

命令 描述
? 匹配出现 0 次或 1 次的元素
* 匹配出现 0 次或多次的元素
+ 匹配出现 1 次或多次的元素
{} 匹配出现特定次数的元素
文本处理

文本处理是当今 IT 世界中的另一项重要任务。程序员和管理员可以使用这些命令来切片、剪切和处理文本。

命令 描述
cat -A $FILE 显示 $FILE 文件的所有内容
sort file1.txt file2.txt file3.txt > final_sorted_list.txt 一次性将所有文件排序
ls – l | sort -nr -k 5 按指定的第 5 列进行排序
sort –key=1,1 –key=2n distor.txt 对第 1 列进行排序(默认按字母表顺序),对第 2 列进行数值排序
sort foo.txt | uniq -c 查找重复的行并显示该行重复的次数
cut -f 3 distro.txt 剪切第 3 列
cut -c 7-10 剪切 7 – 10 字符
cut -d ‘:’ -f 1 /etc/password 分隔符 :
sort -k 3.7nbr -k 3.1nbr -k 3.4nbr distro.txt 按第 3 列第 7 个字符、第 3 列第 1 个字符和第 3 列第 4 个字符排序
paste file1.txt file2.txt > newfile.txt 合并两个文件
join file1.txt file2.txt 按公共字段连接两个文件

显示详细信息

窍门和技巧

在 Linux 中,我们可以通过使用简单的命令或控制选项返回到命令的历史记录。

命令 描述
clear 清空屏幕
history 查看保存命令的历史记录
script filename 捕获文件中的所有命令执行

一些历史命令的技巧:

CTRL + R:搜索命令历史
!!number:执行编号为number 的命令
!! :执行上一条命令
!?string : 执行包含string 的上一条命令
!string:执行以string 开始的上一条命令
export HISTCONTROL=ignoredups: 忽略重复条目
export HISTSIZE=10000:设置存储的历史行数

随着你对 Linux 命令逐渐熟悉,你将能够编写封装脚本。所有手动任务,如定期备份、清理文件、监控系统使用情况等,都可以使用脚本自动完成。在学习高级概念之前,本文将帮助您开始编写脚本。

本文来源:www.lxlinux.net/11189.html,若引用不当,请联系修改。

相关文章 8

1

linux系统remove命令详解 2分钟前

remove是Linux系统中删除问价或者目录的命令,下面为大家分享一下linux系统remove命令详解。 功能说明:删除文件或目录。 语 法:rm [-dfirv][...

2

河南服务器托管好还是租用好?哪个性价比更高(河南服务器托管公司排名) 4分钟前

河南服务器托管好还是租用好?哪个性价比更高?许多公司在服务器租用還是托管方面犹犹豫豫,有些人觉得租用好,也有些人觉得河南服...

3

什么是阿里云高防ip?阿里云DDos高防IP介绍及价格表(阿里云高可用) 6分钟前

什么是阿里云高防ip? 阿里云高防IP是针对互联网服务器在遭受大流量的DDoS攻击后导致服务不可用的情况下,推出的付费增值服务,用户可...

4

快速安装VNC服务器 7分钟前

vnc服务的概述:VNC(Virtual Network Computing)虚拟网络计算机的缩写,主要是完成图形界面的远程控制使用。一个vnc系统是由客户端、服务器端和...

5

Uri Herrera近日宣布Nitrux 2.5全面上市 9分钟前

Uri Herrera近日宣布Nitrux 2.5全面上市,这是基于Debian的发行版,围绕基于KDE Plasma的NX桌面环境构建的最新、最新鲜、最先进的ISO版本。 每月一...

6

Linux 终端上打印 JSON 文件 11分钟前

JSON是完全独立于编程语言的文本格式,是一种轻量级的数据交换格式,JSON 的简介和清晰使得成为了最理想的数据交换语言。 计算机可以很...

7

使用 Windows 10 的 RSAT 工具来管理 Samba4 活动目录架构 13分钟前

这篇文章继续和大家分享一下Samba 系列的教程,本次和大家分享一下使用 Windows 10 的 RSAT 工具来管理 Samba4 活动目录架构得相关教程。 一旦...

8

RHEL8配置网络具体方法 14分钟前

RHEL8如何配置网络?在RHEL8中继续支持service,网络相关服务管理已经转移到NetworkManager不再是network了,下面为大家分享一下 RHEL8配置网络具体...