linux shell入门

目录 :

       一.Shell常用命令

       二.Shell外部命令

       三.Shell内建命令

 

一.Shell常用命令

1.管理文件和目录

cd:可以用于切换当前的工作目录

pwd:可以打印当前工作目录的名称,注意在linux中打印这个词一般不是指打印机的打印,而是表示将文本内容输入到屏幕上。

ls:列出当前目录下的所有文件

touch:用于更改文件的修改区间,也可以用于创建一个空文件

cp:复制文件或目录

mv:移动或重命名一个文件或目录

rm:用于删除一个文件或目录

mkdir:用于创建一个目录

rmdir:用于删除一个目录,一般是用于删除空目录

file:用于判断一个文件的文件类型

cat:可以打印文件的文本内容

more:用于打开一个文件,进行交互式的阅读课,仅允许向下滚动less:类似more,区别在于使用less可以上下浏览文件,并在查看文件内容前不会加载到所有数据,更适合对大文件的浏览

tail:打印文件的最后部分,默认为最后十行

head:打印文件的开头部分默认为前十行

2.管理系统进程

ps:显示系统目前运行的进程信息

topz:显示系统目前运行进程的动态实时信息,与ps的区别是ps是静态的,而top命令可以进行动态的刷新

Kill:可以向进程发送一个信号通常用于终止一个进程

killall:可以通过进程的名称向进程的所有实力发送终止信号

3.管理磁盘空间

mount:提供文件系统的挂载功能,默认可以显示当前挂载的所有文件系统

umount:取消文件系统与其挂载点的连接,使其不能再被访问到,简单来说就是卸载某一个挂载点

df:用于查看当前文件系统的磁盘空间使用情况

du:用于计算指定文件或目录占用磁盘空间的大小

4.处理数据文件

sort:可以对文本文件进行排序

grep:能够查找文件里符合条件的字符串,支持正则表达式和简单模式匹配

gzip:提供了对zip压缩格式的文件压缩和解压功能

tar:可以对文件进行归档,压缩和解压缩

二. Shell外部命令

1.外部命令(文件系统命令) , 通常位于/bin、/sbin. /usr/bin. /usr/sbin 等目录

2. fork :外部命令执行时,会创建出-个子进程。( 以ps命令为例)

三.Shell内建命令

1.作为shell工具的组成部分,内建命令不需要使用子进程来执行。

2.对于有些命令,有多种实现,既有外部命令,也有内建命令。

3.了解某个命令的类型

●type -a

4.了解所有的内建命令

●man builtin

目录:

     一.脚本创建、执行与退出状态码

     二.变量的定义和使用

     三.输出文本

     四.数学运算

 

一.脚本创建、执行与退出状态码

1.创建shell脚本

·Shebang: #!/bin/bash

2.执行脚本

·增加脚本的可执行权限

·使用绝对或相对路径执行shell 脚本

3.脚本的退出状态码

·$?

·exit命令

二.变量的定义与使用

1. Linux系统的环境变量

·全局环境变量

·局部环境变量

2.自定义用户变量

·有字母、数字、下划线组成

·长度不超过20个字符

·区分大小写

3.变量的定义/赋值

·等号两边不能有空格

4.使用美元符$对变量进行引用

·建议使用${variable_ name}

5.命令替换:将命令的输出赋值给变量

1.反引号、command

2. $( command)

三.输出文本

·echo命令

·echo $USER * $(date)

·echo ' $USER * $(date)‘

·echo "$USER * $(date)"

四.数学运算

1. expr命令

2. $[ operation ]

3. bc命令(支持浮点数运算)

目录 :

 一.if-then语句

二.条件测试

三.if语句高级特性

四.case语句

 

一.if-then语句

1. if-then语句格式

2.当if后面的命令,运行后的退出状态码是0时,then后面的命令会被执行。

 

提供的三类判断条件

1.数值比较

2.字符串比较

3.文件比较

二.条件测试

1.test命令的数值比较



2.test命令的字符串比较

 

 

 

3.test命令的文件比较

 

 



4.复合条件测试

使用布尔运算符

1.[ condition1 ] && [ condition2 ]

2.[ condition1 ] | | [ condition2 ]

三.if-then语句高级特性



1.    if-then语句高级特性——双括号

(1)支持高级数学表达式的计算
(2)命令格式: (( expression ))
(3) expression可以是数学赋值或比较表达式

2.    if-then语句高级特性——双方括号

(1)支持针对字符串比较的高级特性
(2)命令格式: [[ expression ]]
(3)除了标准的字符串比较,还支持模式匹配

四.case语句

常代替if-then-elif语句用于对某个变量有大量判断语句的场景。

 

 

目录:

 一. for语句

二.while/until语句 嵌套循环
    三.循环控制命令

 

一.for语句
1.用于遍历一个指定的列表,每次迭代使用列表中的一个元素,执行定义好的一组命令

2. for语句格式

 

 

 



3.for语句使用示例
1)读取列表中的值
2)读取列表中的复杂值

3)从变量读取列表
4)从命令读取值
5)更改字段分隔符$IFS

6)用通配符遍历目录

4.for语句( C语言风格)
1)变量赋值的等号两边可以有空格
2)条件中的变量可以不以$符开头
3)迭代过程的表达式可以不用expr命令格式

 

 

二.while/until语句 嵌套循环

 

 



三.循环控制命令

1.循环控制语句——break
break可以退出任意类型的循环

1)跳出内部循环

2)跳出外部循环break n

2.循环控制语句——continue
1)continue可以跳过执行当前循环的命令,但不会终止整个循环

2)可指定跳过的循环层数continue n

 
 

目录 :

 一. 命令行参数

       二.特殊参数变量

       三.移动变量
       四. 交互式处理

 

一.命令行参数
1.命令行参数:向shell脚本传递数据最基本的方法
2.位置参数: $0是脚本名,$1到$9表示第一到第九个参数,第十个参数可以用${10}表示

3.若参数内容包含空格,则必须使用引号

二.特殊参数变量
$#存储了脚本运行时携带的命令行参数的个数

 

 

三.移动变量

1.shift命令可以将每个参数变量向左移动一个位置

2.常用于遍历命令行参数
3.shift n

四.交互式处理——read命令

1.从标准输入读取数据并赋值给指定变量

·指定输出的命令行提示信息(-p)
·指定接收单字符的数据(-n)
·设置输入的超时时间(-t)

2.从文件中读取参数

 

Shell脚本重定向

 

目录 :

 一. 标准文件描述符
二.重定向普通和错误信息
三.在脚本中重定向输出

四.创建自己的重定向

 

一.标准文件描述符
Linux用标准文件描述符来标识每个文件对象

image.png

二.重定向错误输出
#1.只重定向错误输出
$ ls -al badfile 2> error. log

# 2.重定向错误和普通输出
$ ls -al badfile testfile 2> error.log 1>

output. log

# 3.重定向错误和普通输出到同一个文件
$ ls-al badfile testfile &> output. Log

 

三.在脚本中重定向输出
1.临时重定向
·重定向到文件描述符时,必须在文件描述符数字前加一个 &

·echo "This is a error message" >&2
2.永久重定向
·使用exec命令在脚本执行期间重定向某个特定文件描述符

·exec命令会启动一个shell来进行数据重定向

 

四.创建自己的重定向
1.创建文件描述符

·exec 3>ouput_ file

·exec 0<input_ file

·exec 6<>test_ file

2.关闭文件描述符
·exec 6>&-
·exec 6<&-
3.实现一一个简单的线程池
·脚本需要并发地执行任务

·令牌桶模型控制并发数

posted @   woodx  阅读(65)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
点击右上角即可分享
微信分享提示