shell
Shell 是一种用于与操作系统进行交互的命令行界面。常见的 Shell 有 Bash(Bourne Again Shell)、Zsh、Ksh、以及 Windows 上的 PowerShell。Shell 不仅可以用于执行单个命令,还可以编写脚本来自动化任务。以下是一些基本的 Shell 命令和脚本编写的示例。
基本 Shell 命令
文件和目录操作
ls:列出目录内容
ls ls -l # 显示详细信息 ls -a # 显示所有文件,包括隐藏文件
cd:更改目录
cd /path/to/directory cd .. # 返回上一级目录
pwd:显示当前工作目录
pwd
mkdir:创建目录
mkdir new_directory
rm:删除文件或目录
rm filename rm -r directory # 删除目录及其内容
cp:复制文件或目录
cp source_file destination cp -r source_directory destination # 复制目录及其内容
mv:移动或重命名文件或目录
mv old_name new_name mv file /path/to/destination
文件查看和编辑
cat:查看文件内容
cat filename
less:分页查看文件内容
less filename
head:查看文件开头部分
head filename head -n 10 filename # 查看前 10 行
tail:查看文件末尾部分
tail filename tail -n 10 filename # 查看后 10 行
nano、vi、vim:文本编辑器
nano filename vi filename vim filename
系统信息和管理
echo:打印消息
echo "Hello, World!"
whoami:显示当前用户
whoami
top:实时显示系统性能信息
top
ps:显示当前进程
ps ps aux # 显示所有进程
kill:终止进程
kill PID kill -9 PID # 强制终止进程
chmod:更改文件权限
chmod 755 filename chmod +x filename # 使文件可执行
chown:更改文件所有者
chown user:group filename
网络相关
ping:测试网络连通性
ping example.com
curl:发送网络请求
curl http://example.com
wget:下载文件
wget http://example.com/file
管道和重定向
**|**:管道,将一个命令的输出作为另一个命令的输入
ls | grep "pattern"
**>**:重定向输出到文件(覆盖)
echo "Hello, World!" > file.txt
**>>**:重定向输出到文件(追加)
echo "Hello, World!" >> file.txt
**<**:重定向输入
command < inputfile
变量
设置变量
MY_VAR="Hello, World!"
使用变量
echo $MY_VAR
Shell 脚本
Shell 脚本是一组 Shell 命令的集合,通常用于自动化任务。以下是一个简单的 Shell 脚本示例:
创建脚本文件
使用你喜欢的文本编辑器创建一个脚本文件,例如 myscript.sh
:
nano myscript.sh
编写脚本
在脚本文件中编写以下内容:
#!/bin/bash
# 打印消息
echo "This is a simple shell script."
# 设置变量
NAME="Alice"
# 使用变量
echo "Hello, $NAME!"
# 条件语句
if [ $NAME == "Alice" ]; then
echo "Welcome, Alice!"
else
echo "You are not Alice."
fi
# 循环
for i in {1..5}; do
echo "Number: $i"
done
# 函数
my_function() {
echo "This is a function."
}
# 调用函数
my_function
运行脚本
首先使脚本可执行:
chmod +x myscript.sh
然后运行脚本:
./myscript.sh