Akemi

高效使用Linux-shell环境与运算

2025/02/19

shell是什么

shell就是壳,是命令行,也可以是一个运行的协程

有些shell可以交互,有些无法交互

bash是一种默认的shell,还有其他的shell像是sh zsh dash fish

在shell中使用通配符

1
2
3
4
5
6
7
8
9
10
11
12
13
grep Linux article1 article2 article20

gerp Linux article*

grep Linux article?
grep Linux article?? 搜索article10~99

grep Linux article[12345] 搜索article1~5
grep Linux article[1-5]

grep Linux article*[02468] 搜索2468结尾的文章

ls [A-Z]*_*@ 寻找大写字母开头,中间有下划线,并以@结尾的文件

使用变量遍历

移动多个文件

1
2
3
4
5
6
7
8
方法1:使用通配符
mv mammals/*.txt reptiles

方法2:使用变量遍历字符串
FILES='lizard.txt snake.txt'
for f in $FILES; do
mv mammals/$f reptiles
done

重定向方法

1
2
3
4
5
> 重定向标准输出 stdout
2> 重定向错误输出 stderr
&> 同时输出标准和错误输出

>>后面再加一个>表示追加

阻止shell计算

1
2
3
4
5
6
7
8
9
10
双引号""表示弱引用,其中的内容会被shell计算
单引号''表示强引用,其中的内容会原封不动

\反斜杠,也叫续行符,提高命令可读性
cut -f1 grades \
sort \
uniq -c \
sort -nr \
head -n1 \
cut -c9

查找文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
寻找文件和路径,是从环境变量中开始寻找的
echo $PATH | tr : "\n"
/home/kiosk/.local/bin
/home/kiosk/bin
/usr/local/bin
/usr/bin
/usr/local/sbin
/usr/sbin

which命令:
which mv
/usr/bin/mv

type命令:
type mv
mv is /usr/bin/mv

环境初始化文件rc

默认的shell也就是bash的初始化文件.bashrc

如果使用的其他shell比如zsh,使用的就是.zshrc

其中包含了一些初始化配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
PATH变量
PATH=$HOME/bin:/usr/local/bin:/usr/bin:/bin

Prompt String 1:控制提示信息的环境变量
PS1='$ '

默认编辑器
EDITOR=

默认工作目录
cd $HOME/Work/Projects

alias配置
alias g=grep

进入shell时的提示
echo "welcome to linux"

更新初始化文件:
source $HOME/.bashrc
. $HOME/.bashrc
CATALOG