Linux 常用命令简单介绍


##Linux 常用命令简单介绍
与 Windows 的直观图形界面相比,Linux 的命令行界面显得有些抽象,尤其是对于初涉 Linux 的朋友,每当遇到新的 Linux 命令,我们通常会花费时间在搜索引擎上查找相关的使用说明。这样的过程既耗时又繁琐。因此,我整理了一些 Linux 的基础命令,作为我学习 Linux 过程中的一个备忘录。同时也希望能够为那些想要深入探索 Linux 世界的读者提供一些帮助。

# apt-get 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 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 查看。
# mkdir 新建文件夹
# 在当前文件夹新建一个 bash 文件夹

mkdir bash

# 更多的命令可以用 mkdir --help 查看。
cd 进入文件夹
###### 一般结合ll(小写L)命令使用(全称:ls -l),输出当前目录下的所有目录,然后使用cd命令跳转到某个目录 ###### 例如当前为起始/root目录中 ,跳转到 /root/data ```cd data```
# 也可以多次跳转,输入目录的绝对路径(因此也可用作返回目录)

cd /root/data/user/models/

# 值得注意的是,在 Windows 中的 CMD 使用 cd 命令时,切换不同磁盘的目录时,需要额外增加 /d

cd /d D:\Program Files\PycharmProjects\experiment

# 返回上级目录

cd ..

cp 复制或重命名文件/文件夹
###### 复制当前目录内的 log.txt文件到 /var目录 ```cp log.txt /var/log.txt```
# 复制当前目录内的 bash 文件夹到 /home 目录

cp -R bash /home/bash

# 复制当前目录内的所有.txt 后缀的文件到 /var/log 目录

cp *.txt /var/log

# 复制当前目录内的所有以 SY1A-5UVA-4Q3N 开头的文件到 /var/log 目录

cp SY1A-5UVA-4Q3N* /var/log

# 复制当前目录内的所有以 SY1A-5UVA-4Q3N 开头 以.txt 后缀结尾的文件到 /var/log 目录

cp SY1A-5UVA-4Q3N*.txt /var/log

# 假设当前目录是 /root/user/log,要把这个目录中的所有.txt 后缀的文件复制到上一级目录 /root/user,那么这样做

cp *.txt ..

# … 就是相对路径,代表上一级目录,当然你也可以用绝对路径,这样更不容易出错

cp *.txt /root/user

# 重命名当前目录内的 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 移动或重命名文件/文件夹
###### 移动当前目录内的 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 删除文件/文件夹
###### 删除当前目录下的 log.txt文件 ```rm log.txt```
# 删除当前目录下所有.txt 后缀的文件

rm *.txt

# 使用 rm 命令删除时,会提示你是否确定删除,输入 y 即删除,输入 n 则取消
# rm: remove regular file `log.txt’? y
# 删除当前目录下所有.txt 后缀的文件

rm *.txt

# 删除当前目录下所有以 SY1A-5UVA-4Q3N 开头的文件

rm SY1A-5UVA-4Q3N*

# 删除当前目录下所有以 SY1A-5UVA-4Q3N 开头 以.txt 后缀结尾的文件

rm SY1A-5UVA-4Q3N*.txt

# 当你用 rm 删除目录的时候会发现提示这不是一个文件 rm: cannot remove bash’: Is a directory`

rm bash

# 可以加上 -r 来归递删除目录及其目录下的内容

rm -r bash

# 因为为了避免手误删除错误,所以 rm 默认是加上了 -i 的参数,也就是每一次删除文件 / 目录都会提示,如果觉得烦可以用 -rf 参数

rm -rf bash

# rm -rf 这个命令请慎重使用,而且千万不要使用 rm -rf / 或者 rm -rf /* 之类的命令 (系统自杀),可能会让你系统爆炸,所以使用请慎重!
# 更多的命令可以用 rm --help 查看。
ls 显示目录中文件(l为小写L)
###### 显示当前目录下的所有文件, -a代表“all”,这个命令会列出目录中的所有文件,包括以点(.)开头的隐藏文件。它不会显示文件的详细信息,只会显示文件名。 ```ls -a```
# 它不仅显示文件名,还显示文件的权限、所有者、大小、最后修改日期等详细信息。

ls -l

# 命令后面加上 绝对路径 / 相对路径 就会显示指定文件夹内的所有文件

ls -a bash/log

# 相对路径,当前目录是 /root ,欲查看的目录是 /root/bash/log

ls -a /root/bash/log

# 绝对路径, 当前目录是 /root ,欲查看的目录是 /root/bash/log
# 更多的命令可以用 ls --help 来查看。
du 查看文件/文件夹占用磁盘空间的大小
参数介绍: -h :以人类易读的方式显示 -a :显示 目录占用的磁盘空间大小,并显示其下目录和文件占用磁盘空间的大小 -s :显示 目录占用的磁盘空间大小,但不显示其下子目录和文件占用的磁盘空间大小 -c :显示几个目录或文件占用的磁盘空间大小,还要统计它们的总和 --apparent-size:显示目录或文件自身的大小 -l :统计硬链接占用磁盘空间的大小 -L :统计符号链接所指向的文件占用的磁盘空间大小
# 假设当前位于 /root 目录下,则显示 /root 文件夹的大小,但不显示其子目录和文件的大小

du -sh

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

du -ah

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

du -lh --max-depth=1

# 更多的命令可以用 du --help 来查看。
cat 查看文件内容
假设 log.txt文件的内容为:

SY1A-5UVA-4Q3N233
SY1A-5UVA-4Q3N

SY1A-5UVA-4Q3N666

SY1A-5UVA-4Q3N2366
SY1A-5UVA-4Q3N8888
查看文件:

# 查看 log.txt 文件的所有内容

cat log.txt

# 输出示例如下

SY1A-5UVA-4Q3N233
SY1A-5UVA-4Q3N

SY1A-5UVA-4Q3N666

SY1A-5UVA-4Q3N2366
SY1A-5UVA-4Q3N8888

# 查看 log.txt 文件的所有内容,并对所有行编号

cat -n log.txt

# 输出示例如下:
 1	SY1A-5UVA-4Q3N233
 2	SY1A-5UVA-4Q3N
 3	
 4	
 5	SY1A-5UVA-4Q3N666
 6	
 7	SY1A-5UVA-4Q3N2366
 8	SY1A-5UVA-4Q3N8888
# 查看 log.txt 文件的所有内容,并对非空行编号

cat -b log.txt

# 输出示例如下:
 1	SY1A-5UVA-4Q3N233
 2	SY1A-5UVA-4Q3N


 3	SY1A-5UVA-4Q3N666

 4	SY1A-5UVA-4Q3N2366
 5	SY1A-5UVA-4Q3N8888
# 查看 log.txt 文件的所有内容,并对非空行编号,且不输出多行空行

cat -bs log.txt

# 输出示例如下:
 1	SY1A-5UVA-4Q3N233
 2	SY1A-5UVA-4Q3N

 3	SY1A-5UVA-4Q3N666

 4	SY1A-5UVA-4Q3N2366
 5	SY1A-5UVA-4Q3N8888

清空文件:

# 清空当前目录中的 log.txt 文件

cat /dev/null > log.txt

# 清空 /var 目录中的 log.txt 文件

cat /dev/null > /var/log.txt
写入文件:

# 写入文本到当前目录中的 log.txt 文件中 (加入文本到文件内容最后)

cat >> log.txt <<-EOF
SY1A-5UVA-4Q3N
SY1A-5UVA-4Q3N233
SY1A-5UVA-4Q3N666
EOF

# 清空文件并写入文本到 /var 目录中的 log.txt 文件中 (先清空后写入)

cat > /var/log.txt <<-EOF
SY1A-5UVA-4Q3N
SY1A-5UVA-4Q3N233
SY1A-5UVA-4Q3N666
EOF

# 更多的命令可以用 cat --help 来查看。
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 下载工具
参数介绍:
# 只介绍最常用的参数
# 如果提示命令不存在,那么使用 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 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 来查看。

文章作者: liuli
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 liuli !
评论
评论
  目录