Linux常用命令

作为学习Linux命令的备忘。先挖一个坑,日后慢慢填。

包管理

apt-get Debian系

参数介绍:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 命令:
update - 检索 新的包列表
upgrade - 升级 可更新的所有软件包
install - 安装 新软件包(pkg是libc6不是libc6.deb)
remove - 删除 软件包
autoremove - 自动删除 所有未使用的软件包
purge - 删除 软件包和配置文件
clean - 清除 已下载的归档文件
autoclean - 清除 旧的下载的档案文件
check - 验证 是否有损坏的依赖
download - 下载 二进制包到当前目录

# 选项:
-q :不输出任何信息
-qq :除了错误之外,没有输出
-d :仅下载,不要安装或解压缩存档
-y :对所有确定询问都选择 Yes,并且不提示
-f :尝试纠正 被破坏依赖关系的系统
-m :如果存档是可定位的,则尝试继续
-u :显示升级包的列表
-b :在获取源代码包后构建源包

yum RedHat系

参数介绍:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# 命令: 
update - 检索 新的包列表
upgrade - 升级 软件包
search - 搜索 软件包
install - 安装 软件包
list - 列出 软件包或者软件包组
info - 显示软件包或者软件包组的详细信息
erase - 删除 软件包
remove - 删除 软件包(这两个命令一样)
groupinfo - 显示 有关包组的详细信息
groupinstall - 安装 软件包组(就像一种软件合集)
grouplist - 列出 可用的软件包组
groupremove - 删除 软件包组
check - 检查 软件包
check-update - 检查 可更新的软件包
clean - 清除 缓存目录内的软件包
deplist - 列出 一个包的依赖关系
distribution-synchronization - 同步 已安装的软件包到最新的版本
downgrad - 降级 一个软件包
reinstall - 重新安装 软件包(自动删除重装)
repolist - 显示 配置的软件包仓库
resolvedep - 确定 软件包需要的依赖关系

# 选项:
-t :容忍错误
-C :完全从系统缓存运行,不要更新缓存
-R 分钟 :最大命令等待时间
-q :安静的操作
-y :对于所有问题回答是
--nogpgcheck :禁用gpg签名检查

文件操作

mkdir 新建文件夹

1
2
3
4
#相对路径
mkdir bash
#绝对路径
mkdir /root/bash

cd 进入文件夹

1
2
3
4
5
6
#相对路径
cd bash
#绝对路径
cd /root/bash
#返回上级目录
cd ..

cp 复制/重命名

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#复制单个文件
cp log.txt /var/log.txt
#复制多个文件
cp -R log.txt log1.txt log2.txt /var/log
#复制整个目录
cp -R bash /home/bash
#强制执行
cp -f log.txt /var/log.txt
————————————————————————
#按照表达式筛选
cp *.txt /var/log
cp log* /var/log
cp log*.txt /var/log
————————————————————————
#重命名
cp log.txt log2.txt
cp log.txt /var/log2.txt
cp -R bash /home/bash2

mv 移动/重命名

基本与上面cp命令相同

1
2
3
4
5
6
7
8
9
10
11
#移动文件
mv log.txt /var/log.txt
#移动目录
mv bash /home/bash
#强制执行
mv -f log.txt /var/log.txt
————————————————————————
#重命名
mv log.txt log2.txt
mv log.txt /var/log2.txt
mv bash /home/bash2

rm 删除

1
2
3
4
5
6
7
8
#删除单个文件
rm log.txt
#按表达式筛选
rm *.txt
#递归删除
rm -r bash
#你懂得~~
rm -rf /

查看/编辑文件 操作

du 查看 文件/文件夹 占用磁盘空间的大小

参数介绍:

1
2
3
4
5
6
7
-h :以人类易读的方式显示
-a :显示 目录占用的磁盘空间大小,并显示其下目录和文件占用磁盘空间的大小
-s :显示 目录占用的磁盘空间大小,但不显示其下子目录和文件占用的磁盘空间大小
-c :显示几个目录或文件占用的磁盘空间大小,还要统计它们的总和
--apparent-size:显示目录或文件自身的大小
-l :统计硬链接占用磁盘空间的大小
-L :统计符号链接所指向的文件占用的磁盘空间大小

使用示例:

1
2
3
4
5
6
7
8
# 假设当前位于 /root 目录下,则显示 /root 文件夹的大小,但不显示其子目录和文件的大小
du -sh

# 假设当前位于 /root 目录下,则显示 /root 文件夹的大小,并显示其子目录和文件的大小
du -ah

# 假设当前位于 /root 目录下,则显示 /root 文件夹下的所有文件夹的大小及其总和
du -lh --max-depth=1

sed 查看/编辑文件内容

参数介绍:

1
2
-i :操作后应用保存到原文件(如果不加这个参数,那么任何修改都不会影响原文件里的内容,只会把结果输出)
-e :仅显示处理后的结果

使用示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# 查看 log.txt 第3行的内容
sed -n '3p' log.txt

# 查看 log.txt 第2-8行的内容
sed -n '2,8p' log.txt

# 删除 log.txt 第1行(首行)
sed -i '1d' log.txt

# 删除 log.txt 第3-7行
sed -i '3,7d' log.txt

# 删除 log.txt 最后1行(尾行)
sed -i '$d' log.txt

# 删除 log.txt 中所有空白行
sed -i '/^$/d' log.txt

# 删除 log.txt 开头是 doubi 的行

sed -i '/^doubi/'d log.txt

# 删除 log.txt 结尾是 doubi 的行
sed -i '/doubi$/'d log.txt

# 删除 log.txt 文件中所有包含 233内容的行
sed -i '/233/d' log.txt

# 删除 log.txt 文件中第一个 233文本
sed -i 's/233//' log.txt

# 删除 log.txt 文件中所有 233文本(g 代表操作所有匹配规则的文本)
sed -i 's/233//g' log.txt

# 删除 log.txt 文件中所有 第5个233文本(5g 代表第五个匹配规则的文本)
sed -i 's/233//5g' log.txt

# 替换 log.txt 文件中第一个 233为666
sed -i 's/233/666/' log.txt

# 替换 log.txt 文件中所有 233为666(g 代表操作所有匹配规则的文本)
sed -i 's/233/666/g' log.txt

# 替换 log.txt 文件中所有 /ver 为 doubi/,因为有斜杠,所以需要使用 \ 转义,但是单引号会导致无法转义,所以要改成双引号。
sed -i "s/\/ver/doubi\//" log.txt

# 显示 log.txt 文件中的奇数行或偶数行
sed -n 'p;n' log.txt #奇数行
sed -n 'n;p' log.txt #偶数行