Linux常用技巧

1 环境配置相关

1.1 ubuntu/debian换源

建议直接根据系统和版本选择对应的阿里云官方镜像配置说明

以更换debian 11.x系统的源为例:

# 备份旧的
cp /etc/apt/sources.list /etc/apt/sources.list.bak
# 编辑新的
vim /etc/apt/sources.list

输入以下内容:

deb https://mirrors.aliyun.com/debian/ bullseye main non-free contrib
deb-src https://mirrors.aliyun.com/debian/ bullseye main non-free contrib
deb https://mirrors.aliyun.com/debian-security/ bullseye-security main
deb-src https://mirrors.aliyun.com/debian-security/ bullseye-security main
deb https://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib
deb-src https://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib
deb https://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib
deb-src https://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib

更新源:

sudo apt-get update # 更新源
# 遇到不可信问题时(repository 'xxx' is not signed
# 添加参数--allow-unauthenticated

1.2 离线安装模块

  1. Ubuntu/Debian系统

以离线安装inotify-tools模块(功能简介)为例

先在有网络的服务器(系统版本尽量保持与离线服务器一致)中,执行下载命令:

apt-get install --download-only inotify-tools

此时下载的.deb文件都会存储于文件夹/var/cache/apt/archives

之后将缓存文件夹导入离线服务器,并执行以下命令:

dpkg -i *.deb # 批量安装

注意:当两个服务器的初始依赖不一致时可能存在问题

更多离线安装方法可参考:How To Download Packages With Dependencies Locally In Ubuntu, Debian, Linux Mint, Pop OS

  1. CentOS系统

以离线安装audit模型()为例

先在有网络的服务器(系统版本尽量保持与离线服务器一致)中,执行安装命令:

yum install audit

之后解析安装包及其依赖,并存储到指定位置,如/tmp/audit_rpm/

yumdownloader --resolve --destdir=/tmp/audit_rpm/ audit

之后将存储安装包的文件夹导入离线服务器,并执行以下命令:

rpm -ivh * # 批量安装

2 信息操作相关

2.1 系统信息查询

cat /proc/version # 查看系统内核和编译器版本
cat /proc/cpuinfo # 查看cpu信息
cat /etc/redhat-release # 查看CentOS版本
file /bin/ls # 查看系统是32位还是64位
uname -a # 查看Linux 内核

2.2 硬盘信息查询

df -h # 查看文件系统的磁盘使用情况
du -h --max-depth=1 # 查看所有子文件夹的空间大小
du -h /var/ | sort -rh | head -5 # var下的目录或文件占空Top5
find . -type f -size +50M  -print0 | xargs -0 du -h # 找出当前目录下大于50M的文件
ENV # 查看当前文件夹下文件的空间大小
free -g # 以g为单位来显示服务器的内存

2.3 关机与重启

reboot # 立即重启
shutdown -r now # 立刻重启(root用户使用)
shutdown -r 10 # 过10分钟自动重启(root用户使用)
shutdown -r 20:35 # 在时间为20:35时候重启(root用户使用)

3 文本操作相关

3.1 文件移动与链接

mv -r /opt /opt # 移动
cp -r /opt /opt # 复制

# 软连接:ln -s 源文件 目标文件
ln -s /usr/local/mysql/bin/mysql /usr/bin

3.2 vim 文本编辑

  1. 基本操作
vim file.txt # 编辑文件
:w # 保存
:wq # 保存并退出
:q! # 不保存并退出
dd # 删除当前行
p # 粘贴剪切板的内容
h/j/k/l # 光标移动:左/下/上/右
i # 在光标前插入(insert)
a # 在光标后插入 (append)
  1. 查找与跳转
/a //查找内容a
:set ignorecase //搜索前设置忽略大小写
:set noignorecase //还原大小写
:set hlsearch //搜索结果高亮
:set nohlsearch //取消高亮
:set number //显示行数
:set nonumber //不显示行数
3gg //调到第三行,两个g,最后一个g开始跳转
3G //同上
gg //直接跳首行 
G //直接跳末尾
Shift g //同上

3.3 lsof 文件查看

在 linux 环境下,一切皆文件,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件,如传输控制协议 (TCP) 和用户数据报协议 (UDP) 套接字等

# 查看指定文件被哪些进程打开
lsof -a /var/lib/mysql/mysql/slow_log.CSV
# 列出 root 用户打开的文件
lsof -u root | more
# 列出指定程序打开的文件
lsof -c python
# 根据进程号列出打开的文件
lsof -p 31370
# 列出所有的网络连接
lsof -i
# 列出指定端口打开的文件
lsof -i :80
# 查看所有的TCP连接
lsof -n -P -i TCP -s TCP:LISTEN

其他经验贴汇总

在Ubuntu上开启Swap inux 中如何安全地抹去磁盘数据

往年同期文章