常见指令与符号¶
本章会介绍部分Linux下的指令与符号。由于本教程主要面向入门者,因而不会过多介绍参数。
常见符号¶
$: 用以表示Shell环境,不需要进行输入。#: 用以表示注释,井号后的内容会被自动忽略。~: 用以代表用户目录,如~/file。*: 通配符,可代指“全部”,如dir1/*指dir1下全部文件、文件夹,dir1/file*.file指dir1文件夹下所有以file开头,.file结尾的文件与文件夹。
常见指令¶
大多数Linux指令都附带了“帮助”文档,一般可以通过在命令后加help,-h或--help等来具体查看。
在Linux中,指令基本遵循以下格式:
command [options] [arguments]
- 指令(Command):通常是一个可执行文件,我要“做什么”
- 选项(Options):用于改变操作行为
- 参数(Arguments):操作对象,可能跟随指令,可能跟随在选项后
有些抽象对吧?没关系,让我们跟着下面的例子来理解吧。
sudo¶
以超级管理员(root)身份运行某指令,后面可以接其他指令。
例如:
sudo apt upgrade以管理员身份更新(Debian)系统软件包。sudo -i进入root用户Shell。(特殊用法)
输入密码
在Linux终端中,输入的密码不会显示,也不会以类似*或·的形式表现出来,这是正常现象,直接输入密码即可。
预装
在大多数发行版中,sudo为预装软件包。若没有找到,您可能需要通过包管理器自行安装。
sudoers
若在使用sudo时,遇到权限不足提示,您需要将当前用户添加至wheel组中,或者编辑/etc/sudoers,找到root ALL=(ALL) ALL,在下方添加用户名 ALL=(ALL) ALL。
cd¶
将Shell的工作目录切换到某目录。
默认情况下,Shell的工作目录为 /home 下的对应用户文件夹,并会在左侧展示(部分Shell可能除外)。
在工作目录下对文件进行操作时,不需要输入绝对路径。比如,我要删除 /home/me/file ,在工作目录为 /home/me 时不需要完整输入,而只需要输入 file即可。
例如:cd /home/me 将工作目录切换到/home/me。
Permission Denied
若尝试切换工作目录时出现权限不足,请进入root用户Shell后切换。
ls¶
列出目录下的文件与文件夹。
例如:
ls列出工作目录下的文件、文件夹。ls /home列出/home目录下的文件与文件夹。
rm¶
删除文件、文件夹。
例如:
rm file删除目录下file文件。rm -r dir删除目录下dir文件夹。(-r指recursive,意为递归删除)
cp¶
复制文件、文件夹,或创建副本。
例如:
cp file dir将目录下file文件复制到dir文件夹。cp file1 file2将file1复制出名为file2的副本。cp dir1 dir2 -r分两种情况:- 若
dir2存在,则dir1会被复制到dir2中。 - 若
dir2不存在,则dir1会复制产生名为dir2的副本。
- 若
mv¶
移动或重命名文件、文件夹。
例如:
mv file dir将目录下file文件移动到dir。mv file1 file2将file1重命名为file2。mv dir1 dir2分两种情况:- 若
dir2存在,则dir1会被移动到dir2中。 - 若
dir2不存在,则dir1会被重命名为dir2。
- 若
mkdir¶
创建文件夹。
例如:mkdir dir 在工作目录下创建名为 dir 的文件夹。
systemctl¶
用于(在基于systemd的发行版中)管理系统服务。
例如:
sudo systemctl start xxx启动某服务sudo systemctl stop xxx终止某服务sudo systemctl enable xxx启用某服务(自启动,不会立即启动)sudo systemctl disable xxx禁用某服务(不再自启动,不会立即终止)
chmod¶
用于更改用户对文件的权限。
777、+x,这些都是什么?
在Linux中,文件权限分为r(读),w(写),x(执行)三类。由于chmod采用二进制表示权限,代表三种权限的数字分别为4,2,1。如果要表示权限的组合,只需要将数字相加即可。
同时,文件权限通常以三位数表示,每一位分别代表拥有者、用户组与其他用户。
例如:777代表所有人都可读取,更改,执行该文件,774代表仅所有者与用户组能够读取,更改,执行,其他用户仅可读取。
例如:
chmod 777 file使得所有人都可读取,更改,执行该文件。chmod -R 777 dir递归目录,使得所有人都可读取,更改,执行该目录下的文件与文件夹。
chmod中间的数字表示权限。
chmod的用法较为复杂,您也可以参考Runoob的教程。
man¶
用于查看部分命令的使用手册
我是否适合阅读man手册?
- 有耐心面对纯英文的文档
- 具备一定的英语阅读能力
- 善于使用搜索引擎
- 您使用的软件提供了对应的man-page
- 您正在使用命令行程序
好像有的命令在别人那里能搜索到,我搜不到,为什么?
不同发行版对man-page的处理略有差异,像alpine linux 这样的发行版将软件包的文档拆分为独立的-doc包。 同时,对于基础软件包,他们可能直接以类似于man-pages (archlinux) 的形式提供。
中文man-page
部分软件包会提供多语言的man-page,您可以关注您所使用的发行版是否将其打包并提供。 例如archlinux提供了man-pages-zh_cn包
man手册(即man-page)在类unix系统中是较为常用的本地手册, 提供绝大多是系统基础命令行软件的使用文档, 甚至编程时需要的api文档。
man命令的调用方式类似于
man [options] [section] page
使用中括号包裹的内容是可选的
其中 [options] 是以-开头的选项, [section]则是不同页面的段, page是您希望查看的页面
例如:
man -k abc用于搜索命令、api文档,以及对应页面存在的不同段man 1 cp或man cp查看命令文档man 3 strcmp查看c语言中strcmp函数的文档
如果您乐意钻研,我们强烈建议您学习基本的英语知识,阅读常用软件的man-page,这是您深入学习linux的一个重要方法
info¶
用于查看部分命令的使用文档,类似于man
不是所有程序都提供info文档,请善用搜索引擎
我是否适合阅读info文档?
- 有耐心面对纯英文的文档
- 具备一定的英语阅读能力
- 善于使用搜索引擎
- 您使用的软件提供了对应的texinfo文件
- 您正在使用命令行程序
例如:
info info: 查看info自己的使用文档info gcc: 查看gcc命令的完整使用文档(gcc的man-page是不完整的,它会在SEE ALSO中指引您阅读info文档)
系统维护工具¶
nano¶
nano(包名nano)是广受赞誉的终端文本编辑器,拥有简单易操作的界面,适合新手用来通过终端编辑系统配置文件。
例如:sudo nano /etc/sudoers指以超级管理员权限,用nano修改/etc/sudoers。
权限
编辑部分配置文件时需要sudo提权。