Linux命令行界面和shell脚本学习

网友投稿 868 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末行模式中的基本操作

Linux命令行界面和shell脚本学习

保存文件及退出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小时内删除侵权内容。

上一篇:如何构建高效可信的持续交付能力
下一篇:[华为云在线课程][7天玩转MySQL基础实战营][day05事务和锁][学习笔记]
相关文章