关于 Linux 你需要了解的 x 个基本命令
Anakin Lv1

使用 Linux 绕不开命令行,而记忆命令就像背单词,是绕不过的基本功。

本文的目的是精挑细选,保留常见命令中的一个最小命令集,只提供其中使用频率最高的用法,原则是如无必要,勿增实体,在足够应对日常工作的前提下,尽可能地减小记忆负担。

例如,删除一个目录,可以使用 rm -rf,也可以使用 rmdir,后者在这种情况下就是多余的。

你可以通过两种方法阅读本篇文章:

  • 作为教材:按照顺序从头往下逐个学习,或者按照场景分类进行学习。
  • 作为手册:使用 Ctrl+F 搜索需要查询的命令。

由于工作原因,笔者暂时无法一次性完成整篇文章,但会坚持至少一天更新一个命令,请大家监督 :-)

如果你对于命令的选取有疑问或有更好的见解,请在文章末尾留言。

查询与帮助命令

man

man 是 manual 的简称,当用户需要查看某个命令的参数时,只需要执行 man 即可获取相关资料(当然你也可以通过 man man 来查看 man 命令的用法)。

man 手册可分为以下 9 种类型:

  1. 标准用户命令(Executable programs or shell commands)
  2. 系统调用(System Calls)
  3. 库调用(Library Calls)
  4. 特殊文件访问入口(Special files)
  5. 文件格式约定(File formats and conventions)
  6. 游戏(Games)
  7. 杂项(Miscellaneous)
  8. 系统管理命令(System administration commands)
  9. 内核相关文件(Kernel routines)

举例说明,read 既是系统调用,又是 bash 命令,查看 man 手册的时候需要作区分:

1
2
3
$ man 1 read    # 查看作为命令的read
$ man 2 read # 查看作为系统调用的read
$ man 3 read # 查看作为库调用的read

如果不确定应该打开哪一类 man 手册,可以先通过 whatis 命令查询关键字:

1
$ whatis read

man 手册通常包括以下章节:

  • NAME:命令名称和一句话简要描述
  • SYNOPSIS:列出命令的所有可用选项
  • EXAMPLES:常见用法举例
  • DESCRIPTION:概念介绍
  • OPTIONS:对命令参数的详细说明
  • EXIT STATUS:返回状态码说明
  • ENVIRONMENT:涉及的环境变量
  • FILES:相关文件(通常是配置文件)
  • AUTHOR:作者署名
  • SEE ALSO:更多参考资料

下面是 man 手册的使用方法:

  • 翻页
    • 向后翻一行:Enter(回车)
    • 向前翻一行:k
    • 向后翻一页:space(空格)
    • 向前翻一页:b
  • 查找
    • 向后搜索关键词:/KEYWORD
    • 向前搜索关键词:?KEYWORD
    • 跳转到下个关键词:n
    • 跳转到上个关键词:N
  • 退出:q

info

help

内置命令

echo

rpm

yum / dnf

dpkg

dpkg 是 Debian 类 Linux 发行版的包管理程序,常见用法包括:

1
2
3
4
5
6
7
$ dpkg -i [.deb package name]    # 安装软件包
$ dpkg -c [.deb package name] # 列出一个未安装的软件包的所有文件
$ dpkg -l [pacakge name] # 查询一个软件包是否安装
$ dpkg -L [package name] # 列出一个已安装的软件包的所有文件
$ dpkg -s [package name] # 查询一个软件包的详细信息
$ dpkg -r [package name] # 删除一个软件包,并保留配置目录
$ dpkg -P [package name] # 删除一个软件包,但不保留配置目录

apt-get

alias

unalias

time

date

export

关机相关命令

shutdown

halt

poweroff

exit

文件和目录操作命令

ls

cd

cp

find

mkdir

mv

pwd

rename

rm

touch

ln

ln 命令的功能是为文件在另一个位置建立链接,当我们需要在不同目录用到相同的文件时,只要在其中一个目录下存储该文件,然后在其他目录建立对它的链接,从而减少了重复的空间占用。

tree

basename

dirname

chattr

lsattr

file

md5sum

查看文件和内容处理命令

cat

more

less

tail

wc

dos2unix

vimdiff

grep

awk

vi / vim

压缩归档命令

tar

unzip

zip

系统状态显示命令

uname

hostname

dmesg

stat

du

df

top

free

文件搜索命令

which

find

whereis

locate

用户管理命令

useradd

userdel

usermod

groupadd

passwd

chage

id

su

最简单的身份切换命令,最常见的用法如下:

1
2
3
$ su - [username]    # 切换到username指定的用户,需要输入新用户的密码
$ su - # 默认切换到root用户,需要输入root用户的密码
$ su [username] # 切换到username指定的用户,区别是环境变量和原来保持一致,并未更新

要完整地切换到新用户的环境,必须使用 su - usernamesu -l username,才会连同 PATH、USER、MAIL 等变量都转成新用户的环境。

使用 root 切换成其他用户时,不需要输入新用户的密码。

sudo

whoami

who

w

last

lastlog

users

finger

权限管理命令

chmod

chown

chgrp

umask

网络操作命令

telnet

ssh

scp

wget

ping

route

ifconfig

ifup

ifdown

netstat

ss

磁盘与文件系统命令

mount

umount

fsck

dd

fdisk

性能监控命令

chkconfig

vmstat

mpstat

进程管理命令

kill

killall

ps

pstree

systemctl

  • Post title:关于 Linux 你需要了解的 x 个基本命令
  • Post author:Anakin
  • Create time:2020-11-17 00:15:48
  • Post link:https://nettingsisyphus.tech/2020/11/17/linux-basic-commands/
  • Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.