Linux 常用命令简单介绍 (基础)

在接触Linux的初期,都会因为习惯了 Windows的可视化操作而不适应 Linux纯命令行的操作,一些基础的 Linux命令都要去百度谷歌查询,这样很浪费时间,所以就简单整理一些 Linux基础命令,这篇文章,不仅仅是写给新手学习的,也是写给我学习Linux的,同时留着以后备忘。

apt-get Debian/Ubuntu系统包管理器

点击展开 查看 apt-get命令说明
# 命令:
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
 
# 在安装软件和卸载的时候,为了避免误操作,都会询问是否继续,每次都要输入 y 来确定会很麻烦,可以加上 -y 参数
# 安装 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
 
# 更多的命令可以用 apt-get --help 查看。

yum CentOS系统包管理器

点击展开 查看 yum命令说明
# 命令:
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
 
# 在安装软件和卸载的时候,为了避免误操作,都会询问是否继续,每次都要输入 y 来确定会很麻烦,可以加上 -y 参数
# 安装 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
 
# 更多的命令可以用 yum --help 查看。

mkdir 新建 文件夹

点击展开 查看 mkdir命令说明
# 在当前文件夹新建一个 bash 文件夹,完整的绝对路径就是 /root/bash
mkdir bash
 
# 更多的命令可以用 mkdir --help 查看。

cd 进入 文件夹

点击展开 查看 cd命令说明
# 你当前在 /root目录中,使用这个命令会进入 /root/bash目录,这是相对路径
cd bash
# 如果你不在 /root目录中的话,就不能用上面的相对路径了,就需要绝对路径
cd /root/bash
—————————————————————————————————————
# 假设你当前在 /root/bash目录中,使用相对路径,你可以用这个命令进入上一级 /root目录, .. 代表相对路径 上级目录
cd ..
# 当然你也可以用绝对路径来进入上一级 /root目录
cd /root

cp 复制或重命名 文件/文件夹

点击展开 查看 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 查看。

mv 移动或重命名 文件/文件夹

点击展开 查看 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 查看。

rm 删除 文件/文件夹

点击展开 查看 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 查看。

ls 显示目录中文件

点击展开 查看 ls命令说明
# 显示当前目录下的所有文件
ls -a
—————————————————————————————————————
# 命令后面加上 绝对路径/相对路径 就会显示指定文件夹内的所有文件
ls -a bash/log
 
# 相对路径,当前目录是 /root ,欲查看的目录是 /root/bash/log
ls -a /root/bash/log
 
# 绝对路径, 当前目录是 /root ,欲查看的目录是 /root/bash/log
 
# 更多的命令可以用 ls --help 来查看。

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

点击展开 查看 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 来查看。

cat 查看文件内容

点击展开 查看 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 来查看。

VI、VIM 编辑文件内容

点击展开 查看 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 来查看。

wget 下载工具

点击展开 查看 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 来查看。

free 查看内存使用信息

点击展开 查看 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 来查看。

date 查看/设置 系统时间

点击展开 查看 date命令说明
参数介绍:

 -d :以指定的时间格式 显示时间
 -f :显示 DATE FILE文件中的每行时间(我也不懂)
 -r :显示 文件/文件夹 最后修改时间
 -s :设置 系统时间
 -u :显示 UTC时间
 
# 时间格式
 
%% - 显示字符%
%a - 星期几的缩写(Sun..Sat)
%A - 星期几的完整名称(Sunday...Saturday)
%b - 月份的缩写(Jan..Dec)
%B - 月份的完整名称(January..December)
%c - 日期与时间。只输入date指令也会显示同样的结果
%C - 世纪(年份除100后去整) [00-99]
%d - 日期(以01-31来表示)。
%D - 日期(含年月日)。
%e - 一个月的第几天 ( 1..31)
%F - 日期,同%Y-%m-%d
%g - 年份(yy)
%G - 年份(yyyy)
%h - 同%b
%H - 小时(00..23)
%I - 小时(01..12)
%j - 一年的第几天(001..366)
%k - 小时( 0..23)
%l - 小时( 1..12)
%m - 月份(01..12)
%M - 分钟(00..59)
%n - 换行
%N - 纳秒(000000000..999999999)
%p - AM or PM
%P - am or pm
%r - 12小时制时间(hh:mm:ss [AP]M)
%R - 24小时制时间(hh:mm)
%s - 从00:00:00 1970-01-01 UTC开始的秒数
%S - 秒(00..60)
%t - 制表符
%T - 24小时制时间(hh:mm:ss)
%u - 一周的第几天(1..7); 1 表示星期一
%U - 一年的第几周,周日为每周的第一天(00..53)
%V - 一年的第几周,周一为每周的第一天 (01..53)
%w - 一周的第几天 (0..6); 0 代表周日
%W - 一年的第几周,周一为每周的第一天(00..53)
%x - 日期(mm/dd/yy)
%X - 时间(%H:%M:%S)
%y - 年份(00..99)
%Y - 年份 (1970…)
%z - RFC-2822 风格数字格式时区(-0500)
%Z - 时区(e.g., EDT), 无法确定时区则为空
 
# 更多的命令可以用 date --help 来查看。
---------------------------------------------------------------------------------------------------
使用示例:

# 显示 当前系统时间
date
# 输出:Wed Apr 5 12:38:44 CST 2017
 
# 显示当前系统的 UTC时间
date -u
# 输出:Wed Apr 5 04:30:06 UTC 2017
 
# 显示 log.txt 文件的最后修改时间
date -r log.txt
 
# 显示 当前日期的年份
date +%Y
# 输出:2017
 
# 显示 当前日期的月份
date +%m
# 输出:4
 
# 显示 各种格式类型的日期
date +%D
# 输出:04/05/17
 
date +%Y-%m-%d
# 输出:2017-04-05
 
date +%m/%d/%y
# 输出:04/05/17
 
date +%m/%d/%Y
# 输出:04/05/2017
 
# 显示 Unix时间戳
date +%s
# 输出:1491367399
 
# 显示一个完整的时间(年、月、日、小时、分钟、秒钟、周几 时区)
date "+%Y-%m-%d %H:%M:%S %u %Z"
# 输出:2017-04-05 12:12:15 3 CST
 
# 设置 系统时间(年、月、日)
date -s "2017-04-05"
 
# 设置 系统时间(小时、分钟、秒钟)
date -s "10:29:05"
 
# 设置 系统时间(年、月、日、小时、分钟、秒钟)
date -s "2017-04-05 10:29:05"
 
# 更多的命令可以用 date --help 来查看。
---------------------------------------------------------------------------------------------------
修改时区为上海(北京)时区的方法:

/cp -f /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
然后再用 date 查看时间,就会发现时区变为 CST 了。

uname 获取操作系统信息

点击展开 查看 uname命令说明
参数介绍:

-a:显示 全部信息
-m:显示 系统位数
-n:显示 主机名称
-r:显示 操作系统的发行编号
-s:显示 操作系统的名称
-v:显示 操作系统的版本
-p:输出 处理器类型 或"unknown"
-i:输出 硬件平台 或"unknown"
-o:输出 操作系统名称
 
# 更多的命令可以用 uname --help 来查看。
---------------------------------------------------------------------------------------------------
使用示例:

root@mlldxe.cn:~# uname       #在使用 uname 的时候,相当于是使用 uname -s
Linux
 
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 # 系统当前内核(主)
 
root@mlldxe.cn:~# uname -s
Linux
 
root@mlldxe.cn:~# uname -v
#1 SMP Thu Oct 27 16:59:03 MSK 2016
 
root@mlldxe.cn:~# uname -p
unknown
 
root@mlldxe.cn:~# uname -i
unknown
 
root@mlldxe.cn:~# uname -o
GNU/Linux
点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注