Linux 下常用命令和脚本总结

Linux 下常用命令和脚本总结
Linux 是一种类 UNIX 操作系统,广泛应用于服务器、桌面和嵌入式系统中。熟练掌握 Linux 下的常用命令和脚本编写,可以大大提高系统管理、任务自动化和开发效率。以下是对 Linux 下常用命令和 Shell 脚本的详细总结。

一、基础命令

  1. 文件和目录操作
    ls:列出目录内容

Bash

ls -l # 详细信息
ls -a # 显示隐藏文件
ls -lh # 人类可读格式
cd:更改目录

Bash

cd /path/to/directory # 切换到指定目录
cd ~ # 切换到用户主目录
cd - # 切换到上一个目录
pwd:显示当前工作目录

Bash

pwd
mkdir:创建目录

Bash

mkdir newdir # 创建新目录
mkdir -p parent/child # 递归创建目录
rmdir:删除空目录

Bash

rmdir emptydir # 删除空目录
rm:删除文件和目录

Bash

rm file.txt # 删除文件
rm -r directory # 递归删除目录及其内容
rm -f file.txt # 强制删除文件
cp:复制文件和目录

Bash

cp source.txt dest.txt # 复制文件
cp -r sourcedir destdir # 递归复制目录
mv:移动或重命名文件和目录

Bash

mv oldname.txt newname.txt # 重命名文件
mv file.txt /path/to/directory # 移动文件
touch:创建空文件或更新文件时间戳

Bash

touch newfile.txt # 创建空文件
2. 文件内容操作
cat:显示文件内容

Bash

cat file.txt # 显示文件内容
cat file1.txt file2.txt # 显示多个文件内容
more:分页显示文件内容

Bash

more file.txt # 分页显示文件内容
less:分页显示文件内容(支持向前翻页)

Bash

less file.txt # 分页显示文件内容
head:显示文件开头部分

Bash

head -n 10 file.txt # 显示文件的前10行
tail:显示文件结尾部分

Bash

tail -n 10 file.txt # 显示文件的后10行
tail -f logfile.txt # 实时显示文件新增内容
grep:搜索文本中的模式

Bash

grep “pattern” file.txt # 搜索文件中的模式
grep -r “pattern” directory # 递归搜索目录中的模式
grep -i “pattern” file.txt # 忽略大小写
grep -n “pattern” file.txt # 显示行号
awk:文本处理工具

Bash

awk ‘{print $1}’ file.txt # 打印文件的第一列
awk -F: ‘{print $1}’ file.txt # 使用冒号作为字段分隔符
sed:流编辑器

Bash

sed ‘s/old/new/g’ file.txt # 替换文本中的模式
sed -n ‘2,4p’ file.txt # 显示文件的第2到第4行
3. 系统和进程管理
ps:显示当前进程

Bash

ps -e # 显示所有进程
ps -ef # 显示详细信息
ps -u username # 显示指定用户的进程
top:实时显示系统资源使用情况

Bash

top # 实时显示系统资源使用情况
kill:终止进程

Bash

kill pid # 终止指定进程ID的进程
kill -9 pid # 强制终止进程
killall:终止所有匹配名称的进程

Bash

killall processname # 终止所有匹配名称的进程
df:显示文件系统磁盘空间使用情况

Bash

df -h # 以人类可读格式显示磁盘空间使用情况
du:显示目录磁盘使用情况

Bash

du -sh directory # 以人类可读格式显示目录的磁盘使用情况
du -sh * # 显示当前目录下各文件和子目录的磁盘使用情况
free:显示内存使用情况

Bash

free -h # 以人类可读格式显示内存使用情况
uptime:显示系统运行时间和负载

Bash

uptime # 显示系统运行时间和负载
uname:显示系统信息

Bash

uname -a # 显示所有系统信息
uname -r # 显示内核版本
hostname:显示或设置系统主机名

Bash

hostname # 显示系统主机名
hostname newhostname # 设置系统主机名
4. 网络管理
ifconfig:配置网络接口(通常需要 root 权限)

Bash

ifconfig # 显示网络接口配置
ifconfig eth0 up # 启用网络接口
ifconfig eth0 down # 禁用网络接口
ping:测试网络连通性

Bash

ping www.example.com # 测试与主机的连通性
netstat:显示网络连接、路由表和接口统计信息

Bash

netstat -tuln # 显示所有监听端口
netstat -p # 显示每个连接的程序
traceroute:跟踪数据包的路由路径

Bash

traceroute www.example.com # 跟踪数据包的路由路径
wget:下载文件

Bash

wget http://www.example.com/file.zip # 下载文件
curl:传输数据

Bash

curl -O http://www.example.com/file.zip # 下载文件
curl -I http://www.example.com # 显示 HTTP 响应头
scp:通过 SSH 复制文件

Bash

scp file.txt user@remote:/path/to/destination # 复制文件到远程主机
scp user@remote:/path/to/source file.txt # 从远程主机复制文件
ssh:远程登录

Bash

ssh user@remote # 远程登录到主机
5. 压缩和解压缩
tar:创建和解压缩 tar 压缩包

Bash

tar -cvf archive.tar file1 file2 # 创建 tar 压缩包
tar -xvf archive.tar # 解压 tar 压缩包
tar -czvf archive.tar.gz file1 file2 # 创建 gzip 压缩的 tar 包
tar -xzvf archive.tar.gz # 解压 gzip 压缩的 tar 包
tar -cjvf archive.tar.bz2 file1 file2 # 创建 bzip2 压缩的 tar 包
tar -xjvf archive.tar.bz2 # 解压 bzip2 压缩的 tar 包
gzip:压缩和解压缩文件

Bash

gzip file.txt # 压缩文件
gunzip file.txt.gz # 解压文件
bzip2:压缩和解压缩文件

Bash

bzip2 file.txt # 压缩文件
bunzip2 file.txt.bz2 # 解压文件
zip:创建和解压缩 zip 压缩包

Bash

zip archive.zip file1 file2 # 创建 zip 压缩包
unzip archive.zip # 解压 zip 压缩包
6. 包管理
apt-get:Debian 和 Ubuntu 系统的包管理工具

Bash

sudo apt-get update # 更新软件包列表
sudo apt-get upgrade # 升级已安装的软件包
sudo apt-get install package # 安装软件包
sudo apt-get remove package # 删除软件包
sudo apt-get search package # 搜索软件包
yum:CentOS 和 RHEL 系统的包管理工具

Bash

sudo yum update # 更新软件包列表
sudo yum upgrade # 升级已安装的软件包
sudo yum install package # 安装软件包
sudo yum remove package # 删除软件包
sudo yum search package # 搜索软件包
dnf:Fedora 和 RHEL 系统的包管理工具

Bash

sudo dnf update # 更新软件包列表
sudo dnf upgrade # 升级已安装的软件包
sudo dnf install package # 安装软件包
sudo dnf remove package # 删除软件包
sudo dnf search package # 搜索软件包
pacman:Arch Linux 系统的包管理工具

Bash

sudo pacman -Syu # 更新和升级软件包
sudo pacman -S package # 安装软件包
sudo pacman -R package # 删除软件包
sudo pacman -Ss package # 搜索软件包
二、Shell 脚本编程
Shell 脚本是一种用于在 UNIX 和 Linux 操作系统中执行一系列命令的编程语言。它被广泛应用于系统管理、任务自动化、数据处理和应用程序部署等领域。通过编写和执行脚本文件,用户可以自动化执行繁琐的命令和任务,从而提高工作效率和减少人为错误。

  1. 编写和执行 Shell 脚本
    创建脚本文件:

使用文本编辑器创建一个新的脚本文件,并添加脚本代码。
Bash

#!/bin/bash
echo “Hello, World!”
赋予执行权限:

使用 chmod 命令赋予脚本文件执行权限。
Bash

chmod +x script.sh
执行脚本文件:

使用 ./ 语法执行脚本文件。
Bash

./script.sh
2. 变量和参数
定义和使用变量:

使用 = 符号定义变量,使用 $ 符号引用变量。
Bash

#!/bin/bash
name=“John”
echo “Hello, $name!”
位置参数:

使用 $1、$2 等位置参数从命令行传递数据到脚本中。
Bash

#!/bin/bash
echo “First parameter: $1”
echo “Second parameter: $2”
3. 流程控制
条件判断:

使用 if、else、elif 等条件判断语句。
Bash

#!/bin/bash
if [ $1 -gt 10 ]; then
echo “The number is greater than 10.”
elif [ $1 -eq 10 ]; then
echo “The number is equal to 10.”
else
echo “The number is less than 10.”
fi
循环结构:

使用 for、while、until 等循环结构。
Bash

#!/bin/bash
for i in {1…5}; do
echo “Number: $i”
done

count=1
while [ $count -le 5 ]; do
echo "Count: c o u n t " c o u n t = count" count= count"count=((count + 1))
done

count=10
until [ $count -lt 5 ]; do
echo "Count: c o u n t " c o u n t = count" count= count"count=((count - 1))
done
4. 函数定义
定义和调用函数:
使用 function 关键字定义函数,使用函数名调用函数。
Bash

#!/bin/bash
function greet {
echo “Hello, $1!”
}

greet “Alice”
greet “Bob”
5. 输入和输出
读取用户输入:

使用 read 命令从标准输入读取数据。
Bash

#!/bin/bash
echo “Enter your name:”
read name
echo “Hello, $name!”
输出重定向:

使用 > 和 >> 重定向输出到文件。
Bash

#!/bin/bash
echo “This is a test.” > output.txt
echo “Appending text.” >> output.txt
输入重定向:

使用 < 重定向输入到命令。
Bash

#!/bin/bash
while read line; do
echo “Line: $line”
done < input.txt
三、综合示例
以下是一些综合示例,展示如何结合使用常用命令和 Shell 脚本编写复杂的任务:

示例1:备份文件夹
编写一个 Shell 脚本,将指定文件夹压缩为 tar.gz 文件,并将备份文件存储在指定位置。

Bash

#!/bin/bash

检查参数

if [ $# -ne 2 ]; then
echo “Usage: $0 source_directory backup_directory”
exit 1
fi

获取参数

SOURCE_DIR=$1
BACKUP_DIR= 2 T I M E S T A M P = 2 TIMESTAMP= 2TIMESTAMP=(date +“%Y%m%d_%H%M%S”)
BACKUP_FILE=“KaTeX parse error: Expected group after '_' at position 18: …CKUP_DIR/backup_̲TIMESTAMP.tar.gz”

创建备份目录(如果不存在)

mkdir -p “$BACKUP_DIR”

压缩文件夹

tar -czvf “ B A C K U P F I L E " " BACKUP_FILE" " BACKUPFILE""SOURCE_DIR”

检查压缩结果

if [ $? -eq 0 ]; then
echo “Backup successful: $BACKUP_FILE”
else
echo “Backup failed”
exit 1
fi
示例2:监控系统资源
编写一个 Shell 脚本,定时监控系统的 CPU、内存和磁盘使用情况,并将结果写入日志文件。

Bash

#!/bin/bash

日志文件

LOG_FILE=“/var/log/system_monitor.log”

间隔时间(秒)

INTERVAL=60

监控系统资源

while true; do
TIMESTAMP= ( d a t e + " C P U U S A G E = (date +"%Y-%m-%d %H:%M:%S") CPU_USAGE= (date+"CPUUSAGE=(top -bn1 | grep “Cpu(s)” | awk '{print $2 + KaTeX parse error: Expected 'EOF', got '}' at position 2: 4}̲') MEM_USAG…(free -m | awk ‘NR2{printf “%.2f”, $3*100/KaTeX parse error: Expected 'EOF', got '}' at position 3: 2 }̲') DISK_USA…(df -h | awk '$NF"/"{printf “%s”, $5}’)

echo "$TIMESTAMP CPU: $CPU_USAGE% MEM: $MEM_USAGE% DISK: $DISK_USAGE" >> "$LOG_FILE"

sleep "$INTERVAL"

done
示例3:自动化部署
编写一个 Shell 脚本,自动化部署应用程序,包括拉取最新代码、安装依赖、构建项目和重启服务。

Bash

#!/bin/bash

项目目录

PROJECT_DIR=“/path/to/project”

进入项目目录

cd “$PROJECT_DIR”

拉取最新代码

git pull origin main

检查拉取结果

if [ $? -ne 0 ]; then
echo “Failed to pull latest code”
exit 1
fi

安装依赖

npm install

检查安装结果

if [ $? -ne 0 ]; then
echo “Failed to install dependencies”
exit 1
fi

构建项目

npm run build

检查构建结果

if [ $? -ne 0 ]; then
echo “Failed to build project”
exit 1
fi

重启服务

sudo systemctl restart myapp

检查重启结果

if [ $? -ne 0 ]; then
echo “Failed to restart service”
exit 1
fi

echo “Deployment successful”
总结
Linux 下的常用命令和 Shell 脚本是系统管理、任务自动化和开发的重要工具。通过熟练掌握这些命令和脚本编写技巧,开发人员和系统管理员可以高效地执行各种操作,提高工作效率和减少人为错误。希望这些信息能帮助你更好地理解和使用 Linux 命令和 Shell 脚本。如果你有任何疑问或需要进一步的帮助

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技术学习分享

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值