
很多新手在接触Linux的初期,都会因为习惯了 Windows的可视化操作而不适应 Linux纯命令行的操作,一些基础的 Linux命令都要去百度谷歌查询,这样很浪费时间,所以我就简单整理一些 Linux基础命令提供给新手理解,以后或许还会有进阶篇、高级篇
这篇文章,不仅仅是写给新手学习的,也是写给我学习Linux的,我在写这篇文章的时候,也是在学习和了解这些基础命令,同时留着以后备忘。
包管理器
apt-get Debian/Ubuntu系统包管理器
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 # 在安装软件和卸载的时候,为了避免误操作,都会询问是否继续,每次都要输入 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 是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 # 在安装软件和卸载的时候,为了避免误操作,都会询问是否继续,每次都要输入 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 查看。
文件/文件夹 操作
以下除特殊说明,都以当前目录为 /root
示例。
mkdir 新建 文件夹
# 在当前文件夹新建一个 bash 文件夹,完整的绝对路径就是 /root/bash mkdir bash # 更多的命令可以用 mkdir --help 查看。
cd 进入 文件夹
# 你当前在 /root目录中,使用这个命令会进入 /root/bash目录,这是相对路径 cd bash # 如果你不在 /root目录中的话,就不能用上面的相对路径了,就需要绝对路径 cd /root/bash ————————————————————————————————————— # 假设你当前在 /root/bash目录中,使用相对路径,你可以用这个命令进入上一级 /root目录, .. 代表相对路径 上级目录 cd .. # 当然你也可以用绝对路径来进入上一级 /root目录 cd /root
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 命令,可以参考上面 cp 的使用方法,没什么区别,只是一个是复制,一个是移动,把上面 cp 命令改成 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 # 删除当前目录下所有以 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 -a ————————————————————————————————————— # 命令后面加上 绝对路径/相对路径 就会显示指定文件夹内的所有文件 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 :统计符号链接所指向的文件占用的磁盘空间大小 # 待写... # 更多的命令可以用 du --help 来查看。
使用示例:
# 假设当前位于 /root 目录下,则显示 /root 文件夹的大小,但不显示其子目录和文件的大小 du -sh # 假设当前位于 /root 目录下,则显示 /root 文件夹的大小,并显示其子目录和文件的大小 du -ah # 假设当前位于 /root 目录下,则显示 /root 文件夹下的所有文件夹的大小及其总和 du -lh --max-depth=1 # 更多的命令可以用 du --help 来查看。
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 来查看。
head 查看文件内容(主要用于正查)
参数介绍: