Shell学习笔记

名词解释

Shell:
shell(外壳)是一个命令解释器(也是一种应用程序),处于kernel(内核)和用户之间,负责把用户的指令传递给内核并且把执行结果回显给用户,同时,shell也可以作为一门强大的脚本语言。

终端:
接受Shell命令的输入输出程序,Ubuntu默认的终端应用是Terminal。Windows系统中时cmd命令窗口。

Shell解释器:
Shell有多种解释器实现,目前多数Linux发行版本默认是bash。可以近似地认为linux shell=bash而windows=cmd,都是命令行解释器,都是用户与操作系统的交互接口。但是bash要比cmd强大很多

脚本编写工具:
gedit(Ubuntu预装)、vim

一些规则

Shell中的标识符大小写敏感,系统命令的参数大小写也有不同的意义。

Shell空格规则:=左右必须无空格,其他符号加空格准没错,如[ ] | 等。

Shell是解释型的脚本语言,变量不区分数据类型,均以字符串形式存储,通过$符实现对变量的引用。因此,将变量打印输出时最好均带上双引号,防止变量中的空格(如日期)截断字符,导致输出异常。如:printf "$username"

常见命令

常规命令
命令解释
reset清除屏幕
clear清屏(向后翻滚一个屏幕,内容还在)
alias cls=’clear’为命令clear起别名为cls
printf打印,参数式(c语言)
echo打印+自动换行,但不转义
echo -e打印+自动换行,转义输出,如\n换行
\Enter续行符,由反斜杠+Enter键组成
date系统命令,获取当前日期时间
帮助命令
-
命令 –help命令解释
man 命令命令解释,需安装manpages-zh
系统信息
-
printenv SHELL查看shell的实际实现
hostname主机名
whoami当前用户
uname -a操作系统信息
ps -u在普通用户模式下以 root 权限查看进程
du –sh /home显示/home目录下,磁盘使用情况的总和
chmod a+x为所有用户增加执行权限
sleep线程睡眠
文件IO
-
cd进入目录
~根目录(/Home/用户名)
./当前目录
../上级目录
mkdirmake directory创建目录
touch创建文件
cpcopy复制文件或目录
mvmove移动文件或目录,同目录时相当于重命名
rm -rremove删除文件或目录,需谨慎操作。参数-r表示递归删除子目录和文件
ls -llist列出当前目录下的文件与子目录,参数-l表示以长列表形式显示详细记录
catcatch获得文件内容并输出
逻辑算术
-
-nenot equals 不等
-gtgreat than 大于
-ltless than 小于
expr类似运算函数,将之后的字符串当做表达式处理,完成加减乘除幂模。用法num=`expr $num - 1`
+-*/%^注意,运算符两侧均要有空格
脚本命令
-
vim使用vim创建shell脚本,进入编辑器
:wq保存vim编写的脚本并退出编辑器。首先要按esc进入命令模式,然后输入:wq
:set numbervim显示行号
./脚本.sh执行Shell脚本,需./指定当前目录
#!/bin/bash指定shell解释器
#单行注释
:<<! 注释 !多行注释内容
‘’(单引号对)表示文本,仅仅表示文本
“”(双引号对)表示文本,但遇到$(参数替换)与`(反引号,命令替换)会进行替换
=变量赋值,等号左右两侧均不能有空格,否则会把变量名当做命令处理,如num=1
$参数替换符,引用变量,表示某个字符串是一个变量如num2=$num
`命令`命令替换符(反引号,tab上方),调用函数,并将函数返回值输出给变量(理解为调用函数后再toString())
$(命令)命令替换符推荐用法,不推荐使用反引号
$#脚本输入的参数个数
$1 $2 $n引用输入的第1.2.n个参数
|管道符,将前一个命令的输出作为后一个命令的输入,将命令串起来
sed管道命令,按行为单位处理文本,替换字符串等
awk管道命令,根据规则处理文本
grep管道命令,在指定字符串中查找特定内容
gsub字符串匹配
tee管道命令,读取标准输入的数据,并将其内容输出成文件
exit退出脚本,0正常退出,1异常退出(Windows下1正常退出,0异常退出)
export设置/获取环境变量
env查看更多环境变量
vmstat统计操作系统的相关信息
trap调试
流程控制语句

这里写图片描述

#if-else
if [ … ]; then  # [左右必须有空格,]左侧有空格,右侧可无

elif [ … ]; then

else

fi
#switch
case $num in
"1")

;;
"2")

;;
*)  # 别忘了默认
;;
esac
#while
while [ $n –gt 0 ]; do

done
#for
for 变量 in 列表; do

done
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
学习Shell命令时,以下是一些重要的注意事项和学习建议: 1. 基本语法:Shell命令通常由命令名称和参数组成。命令名称是要执行的操作,而参数则提供了命令所需的信息。了解Shell命令的基本语法是学习的第一步。 2. 命令帮助:大多数Shell都提供了内置的命令帮助功能。通过使用命令后跟`--help`或`-h`选项,或者使用`man`命令(例如`man ls`)来获取有关特定命令的详细信息。 3. 常用命令:有一些常见的Shell命令对于日常使用非常有用。这些包括`cd`(更改目录)、`ls`(列出目录内容)、`mkdir`(创建目录)、`rm`(删除文件或目录)等。逐步学习和掌握这些命令是很重要的。 4. 管道和重定向:Shell命令非常强大,可以通过管道和重定向符号将多个命令组合在一起。了解如何使用管道(`|`)将一个命令的输出作为另一个命令的输入,并使用重定向符号(`>`、`>>`、`<`)来控制输入和输出。 5. 脚本编写:Shell脚本是一种将多个命令组合在一起以自动化任务的方法。学习如何编写简单的Shell脚本可以提高工作效率。 6. 实践和练习:最重要的是进行实践和练习。尝试使用不同的Shell命令来完成各种任务,并在实际场景中应用所学知识。 记住,Shell命令的学习是一个逐步的过程。开始时可能会有些困惑,但随着实践和经验的积累,你会变得越来越熟练。希望这些提示对你有帮助!如有任何具体问题,随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KwCoding

谢了老板您讷~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值