常用 Linux 命令大全(文件、网络、时间、进程、数据库、工具全覆盖)

本文总结了工作中最常用的 Linux 命令,按类别整理并附示例、解释,非常适合作为查阅笔记。建议收藏!


📁 一、文件 & 文件夹处理

1. 文件拆分与合并

shell 复制代码
# 按大小拆分
split -b 1G filename
split -b 900m filename

# 合并
cat ./* > filename

拆分/合并压缩包(bz2):

shell 复制代码
split -b 900m name.tar.bz2 "name.tar.bz2.part"
cat name.tar.bz2.part* > name.tar.bz2

2. 文件行数统计

shell 复制代码
wc -l filename

3. 压缩与解压

shell 复制代码
tar -jcvf name.tar.bz2 filename     # 打包压缩
tar -jxvf name.tar.bz2              # 解压

zip -r archive.zip file             # zip 压缩
unzip archive.zip                   # zip 解压

4. 文件传输(scp)

shell 复制代码
scp -P 22022 user@10.19.92.14:~/download ./
scp -P 22022 local_path user@10.19.28.107:/data

5. 批量查找文件内容

shell 复制代码
find . -name "main.log.2023-02-02_*" | xargs grep "162108967569326080"

6. FTP / SFTP

shell 复制代码
sftp user@IP
ftp ip

7. 文件内容替换(sed & vim)

sed 批量替换

shell 复制代码
sed -i "s/pre/edit/g" file

VIM 替换

shell 复制代码
:s/foo/bar            # 当前行
:%s/foo/bar/g         # 全局
:10,20s/foo/bar/g     # 指定范围

8. 排除文件类型复制(rsync)

shell 复制代码
rsync -av --exclude='*.csv' --exclude='*.txt' /src/ /dst/

9. 用 find 实现"排除文件类型的复制"

性能强、可处理特殊字符文件名。

shell 复制代码
find "$SOURCE_DIR" \( -name "*.csv" -o -name "*.txt" \) -prune -o -type f -print0 |
while IFS= read -r -d '' file; do
    rel_path="${file#$SOURCE_DIR/}"
    mkdir -p "$DEST_DIR/$(dirname "$rel_path")"
    cp "$file" "$DEST_DIR/$rel_path"
done

👇 核心逻辑解释

  • print0 + -d '' 处理换行/空格安全
  • ${file#$SOURCE_DIR/} 用于提取相对路径
  • prune 用来排除特定类型文件
  • while ... read 循环复制所有非排除文件

🖥 二、VIM 操作速查

1. 替换

shell 复制代码
:%s/old/new/gc      # 全局带确认
:10,20s/old/new/gc  # 指定行

2. 复制/粘贴

shell 复制代码
yy               # 复制当前行
p / P            # 在后/前粘贴
nyy              # 向下复制 n 行

3. 撤销

shell 复制代码
u

4. 可视模式

shell 复制代码
Ctrl + v   # 块选择

5. 分屏

shell 复制代码
:vsplit         # 左右分屏
:sp file        # 水平打开文件
:vsp file       # 垂直打开文件

窗口切换:

shell 复制代码
Ctrl + w + h
Ctrl + w + l

窗口大小:

shell 复制代码
:vertical resize +10
:vertical resize -10

📤 三、输入 / 输出增强工具

xargs

shell 复制代码
find . -name "*.txt" | xargs rm
echo "a,b,c" | xargs -d , echo
echo "a b c" | xargs -n 1 -P 3 gzip
  • -d:自定义分隔符
  • -P:并行数
  • -n:每批参数数量

🕒 四、时间相关

当前时间:

shell 复制代码
date +"%Y-%m-%d %H:%M:%S"

日期计算:

shell 复制代码
date --date="2 months ago" +"%Y-%m-%d"
date --date="2 days ago" +"%Y-%m-%d"
date --date="2 days" +"%Y-%m-%d"

crontab 定时任务

shell 复制代码
crontab -e
crontab -l

设置系统时区

shell 复制代码
cp /etc/localtime /etc/localtime.bak
ls /usr/share/zoneinfo
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
date

🌐 五、网络相关

curl(常见 REST 请求)

shell 复制代码
curl -d '{"batchId": "xxx"}' \
     -H "Content-Type: application/json" \
     -X POST http://host:port/api

也可配合管道发送:

shell 复制代码
echo '{"key":"value"}' | curl -X POST -H "Content-Type:application/json" --data @- http://host/api

防火墙检查(iptables / firewalld / ufw)

iptables

shell 复制代码
sudo iptables -L
iptables -L -n -v | grep 8080

firewalld

shell 复制代码
sudo systemctl status firewalld

ufw

shell 复制代码
sudo ufw status

iptables 端口

shell 复制代码
sudo iptables -F
sudo iptables -X
sudo iptables -P INPUT ACCEPT

🧩 六、进程相关

1. 查询端口使用情况

shell 复制代码
lsof -i:port
ss -nlp | grep port

2. 查询进程工作目录

shell 复制代码
cd /proc/pid
ls -l cwd

3. 强制杀死进程及子进程

shell 复制代码
kill -9 $(ps -o pid= --ppid=29240)
kill -9 $(ps -o pid= --ppid=$1)

⚠ 磁盘满 / inode 满排查

shell 复制代码
df -ih
df -vh

🛰 七、系统资源查看

shell 复制代码
lscpu       # CPU
free -m     # 内存
lsblk       # 磁盘

🗃 八、数据库 / Hive / beeline

shell 复制代码
beeline -u "jdbc:hive2://host:10000/db" -n hive

Hive 导出 CSV:

shell 复制代码
beeline ... --outputformat=csv2 -e "select * from tab"

🐳 九、Docker 常用命令

shell 复制代码
docker save -o image.tar image_id
docker load < image.tar

docker run -itd -p 8005:8005 -v /local:/container \
           --name EasyRec --runtime=nvidia image /bin/bash

🐍 十、Anaconda 卸载与环境迁移

卸载:

shell 复制代码
conda install anaconda-clean
anaconda-clean
rm -rf ~/Apps/anaconda3

迁移环境:

shell 复制代码
mkdir unpacked_env
tar -xzf deploy.tar.gz -C unpacked_env
source unpacked_env/bin/activate

🔧 十一、多进程 shell 模板(示例)

shell 复制代码
for product in "${products[@]}"; do
    if [[ "$product" == "plan_id" || "$product" == *"|"* || "$product" == *"+"* ]]; then
       continue
    fi 

    echo "Query: ${product}"
    kinit -kt keytab user

    hdfs dfs -test -e hdfs://path/${product}
    test $? -ne 0 && hdfs dfs -mkdir hdfs://path/${product}

    for ((i=1;i<=3;i++)); do
        beeline -u ...
        hdfs dfs -getmerge hdfs://path/${product}/* ${product}.csv
        test $? -eq 0 && break
        sleep 5
    done
done

相关推荐
Ace_31750887762 小时前
拼多多商品详情接口深度解析:从加密参数破解到数据全量获取
前端·数据库·github
yuejich2 小时前
命名规范snake_case
服务器·前端·数据库
小羊失眠啦.2 小时前
Rust核心库(core)深度解析:无依赖基石的设计与实践
数据库·算法·rust
百***97642 小时前
LangChain-08 Query SQL DB 通过GPT自动查询SQL
数据库·sql·langchain
q***21602 小时前
【SQL技术】不同数据库引擎 SQL 优化方案剖析
数据库·sql
我还可以再学点2 小时前
八股文面试攻略四:网络篇
网络·面试·职场和发展
q***76662 小时前
显卡(Graphics Processing Unit,GPU)架构详细解读
大数据·网络·架构
a123560mh2 小时前
国产信创操作系统银河麒麟常见软件适配(MongoDB、 Redis、Nginx、Tomcat)
linux·redis·nginx·mongodb·tomcat·kylin
赖small强3 小时前
【Linux驱动开发】Linux MMC子系统技术分析报告 - 第二部分:协议实现与性能优化
linux·驱动开发·mmc