本文介绍几个 Linux 常用的命令,帮助大家快速上手 Linux 操作系统。在这里先说明一下,切换到 Linux 平台后,我们会发现和 Windows 是有很大的差别的,很多工作是需要使用命令行工具来完成的。事实也是,使用命令行工作的效率会比用鼠标去界面上点来的快一点,当然这也不是绝对的。我说这个的目的是想表达多用 Linux 命令行工具,这样对我们学习 Linux 系统是有非常好的帮助的。
1、切换工作路径
参考:Linux 切换工作目录
2、文本编辑命令
- vim
vim 是基于 vi 做了许多人性化的修改后得到的产物,可以说是 Linux 上最主要的文本编辑软件的,它和我们平时使用的图形界面的文本编辑器有着很大的区别。由于 vim 是个非常复杂的命令,而且又很多书专门讲怎么使用 vim。所以我就不过多的介绍,只讲几个基本的用法。但是这里我强烈推荐大家购买下面这本书籍,它是我看过的 vim 使用讲得最好的书籍了,没有之一。如果不想看我废话,迫不及待想看这本书的,就跳过我下面这段讲 vim 基本用法的段落,直接找到购买链接购买吧。
- vim 基本用法:
- vim 有四个模式,正常模式、命令模式、插入模式、可视模式,基本操作常用正常模式和编辑模式。vim + 文件名,打开时就处于正常模式,在正常模式按 / 会进入命令模式,正常模式按 i 进入插入模式,还有其他进入插入模式的按键,比如 a、o 等,只是进入的方式不同。具体就不细说了,不然篇幅太长了。
- 打开文件:vim + 文件名
- 保存文件:正常模式下,按 :w ,注意是英文状态下的冒号 + w,w 表示写入 的意思。
- 关闭不保存:先按 esc 进入正常模式,再按 :q! ,注意,这里是英文状态下的冒号+q+!,q 表示退出,! 表示强制退出。
- 保存并关闭::wq 。
好了,我就介绍这么多,下面给大家上我推荐的书籍的链接吧。
- gedit
gedit 是 Linux 下默认的图形界面文本编辑软件,和 Windows 上的记事本差不多。我们可以直接在已安装软件列表使用鼠标单击打开,打开后就是大家熟悉的图像界面,开始愉快的编辑文本吧。
还有一种打开 gedit 的方式是在命令行终端直接输入 gedit & 打开,这里解释一下 gedit 后面的 & 符号,其实不输入也是可以打开 gedit 的,只是加上 & 符号后,gedit 就会脱离终端打开,具体现象大家试一下就一目了然了。Linux 下脱离终端运行命令可以在命令行后面加 & 符号,这是约定,也叫后台运行。
3、系统设置
- passwd
passwd 命令其实是 password 的简写,意思很明确,和密码相关,它是用来更改用户密码的。下面介绍它最常用的方式。
a、直接输入 passwd 回车,更改当前用户的密码,会要求先输入当前的密码,然后输入两次新的密码进行更改。
b、passwd + 用户名,更改某个用户的密码。
- useradd
useradd 命令用于给操作系统新建一个用户,它也有很多的参数,我这里先介绍我们常用的命令格式:useradd -d /home/user_name -m user_name,使用这条命令,我们就创建了一个新用户:user_name,并且给它指定了家目录的路径是 /home/user_name。
下面我具体说下它常用的参数的意思:
- -d:指定账号的主目录路径,其实创建用户的时候,主目录(也就是家目录)一般新建的用户家目录下会有默认的文件夹和文件,这其实是在创建用户的时候从 /etc/skel 目录下拷贝过来的。下图是 /etc/skel 目录下的内容:
![a63f31d774e70222db29918086aa7586.jpeg](https://i-blog.csdnimg.cn/blog_migrate/603ef8ff955a54784fe91cd8e971f5d7.jpeg)
- -m:这个参数的作用是指明在创建新用户的时候为其创建自己的家目录。
- -e:可以指定一个 YYYY_MM_DD 格式的日期(2025_06_24),表示这个时间点后账号就过期了,就不能用了。
- -g:可以给新建的用户指定一个存在的用户组,对用户组不明白的可以参考:Linux 一切皆文件
- chown
chown 命令用于改变文件的属主,就是说这个文件属于谁,我们可以使用 chown 命令指定,一般文件是哪个用户创建的它的属主就是这个用户。
![e6ed0ecd4fb70c15998959a5144addbd.jpeg](https://i-blog.csdnimg.cn/blog_migrate/768fdfe75007cbe3134fb8190447be46.jpeg)
如上图,我们可以看到,我使用 touch test.txt 命令创建了一个新的文件 test.txt,这时我再使用 ls -la 查看文件的详细信息,我们就能看到 test.txt 的属主和属组都是 eg,对用户组不明白的请先阅读:
下面我们就来看看 chown 的具体作用吧
![07b248d59193e37081232798f4b8bade.jpeg](https://i-blog.csdnimg.cn/blog_migrate/7039b03bf54a6411afddc90255d4932f.jpeg)
从上图可以看到,我使用 chown root test.txt 想把 test.txt 文件的属主改成 root 用户的时候,操作系统给我发出了抱怨,说我没有权限操作,然后我在命令前加了 sudo 就成功了,在命令前加 sudo 的意思是使用 root 用户权限(也就是超级用户权限)去操作。其实我们在改文件或者文件夹权限的时候是都需要 root 权限才能修改的。
不知你发现没有,上图中还有一条命令是:sudo chown root:root test.txt,对比一下和之前命令的区别,很容易发现这条命令将属主和属组都改了,所以,当我们要同时改变属主和属组的时候,这样的命令形式不失为一种好的选择。
- chmod
chmod 命令是改变文件或者文件夹权限的命令,对 Linux 下的权限问题不了解的朋友,同样请先阅读:Linux 一切皆文件
![e2e84997237c24d075822f8bd5c24811.jpeg](https://i-blog.csdnimg.cn/blog_migrate/bf44c17caa063bc145d20d9d005232f9.jpeg)
在上图中,我使用 sudo chmod 755 test.txt 命令将文件 test.txt 的权限改成了 755,也就是:-rwxr-xr-x,文件的属主拥有 rwx 可读可写可执行权限,文件的属组内用户拥有 r-x 可读不可写可执行权限,文件的其他组用户拥有 r-x 可读不可写可执行权限。
chmod 的使用就是这么简单,关键是要明白类似 755 这样的数字代表什么含义,这个一定要学明白,不然后面相关的问题就懵了。权限位是使用三位二进制表示的,第一位表示 r 读权限,第二位表示 w 写权限,第三位表示 x 执行全新啊。三位二进制中,能表示的数是 0 到 7,如果这个都不清楚,那请先自行学学二进制的知识。那么 755 用三位二进制表示是什么样的呢?如下:
111 101 101,结合下表,上面解释 755 代表什么含义的话你一定能看明白了,如果看不明白就多看几遍。
![52f301d7b0ba06afd11970cbb1a249e1.jpeg](https://i-blog.csdnimg.cn/blog_migrate/c69c85eb240e085a6ea6872aecf25cc1.jpeg)
- chgrp
chgrp 命令是改变属组的,其实在 chown 的时候,我们使用在属主后跟冒号属组的方式(sudo chown root:root test.txt)也可以改变属组,这里就不多介绍了,看下图就明白了。
![bfb59567998426dfc73bf0cb98961b7f.jpeg](https://i-blog.csdnimg.cn/blog_migrate/018e5c8073dfe77a911f8d7ea59ec7cf.jpeg)
4、查找、帮助信息
- grep 和 |
grep 命令是 Linux 上用来根据关键字搜索信息的命令,搭配正则表达式,可以快速找到自己想要的内容。由于设计正则表达式,要用好 grep,还需要懂正则表达式,但是这个一点也不影响我们使用它提供的基本功能,如果想更好的使用 grep 命令,我推荐学习极客时间的正则表达式课程,长按下图识别图中二维码即可购买学习。
![5fbcde97bf9b6fc6e6c9a9562e71be98.jpeg](https://i-blog.csdnimg.cn/blog_migrate/d45d547bb204897b1d9c39088b0b2a85.png)
下面我们来先看几个 grep 命令常用的用法吧。
- grep “这里替换成你要精确查找的字符串” 这里是你要查找的文件名
![9c1d04656662316a145a6a1ddd6e3c4a.jpeg](https://i-blog.csdnimg.cn/blog_migrate/a41467cd7908e76c2ebc716da1008508.jpeg)
- grep -i “这里替换成你要精确查找的字符串” 这里是你要查找的文件名
加上 -i 参数后,我们的搜索就可以不区分大小写了。
![d3e3d21ba41f7a651edb3749049d5812.jpeg](https://i-blog.csdnimg.cn/blog_migrate/39a12acb18b1be77fa5a32cbc63d2949.jpeg)
从上图我们可以看出,加上 -i 参数后,我把要搜索的字符串改成了 "coUNt",故意大写了两个字母,但是还是能和不加 -i 参数一样,匹配到小写的 “count”。
- grep -RI "字符串"
-R 参数是递归查找的意思,-I 是忽略非文本文件,比如二进制可执行文件就会被忽略掉。
![079987520a0d2f2eba37e9e2af7a2770.jpeg](https://i-blog.csdnimg.cn/blog_migrate/0caa479aea16490d1a18a42bca2d223e.jpeg)
可以看出,这下我们没有指定在哪个文件中搜索,grep 就会将当前目录下所有包含关键字符串的文件都找出来。
其他的和正则表达式相关的高级用法在这里就先不介绍了,最后再介绍一个常用的。
- grep "字符串"
这种用法非常的简单,直接 grep 加字符串即可,但是它也会搜索非文本文件,所以像可执行的二进制文件也会被搜索。
| 称为管道符,它可以结合很多命令一起使用,这里就介绍结合 grep 的应用。
我们把其他的命令输出当做 grep 命令的输入,可以找到其他命令输出中我们感兴趣的内容,比如我们使用 cat 命令可以查看一个文本文件的内容,它直接将文本文件的内容直接全部打印在终端上,如果我们使用管道符 | 将 cat 输出的内容传递给 grep 命令,那就不会再在终端打印了,格式如下:
- cat test.txt | grep "字符串"
我们可以使用这样的格式,实现上面讲的 grep 第一种用法,如下图:
![ce8ea734d9f09290e8b3c9ce80bef05c.jpeg](https://i-blog.csdnimg.cn/blog_migrate/f8ce935aca845c1a6a642b3616565f08.jpeg)
- more 和 less
这两个命令是用来查看文本文件的内容的,快捷键和 vim 的正常模式一样,vim 的快捷键由于太多,已经有专门讲 vim 的书籍,不懂的还是去看这本书吧:
使用方法很简单,直接在 more 或者 less 命令后面空格跟文本文件内容即可,需要注意的是:more 命令智能下翻,不能上翻,要上翻请使用 less 命令。
- man
Linux 下还有一句名言:有问题就找男人。这里的男人就是指 man 命令,man 命令在 Linux 下是用来查看命令和系统调用帮助文档的,用法很简单,直接 man 后面空格跟要看帮助文档的命令或者系统调用即可,man 命令展示帮助信息的时候默认使用 less 展示,所以一种等效的使用方法是:man 命令或者系统调用 | less,但是后面的 | less 是完全没有必要的。
5、安装软件
- apt
先来看看关于 apt 来自于维基百科的介绍。
维基百科介绍开始~
apt 是高级打包工具(英语:Advanced Packaging Tools,缩写为 APT)是 Debian 及其派生的 Linux 软件包管理器。APT 可以自动下载,配置,安装二进制或者源代码格式的软件包,因此简化了 Unix 系统上管理软件的过程。APT 最早被设计成 dpkg 的前端,用来处理 deb 格式的软件包。现在经过 APT-RPM 组织修改,APT 已经可以安装在支持 RPM 的系统管理 RPM 包。
APT由以下的几个主要的命令构成,在Debian系统中,APT建构于dpkg之上:
- apt-get
- apt-cache
- apt-file
再来看几个和 apt 相关的概念吧:
- 安装源:APT 的软件安装来源在 Debian 安装的时候即可进行初始设置,除了 Debian 官方的网络安装来源之外,也可以使用 Debian 的安装光盘,甚至可以从非官方的安装来源中下载非官方的软件。APT 同时也可以从一些安装来源中下载源代码软件,并且自行编译、安装。
- 依赖关系处理:APT 会从每一个安装源下载一个软件包的列表。这个列表中有这个安装源所包含的可用软件包的信息。在可能的情况下,APT 会安装最新的软件包,被安装的软件包所依赖的其他软件包也会被安装,建议安装的软件包则会在屏幕中显示但是不会被安装。不过在有一些情况下 APT 由于依赖关系不能安装软件包,例如:这个软件包和系统中的其他软件包冲突,或者这个软件包依赖的软件包在任何安装源中均不存在或没有要求的版本。在这种情况下,APT 会返回错误信息并且中止,用户需要自行解决依赖问题。
- 软件包更新方式:Debian 系统的一大特色即为“永不停机”,事实上,APT 达到了这一点。在软件被升级的时候,它仍然可以继续服务。APT 可以智能地从安装来源下载最新版本的软件并且安装,而无须在安装后重启电脑(除了更新 Linux 内核之外)。所有的配置都可以得到保留,升级软件不再是一个棘手的问题。
- 发行版升级:APT 最使人称道的特点在于可以从一个 Debian 发行版升级到新的 Debian 发行版,例如从 woody 升级到 sarge。APT 可以升级绝大部分满足依赖关系的软件,但是也可能要删除,或添加新的软件以满足依赖关系。
维基百科介绍结束~
好了,看完维基百科的介绍,我相信你一定对 apt 有一点点了解了,那它到底该怎么用呢?我们一起来看几个例子。
- 搜索需要的软件包
- apt search "关键字",或者 apt-cache search "关键字"
- 使用用上面这两个命令可以搜索和关键字相关的软件包,这在我们不知道要安装的软件包的具体名字的时候非常有用,下图展示了我们需要安装 golang 语言 google-cloud 相关的开发包时,不知道要安装哪一个软件包,使用这两个命令一搜索,很明显就能看出来了。
![dfa8bd6fc404f3ac2c880164cdc84003.jpeg](https://i-blog.csdnimg.cn/blog_migrate/28bbc2481e86459239aa3be4573ac95e.jpeg)
从上图看,你觉得是 apt search 好还是 apt-cache search 好呢?
- 安装软件包
- 通过第一步的搜索,我们已经知道了该怎么找到自己需要安装的软件包的真实名字了,现在就来看看具体的安装命令吧。
- apt install 包命 或者 apt-get install 包名,例如:sudo apt install golang-google-cloud-dev,前面加 sudo 是使用超级用户的权限执行,安装软件包都需要超级用户的权限,如果你登录的就是 root 用户,那就不需要加 sudo 了。
- 卸载软件
- apt remove --purge 包名
- 当然把 apt 换成 apt-get 也是可以的,--purge 是可选的,表示应该完整的清楚软件包。
- apt remove --purge 包名
- 升级
- 只要软件包安装了,后续只需要输入 sudo apt update;sudo apt upgrade 即可对所有已经安装的软件包进行升级。
- 软件源
- 对于 apt 安装的软件,它其实是存放在远端的仓库里面的,我们需要为 apt 配置一个网络环境相对于我们最好的源,配置方法很简单,直接编辑 /etc/apt/sources.list 即可。
- 国内的源我列几个好用的,清华大学,阿里云,华为云。配置方法参考:Linux 配置 apt 软件源
- yum
yum RPM 软件包的管理软件,由于我只熟悉 debian 系列,所以这里就不卖弄了,大家感兴趣可以自行查阅资料学习。 - dpkg
dpkg 就理解成 apt 的底层实现吧,debian 系的软件都是 .deb 结尾的,这就是 dpkg 格式的软件包,我们可以使用 dpkg -i 来安装软件,使用 dpkg -r 来卸载软件,但是 dpkg 它不会自动解决软件包的依赖,比如我们安装的软件包需要依赖另外一个软件包的话,dpkg 是不能正常工作的,所以还是建议使用 apt 进行软件的安装和卸载。但是有的时候我们需要安装的 deb 软件包 apt 并不一定能找到,所以就不得不使用 dpkg 管理了。我们可以手动一步步解决依赖,也可以使用下面要讲的 gdebi 包管理器。
- gdebi
相比于 apt,gdebi 提供了图形界面的安装方式,只需要输入 gdebi-gtk 就可以打开图形界面的安装器,但是 gdebi 没有软件仓库,安装软件需要下载 .deb 格式的包。当然如果不喜欢图形界面的话,gdebi 也提供了命令行的方式安装软件,只需要输入 gdebi 空格 .deb 格式的软件包的路径即可。gdebi 相对于 dpkg 的好处就是有图形界面,并且会自动安装依赖。
- 软件中心
- 桌面版本的 Linux 操作系统一般会有一个图形界面的软件中心,也就是一个软件管家,打开可以在里面安装一些软件。
6、下载
- wget
wget 命令用来下载网络上具体路径上的文件资源、网页资源等,直接上例子吧
- 下载一个文件
- wget "http://mirrors.nju.edu.cn/gnu/libc/glibc-2.31.tar.gz" 这里建议用双引号引住要下载的链接。
- wget -o file_name "http://mirrors.nju.edu.cn/gnu/libc/glibc-2.31.tar.gz"
- 下载文件并保存为新的名字 file_name
- wget -c "http://mirrors.nju.edu.cn/gnu/libc/glibc-2.31.tar.gz"
- 如果下载中断,可以使用 -c 参数继续下载
7、压缩和解压缩
- tar 命令是 Linux 上常用的压缩和解压缩命里,下面直接看示例:
- tar -cvf archive.tar file1 file2 ...
- -c:创建归档
- -v:详细诊断输出
- -f:此参数后面必须是归档文件名
- tar -tvf arch.tar:查看包内容
- tar -xvf file.tar : 解压缩包
- tar -xvf file.tar -p :解压缩包的同时保留原始权限
- tar -ztvf file.tar.gz
- z 自动调用 gzip
- .tgz == .tar.gz
- 另一个压缩程序 bzip2(.bz2)
- 比 gzip 压缩速度慢,文本压缩比高点(发布源码),解压 bunzip2
- tar -jcvf file.tar.bz2 file1 file2 ......
- tar -cvf archive.tar file1 file2 ...
8、运行软件
- ./ 读作点斜杠,后面紧跟可执行的二进制文件就可以运行一个可执行程序。
- 如果软件是安装到系统中的,而且安装目录包含在环境变量 PATH 中,那么直接在命令行输入软件的名字即可运行。
- 如果是图形界面的软件,可以点击图标运行
本文完~