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
评论将在接近此处时加载,也可点击立即加载。