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