![](https://img-blog.csdnimg.cn/20210314155550123.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Shell
Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。
肥叔菌
本博客主要用于记录学习过程中的笔记,每隔一段时间,博主将会将精华内容整合发到知乎、简书上。欢迎关注博主肥叔菌在其他平台上的账号,谢谢。
B站:https://space.bilibili.com/456254145
segmentfault:https://segmentfault.com/u/feishujun/articles
简书:https://www.jianshu.com/u/67bab078551a
展开
-
Linux系统下的nobody用户与nologin
Unix/Linux系统下的nobody用户是什么?1、Windows系统在安装后会自动建立一些用户帐户,在Linux系统中同样有一些用户帐户是在系统安装后就有的,就像Windows系统中的内置帐户一样。2、它们是用来完成特定任务的,比如nobody和ftp等,我们访问LinuxSir.Org的网页程序时,官网的服务器就是让客户以’nobody’身份登录的(相当于Windows系统中的匿名帐户);我们匿名访问ftp时,会用到用户ftp或nobody。3、首先,nobody是一个普通用户,非特权用户原创 2021-03-19 20:53:12 · 1927 阅读 · 0 评论 -
Linux Shell 查找出运行该脚本的用户
需要空格,tab,新行以顺序排列,放置编辑器出现关于space-tab兼容性问题。如果调用_AS_PATH_WALK时IFS没有设置,将会通过将IFS设置为空值,关闭word splitting。1 as_nl='2 '3 IFS=" "" $as_nl"查找出运行该脚本的用户# Find who we are. Look in the path if we contain no directory separator.case $0 in *[\\/]* ) as_myself=原创 2021-03-14 17:01:17 · 2744 阅读 · 0 评论 -
linux Shell特殊变量 $0, $#, $*, $@, $?, $$和命令行参数
前面已经讲到,变量名只能包含数字、字母和下划线,因为某些包含其他字符的变量有特殊含义,这样的变量被称为特殊变量。例如,$ 表示当前Shell进程的ID,即pid,看下面的代码:$echo $$运行结果 29949特殊变量列表变量含义$0当前脚本的文件名$n传递给脚本或函数的参数。n 是一个数字,表示第几个参数。例如,第一个参数是$1,第二个参数是$2。$#传递给脚本或函数的参数个数。$*传递给脚本或函数的所有参数。$@传递给脚本或函数的所有参原创 2021-03-14 16:44:54 · 1950 阅读 · 0 评论 -
linux Shell PATH变量用法详解:系统查找命令的路径
前面章节我们说过,程序脚本要想在 Linux 中运行,需要使用绝对路径或相对路径指定这个脚本所在的位置。但是为什么系统命令都没有指定路径而是直接执行的?比如,ls 命令并没有输入"/bin/ls"来执行,而是直接执行"ls"命令。这就是 PATH 环境变量的功能了。先查询一下 PATH 环境变量的值,如下:[root@localhost ~]# echo $PATH/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sb原创 2021-03-14 16:33:13 · 3539 阅读 · 0 评论 -
Linux中shell的 set命令 -e -o 选项作用
工作中经常在shell脚本中看到set的这两个用法,但就像生活中的很多事情,习惯导致忽视,直到出现问题才引起关注。set -eset命令的-e参数,linux自带的说明如下:“Exit immediately if a simple command exits with a non-zero status.”也就是说,在"set -e"之后出现的代码,一旦出现了返回值非零,整个脚本就会立即退出。有的人喜欢使用这个参数,是出于保证代码安全性的考虑。但有的时候,这种美好的初衷,也会导致严重的问题。原创 2021-03-14 16:20:29 · 2543 阅读 · 0 评论 -
linux脚本read的用法
1.Read的一些选项 Read可以带有-a, -d, -e, -n, -p, -r, -t, 和 -s八个选项。-a :将内容读入到数值中echo -n "Input muliple values into an array:"read -a arrayecho "get ${#array[@]} values in array"-d :表示delimiter,即定界符,一般情况下是以IFS为参数的间隔,但是通过-d,我们可以定义一直读到出现执行的字符位置。例如read –d madfds原创 2020-08-14 22:21:53 · 7519 阅读 · 0 评论 -
linux expect的使用详解
一、概述我们通过Shell可以实现简单的控制流功能,如:循环、判断等。但是对于需要交互的场合则必须通过人工来干预,有时候我们可能会需要实现和交互程序如telnet服务器等进行交互的功能。而Expect就使用来实现这种功能的工具。 Expect是一个免费的 编程工具语言,用来实现自动和交互式任务进行通信,而无需人的干预。Expect的作者Don Libes在1990年 开始编写Expect时对Expect做有如下定义:Expect是一个用来实现自动交互功能的软件套件 (Expect [is a] sof原创 2020-12-30 12:54:47 · 4402 阅读 · 0 评论 -
Linux中LANG,LC_ALL,local详解
locale 是国际化与本土化过程中的一个非常重要的概念,个人认为,对于中文用户来说,通常会涉及到的国际化或者本土化,大致包含三个方面:看中文,写中文,与 window中文系统的兼容和通信。从实际经验上看来,locale的设定与看中文关系不大,但是与写中文,及window分区的挂载方式有很密切的关系。本人认为就像一个纯英文的Windows能够浏览中文,日文或者意大利文网页一样,你不需要设定loca...原创 2020-10-25 22:18:20 · 6927 阅读 · 0 评论 -
linux中特别的Shell变量 DUALCASE
DUALCASEIn the MKS shell, case statements and file name generation are case-insensitive unless DUALCASE is nonzero.在MKS shell中,如果DUALCASE为0,case语句和文件名产生是大小写不敏感的。如果不为零,则是大小写敏感的。...原创 2021-03-14 15:52:16 · 1896 阅读 · 0 评论