#Bash 入门
#Hello World
Bash 的内置命令 echo 可以打印文本。例如:
1 | echo Hello World |
echo 命令的 -e 选项激活转义字符的解释。例如:
1 | echo -e "Hello \n World" |
#命令格式
Bash 命令基本遵循以下格式:
1 | 命令 参数1 参数2 参数3 ... |
例如在 echo Hello World 中,echo 是命令,Hello 是参数1,World 是参数2。
而在 echo -e "Hello \n World" 中,echo 是命令,-e 是参数1,"Hello \n World" 是参数2。
#注释
注释(comment)是写在程序里的说明性文字,不会被执行。
Bash 中的注释使用 # 表示,例如:
1 | # 这是注释,不会执行 |
- 只会打印
Hello World不会打印# 这也是注释
如果要让 # 表示该字符本身(而不是注释),可以使用 \ 转义或者使用引号包裹。
例如:
1 | \# 这不是注释,会执行 |
##!Shebang
#!(读作 shebang)是 Bash 中的一个特殊标记,写在脚本文件的开头,用来表示该文怎样运行。
例如:
demo.sh
1 |
|
#!/usr/bin/bash表示通过/usr/bin/bash demo.sh命令解释执行
demo.py
1 | #!/usr/bin/env pyhon3 |
#!/usr/bin/env pyhon3表示通过/usr/bin/env pyhon3 demo.py命令解释执行
#命令类型
Bash 中的命令主要分为四类:
- 内置命令
- 可执行程序(外部命令)
- 函数
- 别名
可以通过 type 查看命令的类型。例如:
1 | type type |
- type 本身是一个内置命令
- echo 是内置命令
- ls 是
ls --color=auto的别名 - cat 是可执行程序,路径为
/usr/bin/cat
#别名
alias 命令可以查看和定义别名,unalias 命令可以删除别名。格式为:
1 | alias # 查看所有别名 |
例如:
1 | alias greet='echo Hello' # 定义别名 |
在命令前加上反斜杠(\)可以抑制别名。例如:
1 | type -a ls # 查看所有可用的 ls 命令 |
#基础命令
| 命令 | 说明 | 示例 |
|---|---|---|
| echo | 输出文字或变量值 | echo “Hello Bash” echo $HOME |
| pwd | 显示当前工作目录路径 | pwd → /home/user |
| ls | 列出目录内容 | ls -l(详细格式) ls -a(显示隐藏文件) |
| cd | 切换工作目录 | cd /etc(进入 /etc) cd ..(返回上一级) |
| mkdir | 创建目录 | mkdir new_folder |
| rmdir | 删除空目录 | rmdir old_folder |
| cp | 复制文件或目录 | cp file1.txt file2.txt cp -r dir1 dir2(递归复制目录) |
| mv | 移动或重命名文件 | mv old.txt new.txt(重命名) mv file.txt /tmp/(移动) |
| rm | 删除文件或目录 | rm file.txt rm -D dir/(删除空目录) rm -r dir/(递归删除目录) rm -rf *(强制删除全部) |
| touch | 创建空文件或更新时间戳 | touch new.txt |
| cat | 查看文件内容 | cat file.txt |
| more / less | 分页查看文件 | less large.txt(可上下翻页) |
| head | 查看文件前几行 | head -n 10 file.txt |
| tail | 查看文件末几行 | tail -n 20 file.txt tail -f log.txt(实时查看) |
#常用快捷键
Ctrl + C- 中断程序的运行Ctrl + Z- 暂停程序的运行,可以通过fg命令恢复运行Ctrl + D- 退出 BashCtrl + A- 光标移动到行首Ctrl + E- 光标移动到行尾Ctrl + U- 删除从光标位置到行首的内容Ctrl + K- 删除从光标位置到行尾的内容Shift + PageUp- 向上翻页Shift + PageDown- 向下翻页