干货分享丨玩转物联网IoTDA服务系列四-智能网关
821
2022-05-29
主要学习执行效率较高的Linux命令操作,包括Shell的启动、命令格式及Shell的高级应用,以及vi编辑器的使用
课程学习通过华为云服务器使用CloudShell登录
1Shell命令概述
1.1shell简介
shell是Linux的一个特殊程序,是内核与用户的接口,它是命令语言、命令解释程序及程序设计语言的统称。Shell是一个命令语言解释器,它拥有自己内建的Shell命令集,Shell也能被系统中其他应用程序所调用。
当用户成功登录Linux系统后,即开始了与Shell的对话交互过程,此时,不论何时键入一个命令,都被Shell解释执行。有一些命令,比如改变工作目录命令cd,是包含在Shell内部的,只要处在Shell命令行下就可以执行。还有一些命令,例如复制命令cp和移动命令mv,是独立的应用程序,必须存在于文件系统中某个目录下才能执行。对用户而言,不必关心一个命令是建立在Shell内部还是一个单独的程序。
1.2Linux命令行的格式
Linux命令的通用命令格式
命令字 [选项] [参数]
选项及参数的含义
选项:用于调节命令的具体功能
以“-”引导短格式选项(单个字符),例如“-l"
以“--”引导长格式选项(多个字符),例如“--color"
多个短格式选项可以写在一起,只用一个“-”引导,例如“-al"
参数:命令操作的对象,如文件、目录名等
Linux命令行的格式
命令行编辑的几个辅助操作
Tab键:自动补齐
反斜杠 “\”:强制换行
快捷键 Ctrl+U:清空至行首
快捷键 Ctrl+K:清空至行尾
快捷键 Ctrl+L:清屏
快捷键 Ctrl+C:取消本次命令编辑
Home:跳到行首
End:跳到行尾
1.3获得命令帮助
内部命令help
查看Bash内部命令的帮助信息
命令的“--help”选项
适用于大多数外部命令
使用man命令阅读手册页
man -k [关键字]
使用"↑"、"↓"键滚动文本
使用Page Up和Page Down键翻页
按Q或q键退出阅读环境、按"/ ”键后查找内容
1.4文件和目录管理
目录操作命令pwd、cd、s、 mkdir
文件操作命令 touch、cp、rm、mv、find
文件内容操作命令cat、less、grep
归档及压缩命令 tar
1.5目录操作命令-pwd、cd、ls、mkdir
pwd命令——用途:查看工作目录
cd命令——用途:切换工作目录 格式:cd [目录位置]
mkdir命令——用途:创建新的目录 格式:mkdir [-p] [/路径/]目录名
1.6文件操作命令-ls、touch、cp、rm、mv、find
ls命令
用途:列表(List)显示目录内容
格式:ls[选项].…[目录或文件名]
常用命令选项
-l:以长格式显示
-a:显示所有子目录和文件的信息,包括隐藏文件
-d:显示目录本身的属性
-lh:大小以k为单位显示
--color:以颜色来区分不同类型文件
touch命令
用途:新建空文件,或更新文件时间标记
格式:touch 文件名...
cp命令
用途:复制(Copy)文件或目录
格式:cp [选项]... 源文件或目录... 目标文件或目录
常用命令选项
-r:递归复制整个目录树
rm命令
用途:删除(Remove)文件或目录
格式:rm [选项]... 文件或目录
常用命令选项
-r:递归删除整个目录树
-f:强制删除,不进行提示
rmdir命令
用途:删除(directory)目录
mv命令
用途:移动(Move)文件或目录,若如果目标位置与源位置相同,则相当于改名
格式:mv [选项]... 源文件或目录.. 目标文件或目录
find命令
用途:用于查找文件或目录
格式:find [查找范围] [查找条件]
常用查找条件
name:按文件名称查找
user:按文件属主查找
type:按文件类型查找
f 查找文件
d 查找目录
l 链接
p 管道
-size:按大小查找
1.7文件内容操作命令-cat、less、grep
cat命令
用途:显示出文件的全部内容
格式:cat目标文件
less命令
用途:全屏方式分页显示文件内容
交互操作方法:
按Enter键向下逐行滚动
按空格键向下翻一屏、按b键向上翻一屏
按q键退出
grep命令
用途:在文件中查找并显示包含指定字符串的行
格式:grep [选项] 查找条件 目标文件
常用命令选项
-i:查找时忽略大小写
-V:反转查找,输出与查找条件不相符的行
查找条件设置
要查找的字符串以双引号括起来
“^……”表示……开头,“……$”表示以……结尾
“^$”表示空行
1.8归档及压缩命令 -tar
tar命令
用途:制作归档文件、释放归档文件
格式:tar [选项]... 归档文件名 源文件或目录
tar [选项]... 归档文件名 [-C 目标目录]
常用命令
打包:
tar-czvf[存放路径]归档文件名tar.gz源文件或目录
或tar-cjvf[存放路径]归档文件名tar.bz2源文件或目录
或 tar cJvf[存放路径]归档文件名tar.xz源文件或目录
解包:
tar-xzvf[存放路径]归档文件名tar.gz[-C解压目录]
或tar-xjvf[存放路径]归档文件名tar.bz2[-C解压目录]
或 tar xJvf[存放路径]归档文件名tar.xz[-C解压目录]
2Bash的应用
2.1Bash的命令历史
命令历史-保存用户曾经执行过的命令操作
查看历史命令-使用↑、↓按键逐条翻看,允许编辑并重复执行、执行: history
清除历史命令-执行: history -c
调用历史命令-!n:执行历史记录中的第n条命令
2.2Bash的命令别名
命令别名-为使用频率较高的复杂命令行设置简短的调用名称
查看命令别名- 格式: alias [别名]
设置命令别名- 执行: alias 别名='实际执行的命令'
取消已设置的命令别名- 格式:unalias别名、unalias -a
使别名永久生效- 将设置命令保存到~/.bashrc文件中
2.3重定向
重定向:将命令的执行结果输出到指定的文件中,而不是直接显示在屏幕上
重定向标准输出
>将命令的执行结果输出到指定的文件中,而不是直接显示在屏幕上
>>将命令执行的结果追加输出到指定文件
重定向标准错误
2>清空指定文件的内容,并将标准错误信息保存到该文件中
2>>将标准错误信息追加输出到指定的文件中
重定向标准输出和标准错误
&>将标准输出、标准错误的内容全部保存到指定的文件中,而不是直接显示在屏幕上
2.4输出重定向实例
将命令输出重定向到文件
将标准输出重定向到文件
$ ls /etc/ > etcdir
将标准输出重定向追加到文件
$ 1s /etc/sysconfig/ >> etcdir
将错误输出重定向到文件
$ nocmd 2> errfile
将标准输出和错误输出重定向到文件
$ ls afile bfile &> errfile
3程序编辑器vim
3.1vim文本编辑器
文本编辑器的作用
维护 Linux系统中的各种配置文件
编写 shell脚本
3.2vim编辑器的工作模式
三种工作模式
命令模式、输入模式、末行模式
不同模式之间的切换
3.3命令模式的基本操作
控制光标移动,对文本进行复制、粘贴、删除等工作
用户刚刚启动 vi/vim,便进入了命令模式。此状态下敲击键盘动作会被Vim识别为命令,而非输入字符
强调一下:这些快捷键必须在命令模式下使用
光标移动
复制、粘贴、删除
查找匹配字符串
撤销编辑及保存退出
3.4末行模式中的基本操作
保存文件及退出vi编辑器
打开新文件或读入其他文件内容
文件内容替换
4Shell脚本
4.1shell脚本的概念
Shell脚本
用途:完成特定的、较复杂的系统管理任务
格式:集中保存多条 Linux命令,普通文本文件
执行方式:按照预设的顺序依次解释执行
4.2编写可执行的shell脚本
在脚本文件的各组成部分中,只有可执行语句是必不可少的(否则就不叫程序了)
当缺省运行环境设置时,会自动由当前加载该脚本的 Shell解释器负责解释执行
Shell脚本文件的扩展名并无严格的约束,不一定非得是".sh"结尾的
4.3运行shell的脚本程序
直接执行具有"x"权限的脚本文件
例如:./repboot.sh
使用指定的解释器程序执行脚本内容
例如: bash repboot.sh、 sh repboot.sh
通过 source命令(或.)读取脚本内容执行
例如: soucre repboot.sh或 ./hello.sh
4.4shell脚本
#!”是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell
echo命令用于向窗口输出文本。
#!/bin/bash
echo "hello, world!!"
4.5shell脚本应用示例
如果/boot分区的空间使用超过80%,输出报警信息
#!/bin/bash RATE=`df -hT | grep "/boot" | awk '{print $6}' | cut -d "%" -f1 ` if [ $RATE -gt 80 ] then echo "Warning, DISK is full !" fi
批量添加20个系统用户账号,用户名依次为“stu1”、“stu2”、......、“stu20”
#!/bin/bash i=1 while [ $i -le 20 ] do useradd stu$i echo "123456" | passwd --stdin stu$i &> /dev/null let i++ done
删除用户
#!/bin/bash i=1 while [ $i -le 20 ] do userdel -r stu$i i=`expr $i + 1` done
九九乘法表的输出显示
#!/bin/bash for (( i = 1; i <= 9; i ++ )) do for (( j = 1; j <= i; j ++ )) do let "temp = i * j" echo -n "$i*$j=$temp " done printf "\n" done
【第十期读书会学习整理】
Linux Shell
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。