目录
1、apt-get Debian/Ubuntu系统包管理器
2、uname 获取
操作系统信息
3、date 查看/设置 系统时间
4、yum CentOS系统包管理器
5、mkdir 新建 文件夹
6、free 查看内存使用信息
7、wget 下载工具
8、cd 进入 文件夹
8、cp 复制或重命名 文件/文件夹
9、VI、VIM 编辑文件内容
10、cat 查看文件内容
11、du 查看 文件/文件夹 占用磁盘空间的大小
12、mv 移动或重命名 文件/文件夹
13、rm 删除 文件/文件夹
14、ls 显示目录中文件
小编是一个网安爱好者,网工工作者,在日常工作和学习中总是离不开和 Linux 打交道。无论你是编程小白还是职场老手,都建议你收藏这份常用 Linux 命令手册。今天就和大家一起学习 Linux常用命令。欢迎大家随时添加。
1、apt-get Debian/Ubuntu系统包管理器
# 命令:
update - 检索 新的包列表
upgrade - 升级 可更新的所有软件包
install - 安装 新软件包(pkg是libc6不是libc6.deb)
remove - 删除 软件包
autoremove - 自动删除 所有未使用的软件包
purge - 删除 软件包和配置文件
clean - 清除 已下载的归档文件
autoclean - 清除 旧的下载的档案文件
check - 验证 是否有损坏的依赖
download - 下载 二进制包到当前目录
# 选项:
-q :不输出任何信息
-qq :除了错误之外,没有输出
-d :仅下载,不要安装或解压缩存档
-y :对所有确定询问都选择 Yes,并且不提示
-f :尝试纠正 被破坏依赖关系的系统
-m :如果存档是可定位的,则尝试继续
-u :显示升级包的列表
-b :在获取源代码包后构建源包
# 更多的命令可以用 apt-get --help 查看。
---------------------------------------------------------------------------------------------------
使用示例:
- # 检索 新的包列表 apt-get update
- # 升级 可更新的所有软件包 apt-get upgrade
- # 安装 Nginx 软件包 apt-get install nginx
- # 卸载 Nginx 软件包 apt-get remove nginx
- # 卸载 Nginx 软件包 并删除所有相关配置文件 apt-get remove --purge nginx
- # 安装 Nginx 软件包 并不显示确定提示 apt-get install nginx -y
- # 卸载 Nginx 软件包,删除所有相关配置文件 并不显示提 apt-get remove --purge nginx -y
- # 清除 旧的/无用 的软件包 apt-get clean && apt-get autoclean
- # 下载 Nginx 二进制软件包到当前目录,但不解压和安装 apt-get download nginx -d
2、uname 获取
操作系统信息
参数介绍:
-a:显示 全部信息
-m:显示 系统位数
-n:显示 主机名称
-r:显示 操作系统的发行编号
-s:显示 操作系统的名称
-v:显示 操作系统的版本
-p:输出 处理器类型 或"unknown"
-i:输出 硬件平台 或"unknown"
-o:输出 操作系统名称
# 更多的命令可以用 uname --help 来查看。
---------------------------------------------------------------------------------------------------
使用示例:
- root@mlldxe.cn:~# uname #在使用 uname 的时候,相当于是使用 uname -s
- root@mlldxe.cn:~# uname -a Linux mlldxe.cn 4.9.75-040975-generic #1 SMP Thu Oct 27 16:59:03 MSK 2016 x86_64 GNU/Linux
- root@mlldxe.cn:~# uname -m #输出一般是64位: x86_64 / 32位: i386 或分支 i686
- x86_64 # 系统位数
- root@mlldxe.cn:~# uname -n mlldxe.cn # 服务器名(往往购买服务器时会让你填写)
- root@mlldxe.cn:~# uname -r 4.9.75-040975-generic # 系统当前内核(主)
3、date 查看/设置 系统时间
# 命令:
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签名检查
# 更多的命令可以用 yum --help 查看。
---------------------------------------------------------------------------------------------------
使用示例:
- 检索 新的包列表 yum update
- 安装 Nginx 软件包yum install nginx
- 安装 Development Tools 软件包组yum groupinstall "Development Tools"
- 卸载 Nginx 软件包yum erase nginx / yum remove nginx
- 卸载 Development Tools 软件包组yum groupremove "Development Tools"
- 升级 所有可更新的软件包yum upgrade
- 升级 Nginx 可更新的软件包yum upgrade nginx
- 安装 Nginx 软件包 并不显示确定提示yum install nginx -y
- 卸载 Nginx 软件包 并不显示确定提示yum erase nginx -y / yum remove nginx -y
- 搜索 Nginx 软件包是否存着yum search nginx
- 列出 可用的软件包yum list
- 列出 可用的软件包组yum grouplist
- 清除 缓存目录中的所有软件包yum clean
- 清除 缓存目录中的 Nginx 软件包yum clean nginx
- 重装 Nginx 软件包yum reinstall nginx
4、yum CentOS系统包管理器
# 命令:
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签名检查
# 更多的命令可以用 yum --help 查看。
---------------------------------------------------------------------------------------------------
使用示例:
- 检索 新的包列表yum update
- 安装 Nginx 软件包yum install nginx
- 安装 Development Tools 软件包组yum groupinstall "Development Tools"
- 卸载 Nginx 软件包yum erase nginx / yum remove nginx
- 卸载 Development Tools 软件包组yum groupremove "Development Tools"
- 升级 所有可更新的软件包yum upgrade
- 升级 Nginx 可更新的软件包yum upgrade nginx
- 搜索 Nginx 软件包是否存着yum search nginx
- 列出 可用的软件包yum list
- 列出 可用的软件包组yum grouplist
- 清除 缓存目录中的所有软件包yum clean
- 清除 缓存目录中的 Nginx 软件包yum clean nginx
- 重装 Nginx 软件包yum reinstall nginx
5、mkdir 新建 文件夹
# 在当前文件夹新建一个 bash 文件夹,完整的绝对路径就是 /root/bash
mkdir bash
# 更多的命令可以用 mkdir --help 查看。
6、free 查看内存使用信息
参数介绍:
-b :以 字节(bytes/B) 为单位显示
-k :以 KB 为单位显示
-m :以 MB 为单位显示
-g :以 GB 为单位显示
--tera :以 TB 为单位显示
-h :以 人类易读的方式输出
--si :以 1000为单位转换,而不是 1024(1MB=1*1024KB改成 1MB=1*1000KB)
-t :显示 内存总数 行
-s 时间 :每隔 X秒输出一次(重复输出监视内存,使用 Ctrl+C 终止)
-c 次数 :每隔 1秒输出 X次
# 更多的命令可以用 free --help 来查看。
---------------------------------------------------------------------------------------------------
使用示例:
# 显示当前系统内存(默认 free = free -k,单位为 KB)
free
# 输出示例
total used free shared buffers cached
Mem: 250872 237752 13120 0 34620 70520
-/+ buffers/cache: 132612 118260
Swap: 643064 1744 641320
—————————————————————————————————————
# 以单位 B/KB/MB/GB/TG 显示当前系统内存
free -b / free -k / free -m / free -g / free --tera
—————————————————————————————————————
# 以人类易读的方式 显示当前系统内存
free -h
# 输出示例
total used free shared buffers cached
Mem: 244M 232M 12M 0B 33M 68M
-/+ buffers/cache: 129M 115M
Swap: 627M 1.7M 626M
—————————————————————————————————————
# 以 1000为单位转换并使用 MB为单位 显示当前系统内存(1MB=1*1024KB改成 1MB=1*1000KB)
free -m --si
# 每隔 3秒并使用 MB为单位 显示一次当前系统内存
free -ms 3
# 每隔 1秒并使用 MB为单位 显示 5次当前系统内存
free -mc 5
# 每隔 2秒并使用 MB为单位 总共显示 6次当前系统内存
free -m -c 6 -s 2
# 更多的命令可以用 free --help 来查看。
7、wget 下载工具
参数介绍:
# 只介绍最常用的参数
# 如果提示命令不存在,那么使用 yum install wget -y / apt-get install wget -y 来安装(有一些非常精简的系统可能会没装)
-b :启动后,后台下载
-q :安静模式(不输出任何信息)
-c :断点续传下载文件
-O :指定下载后的文件名(可使用绝对路径目录+文件名)
-P :指定下载后的文件目录(-P只能指定下载目录,并不能指定文件名)
-t :设置重试次数(0代表无限)
-T :设置超时时间(单位:秒)
-N :只获取比本地新的文件(新的覆盖旧的)
-4 :仅连接至 IPv4地址
-6 :仅连接至 IPv6地址
--limit-rate=xxxk :限制下载速度(k代表KB/S)
--post-data :通过POST方式发送数据
--no-check-certificate :不验证服务器的SSL证书
# 更多的命令可以用 wget --help 来查看。
---------------------------------------------------------------------------------------------------
使用示例:
# 下载一个文件到当前目录
wget https://yun.doubibackup.com/100MB.bin
# 下载文件到当前目录并重命名为 200MB.bin
wget -O "200MB.bin" https://yun.doubibackup.com/100MB.bin
# 下载文件到 /root目录(-P只能指定下载目录,并不能指定文件名)
wget -P "/root" https://yun.doubibackup.com/100MB.bin
# 下载文件到 /root/doubi目录并重命名为 200MB.bin
wget -O "/root/doubi/200MB.bin" https://yun.doubibackup.com/100MB.bin
# 下载文件完成之前 wget进程结束了,那么可以使用断点续传重新下载中断的文件(前提是下载服务器支持断点续传)
wget -c https://yun.doubibackup.com/100MB.bin
# 通过后台下载文件到 /root/doubi目录并重命名为 200MB.bin
wget -b -O "/root/doubi/200MB.bin" https://yun.doubibackup.com/100MB.bin
# Continuing in background, pid 2333.
# Output will be written to `wget-log'.
# 后台下后,你可以使用以下命令来查看下载进度:
tail -f wget-log
# 有时候一些Linux系统中的SSL证书不完整,会导致下载一些 HTTPS网站文件的时候会验证SSL证书失败,可以这样做
# 不验证服务器SSL证书,下载文件到当前目录并重命名为 200MB.bin
wget --no-check-certificate -O "200MB.bin" https://yun.doubibackup.com/100MB.bin
# 使用wget发送POST请求数据
wget --post-data "user=doubi&passwd=23333" https://xxx.xx/
# 下载文件到当前目录 并仅通过IPv4连接 只获取比本地新的文件,限速 200KB/S
wget --limit-rate=200k -N -4 https://yun.doubibackup.com/100MB.bin
# 下载文件到当前目录 并重试次数为 1,超时时间为 2秒
wget -t1 -T2 https://yun.doubibackup.com/100MB.bin
# 通过 wget来获取服务器的外网IP(-qO- 代表运行完会输出下载的信息,并不会保存到本地文件)
wget -qO- ipinfo.io/ip
# 更多的命令可以用 wget --help 来查看。
8、cd 进入 文件夹
# 你当前在 /root目录中,使用这个命令会进入 /root/bash目录,这是相对路径
cd bash
# 如果你不在 /root目录中的话,就不能用上面的相对路径了,就需要绝对路径
cd /root/bash
—————————————————————————————————————
# 假设你当前在 /root/bash目录中,使用相对路径,你可以用这个命令进入上一级 /root目录, .. 代表相对路径 上级目录
cd ..
# 当然你也可以用绝对路径来进入上一级 /root目录
cd /root
8、cp 复制或重命名 文件/文件夹
# 复制当前目录内的 log.txt文件到 /var目录
cp log.txt /var/log.txt
# 复制当前目录内的 bash文件夹到 /home目录
cp -R bash /home/bash
—————————————————————————————————————
# 复制当前目录内的所有.txt后缀的文件到 /var/log目录
cp *.txt /var/log
# 复制当前目录内的所有以 doubi开头的文件到 /var/log目录
cp doubi* /var/log
# 复制当前目录内的所有以 doubi开头 以.txt后缀结尾的文件到 /var/log目录
cp doubi*.txt /var/log
—————————————————————————————————————
# 假设当前目录是 /root/doubi/log,要把这个目录中的所有.txt后缀的文件复制到上一级目录 /root/doubi,那么这样做
cp *.txt ..
# .. 就是相对路径,代表上一级目录,当然你也可以用绝对路径,这样更不容易出错
cp *.txt /root/doubi
—————————————————————————————————————
# 重命名当前目录内的 log.txt文件为 log2.txt
cp log.txt log2.txt
# 复制当前目录内的 log.txt文件到 /var目录并重命名为 log1.txt
cp log.txt /var/log1.txt
# 复制当前目录内的 bash文件夹到 /home目录并重命名为 bash2
cp -R bash /home/bash2
—————————————————————————————————————
# 复制当前目录内的 log.txt文件到 /var目录,但是 /var 目录中已经存着 log.txt,那么会提示 cp: overwrite `/var/log.txt'? 可以用 -f 强制覆盖
cp -f log /var/log.txt
# 大家可能会发现,当你使用 cp -f 强制覆盖的时候,依然会询问你是否覆盖,这是因为 CP 为了避免你手误,默认加上了 -i 参数(该参数代表每次覆盖必须询问)。
# 所以想要避免 CP 默认的 -i 参数,只需要在 CP 命令前面加上斜杠即可 “/”
/cp -f log /var/log.txt
# 复制当前目录内的 log.txt log1.txt log2.txt文件和 log233目录到 /home/log目录中
cp -R log.txt log1.txt log2.txt log233 /home/log
# 更多的命令可以用 cp --help 查看。
9、VI、VIM 编辑文件内容
# 打开当前目录下的 log.txt文件,如果没有那么会新建 log.txt文件(安装vim后,使用 vi和 vim打开文件没区别)
vi log.txt
vim log.txt
# 在命令行模式下,直接输入以下 符号和字母(区分大小写)
## 进入编辑模式(插入模式,按 Esc键 即可返回命令行模式)
i
## 删除光标当前所在的一行
dd
## 删除文件内所有内容
dddG
## 复制光标当前所在的一行
yy
## 粘贴刚才复制的一行内容
p
## 撤销上个操作(误操作可以用这个恢复)
u
## 保存当前文件( : 是英文的冒号)
:w
## 另存当前文件内容为 log2.txt
:w log2.txt
## 退出当前文件
:q
## 不保存 并强制退出当前文件
:q!
## 保存并退出当前文件
:wq
# 更多的命令可以用 vi --help / vim --help 来查看。
10、cat 查看文件内容
假设 log.txt文件的内容为:
doubi233
doubi
doubi666
doubi2366
doubi8888
查看文件:
# 查看 log.txt文件的所有内容
cat log.txt
# 输出示例如下
doubi233
doubi
doubi666
doubi2366
doubi8888
# 查看 log.txt文件的所有内容,并对所有行编号
cat -n log.txt
# 输出示例如下:
1 doubi233
2 doubi
3
4
5 doubi666
6
7 doubi2366
8 doubi8888
# 查看 log.txt文件的所有内容,并对非空行编号
cat -b log.txt
# 输出示例如下:
1 doubi233
2 doubi
3 doubi666
4 doubi2366
5 doubi8888
# 查看 log.txt文件的所有内容,并对非空行编号,且不输出多行空行
cat -bs log.txt
# 输出示例如下:
1 doubi233
2 doubi
3 doubi666
4 doubi2366
5 doubi8888
清空文件:
# 清空当前目录中的 log.txt 文件
cat /dev/null > log.txt
# 清空 /var目录中的 log.txt 文件
cat /dev/null > /var/log.txt
写入文件:
# 写入文本到当前目录中的 log.txt文件中(加入文本到文件内容最后)
cat >> log.txt <<-EOF
doubi
doubi233
doubi666
EOF
# 清空文件并写入文本到 /var目录中的 log.txt文件中(先清空后写入)
cat > /var/log.txt <<-EOF
doubi
doubi233
doubi666
EOF
# 更多的命令可以用 cat --help 来查看。
11、du 查看 文件/文件夹 占用磁盘空间的大小
参数介绍:
-h :以人类易读的方式显示
-a :显示 目录占用的磁盘空间大小,并显示其下目录和文件占用磁盘空间的大小
-s :显示 目录占用的磁盘空间大小,但不显示其下子目录和文件占用的磁盘空间大小
-c :显示几个目录或文件占用的磁盘空间大小,还要统计它们的总和
--apparent-size:显示目录或文件自身的大小
-l :统计硬链接占用磁盘空间的大小
-L :统计符号链接所指向的文件占用的磁盘空间大小
# 待写...
# 更多的命令可以用 du --help 来查看。
---------------------------------------------------------------------------------------------------
使用示例:
# 假设当前位于 /root 目录下,则显示 /root 文件夹的大小,但不显示其子目录和文件的大小
du -sh
# 假设当前位于 /root 目录下,则显示 /root 文件夹的大小,并显示其子目录和文件的大小
du -ah
# 假设当前位于 /root 目录下,则显示 /root 文件夹下的所有文件夹的大小及其总和
du -lh --max-depth=1
# 更多的命令可以用 du --help 来查看。
12、mv 移动或重命名 文件/文件夹
# 移动当前目录内的 log.txt文件到 /var目录
mv log.txt /var/log.txt
# 移动当前目录内的 bash文件夹到 /home目录
mv bash /home/bash
—————————————————————————————————————
# 重命名当前目录内的 log.txt文件为 log2.txt
mv log.txt log2.txt
# 复制当前目录内的 log.txt文件到 /var目录并重命名为 log1.txt
mv log.txt /var/log1.txt
# 复制当前目录内的 bash文件夹到 /home目录并重命名为 bash2
mv bash /home/bash2
# 更多的命令可以用 mv --help 查看。
13、rm 删除 文件/文件夹
# 删除当前目录下的 log.txt文件
rm log.txt
# 删除当前目录下所有.txt后缀的文件
rm *.txt
# 使用 rm 命令删除时,会提示你是否确定删除,输入 y 即删除,输入 n 则取消
# rm: remove regular file `log.txt'? y
—————————————————————————————————————
# 删除当前目录下所有.txt后缀的文件
rm *.txt
# 删除当前目录下所有以 doubi开头的文件
rm doubi*
# 删除当前目录下所有以 doubi开头 以.txt后缀结尾的文件
rm doubi*.txt
—————————————————————————————————————
# 当你用 rm 删除目录的时候会发现提示这不是一个文件
# rm bash
# rm: cannot remove `bash': Is a directory
# 可以加上 -r 来归递删除目录及其目录下的内容
rm -r bash
—————————————————————————————————————
# 因为为了避免手误删除错误,所以 rm默认是加上了 -i 的参数,也就是每一次删除文件/目录都会提示,如果觉得烦可以用 -rf 参数
rm -rf bash
# rm -rf 这个命令请慎重使用,而且千万不要使用 rm -rf / 或者 rm -rf /* 之类的命令(系统自杀),可能会让你系统爆炸,所以使用请慎重!
# 更多的命令可以用 rm --help 查看。
14、ls 显示目录中文件
# 显示当前目录下的所有文件
ls -a
—————————————————————————————————————
# 命令后面加上 绝对路径/相对路径 就会显示指定文件夹内的所有文件
ls -a bash/log
# 相对路径,当前目录是 /root ,欲查看的目录是 /root/bash/log
ls -a /root/bash/log
# 绝对路径, 当前目录是 /root ,欲查看的目录是 /root/bash/log
# 更多的命令可以用 ls --help 来查看。