Linux之Shell基础

一、简介

1、Shell是一个命令行解释器,也是一个功能强大的编程语言,类似Windows的操作界面。即将命令翻译成内核可以懂得机器语言。

2、在/etc/shells可查看支持的shell版本,主要使用bash版本。输入对应shell名称即可切换不同shell版本,如sh,csh。sh常在单用户模式使用,此为古老的简单版本占资源少。切换后使用exit即可退出返回基础版本。shell可在此版本shell中再依次调用别的shell,称为子shell。


二、脚本执行方式

1、echo输出命令:echo [选项] [输出内容] ,-e 支持控制字符(各\n\t之类),详细自行百度,!不要加。

Xshell远程操作支持中文,Linux字符界面不支持,图形界面支持。

\e[1;31m  xxx \e[0m   此为输出带颜色的字符。

2、脚本编写执行:

使用vim hello.sh打开编辑器(一般使用vim不使用vi,毕竟是增强版)

①#!/bin/bash,除了这句#后一般都当作注释;

②正常编写相关语句,比如之前的 echo -e "\e[1;31m  xxx \e[0m  "

③编辑成功,按esc返回一般模式,输入:wq,回车执行便可成功返回命令行

④赋予执行权限,chmod 755 hello.sh

⑤输入路径直接运行(或者不用赋予执行权限,直接bash hello.sh就可以运行)。


三、Bash的基本功能

1、命令别名

简介:命令别名可以当做人的小名

①alias:查看系统中所有别名

②alias ls = 'ls --color=never':像这种格式便可以设置更改别名,临时生效

③vi ~/.bashrc:通过vi将别名写入环境变量配置文件即可永久生效(需要重新登录或source  .bashrc)

④unalias 别名:即可删除,临时删除,彻底删除依旧需要编辑文件。

⑤命令生效顺序: 用路径执行的命令>别名>Bash的内部命令>按照环境变量定义的目录查找顺序找到的第一个命令(外来命令)

2、快捷键

①ctrl + c :强制终止当前命令

②ctrl + l :清屏

③ctrl + a/e:光标移动到行首/行尾

④ctrl + u:从光标位置删除到行首

⑤ctrl + z:把命令放到后台

⑥ctrl + r:在历史命令中搜索

3、历史命令

①history [选项] [历史命令保存文件] :-c 清空历史命令,-w 把缓存中的历史命令写入历史命令保存文件(~/.bash_history),一般都默认写入(不加最后那段)

可通过对/etc/profile中的HISTSIZE进行更改来改变历史命令的最大数量

②历史命令调用:上下箭头即可,使用!+1、3之类来重复执行第n条命令。!!:执行上一条命令,!字符串:执行最后一条以该字符串开头的命令。

4、命令与文件补全

双击tab键找出列表,如果唯一单击tab键便可补全。

5、输出重定向(记录错误信息>两边都没有空格!)

①命令 > 文件名:将命令执行结果保存到文件中(覆盖)

②命令 >> 文件名:右侧有空格!!同上,不过这次是追加。

③命令 2>>文件名:右侧无空格!!将错误输出保存,否则错误信息无法存储到文件中(追加,覆盖依旧>)

④命令 >(>>) 文件 2>&1:将正确错误命令输出到同一文件

⑤命令 &>(>>) 文件:同上,将文件名设为/dev/null可以把命令丢到“黑洞里”。

⑥命令 >> 文件1 2>>文件2:正确的存到文件1,错误的存到文件2

6、输入重定向

①wc [选项] [文件名]:-c 统计字节数,-w 统计单词数,-l 统计行数。统计用

②输入重定向(<):将文件作为命令的输入。<<基本不用。

7、管道符

①多命令顺序执行:

命令1;命令2:顺序执行(第一个命令出错后面的依旧会执行)

命令1&&命令2:命令1正确执行才执行2

命令1||命令2:命令1正确执行就不执行2了

②管道符:

命令1|命令2:命令1的正确输出作为命令2的操作对象,可多个管道符一起使用。

P.S.netstat:查看所有网络情况;more:逐页显示长文本;grep [字符串] 查看带有字符串的对象。

8、通配符(类似正则,随时可以使用主要用来匹配文件名,如ls sss*)

①?:任意一个字符

②*:任意多个字符

③[]:括号里的任意一个字符

④^:非

⑤[a-z]:a到z

9、其他特殊符号

①$:用于得到变量的值。如 aa=123,echo $aa

②'':令其视为普通字符串,echo '$aa'为 $aa

③"":所有字符有其含义,echo为123

④$():作用与反引号一样,aa=$(ls),echo "$aa"即可列出文件。先执行()里的命令再把命令结果赋给变量。

⑤#:注释

⑥\:转义符,令特殊符号失去作用。

猜你喜欢

转载自blog.csdn.net/runahazuki/article/details/78137539
今日推荐