文章目录
前言
本文内容为一些超常用命令, 内容不多且十分实用, 这些命令是每一个开发人员必须都熟悉了解的. 以下介绍命令时, 本人连接云服务器使用的终端工具是 xShell, 使用的 Linux 发行版是 Ubuntu 的, 所有发行版的基本常用命令都大同小异, 任何版本都可参考学习.
还不知道什么是Linux? 可以先简单了解一下什么是 Linux >> Linux的前世今生
关注收藏, 开始学习吧🧐
常用命令
Ubuntu 是基于 Linux 系统来发行的, 其基本操作没有什么太大的难度, 和 Linux 不能说有点相似, 只能说是一模一样. 其实就是一个练习和使用 Linux 的过程. 在我们的日常工作中, 最常用的命令也只有十个左右. 我们将这些命令熟练掌握之后, 就足以应对大多数工作场景了.
1. 基本操作
我们首先要了解的是对 Linux 目录的一些基本操作, 包括如何访问目录, 如何显示目录, 如何查看自己当前所在位置. 涉及到以下三个操作.
- ls
- cd
- pwd
ls
ls(list), 列出当前 / 指定目录中, 都有哪些内容(包含的文件和目录), 类似于 Windows 的文件资源管理器.(可视化)
语法: ls [选项] [目录或文件]
功能: 对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息。
常用选项:
-a
列出目录下的所有文件,包括以 . 开头的隐含文件。-d
将目录像文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录-k
以 k 字节的形式表示文件的大小。ls –alk 指定文件-l
列出文件的详细信息。-r
对目录反向排序。-t
以时间排序。-R
列出所有子目录下的文件。(递归)
重点示例:
ls
可以看到我们当前目录下内容并不多. ls 后面也可以跟上一个指定的目录, 列出指定的目录下有哪些内容.
ls /
我们要知道, Linux 上一定会有 / 这个目录. 叫做 “根目录”, 有点类似于 Windows 系统中的 “此电脑”.
也可以看到 xShell 中会针对不同类型的文件, 使用不同的颜色进行区分.
- 白色, 代表普通文件.
- 深蓝色, 代表目录.
- 浅蓝色, 代表链接文件. (可以理解为 Windows 中的快捷方式)
- 红色, 代表压缩包.
而我们在查看目录中, 使用更多的是 ls -l
方式 (也可以写作 ll
)
ls -l
/ ll
可以发现, 在列出目录的全部信息后. 有点像平时使用的 Windows 系统中的信息了.
我们拿一条文件信息出来解释.
drwxr-xr-x
: 代表文件的权限, 哪些用户可读可写可执行. 第一个字母描述了文件类型, - 为普通文件, d 为目录, l 为链接文件.root
: 第一个代表文件的拥有者是谁, 第二个代表的是文件拥有者所在的用户组.4096
: 代表文件的大小.- 后面的信息是指上次修改文件时间.
cd
cd(change list), 可以用来切换目录的位置(相当于 Windows 上双击目录的效果), cd 操作大家务必要熟练掌握, 这样才能在我们的 Linux 系统中来去自如.
语法: cd 目录名
功能: 改变工作目录, 将当前工作目录改变到指定的目录下.
示例:
cd etc/
进入当前目录下的 etc 目录
cd ../
返回上级目录
cd ~
进入用户家目
cd -
返回最近访问目录
扩展知识:
认识 Linux 目录结构
Linux 是一个树形目录结构.
几个特殊的目录:
/
称为根目录.
称为当前目录..
称为当前目录的上级目录
绝对路径 vs 相对路径
形如: /usr/share/tomcat/logs/
以根目录开头的, 称为绝对路径.
形如: ./logs
以 . 或者 … 开头的, 称为相对路径.
使用 tab 键补全
我们敲的所有的 Linux 命令, 都可以使用 Tab
键来尝试补全, 加快效率.
使用 ctrl + c 重新输入
如果命令或者目录敲错了, 可以 Ctrl + c
取消当前的命令. 在 Linux 中, Ctrl + c
不是复制的意思, 复制操作为 Ctrl + Insert
, 粘贴为 Shift + Insert
.
pwd
当我们进行 cd 多次后, 找不到自己在哪了, 就可以使用 pwd 来直接查看我们当前位置的绝对路径.
语法: pwd
功能:显示用户当前所在的目录
2. 对文件的操作
接下来我们讲讲关于 Linux 中如何对文件进行操作, 包括创建文件, 读取文件内容, 显示文件内容, 写文件. 涉及到以下四个操作:
- touch
- cat
- echo
- vim
touch
touch 操作用来创建一个文件.
语法: touch [选项]... 文件...
功能: touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。
举例:
touch test.txt
cat
有了一个文件之后, 我们就可以通过 cat 操作来读取文件内容了.
语法:cat [选项] [文件]
功能: 查看目标文件的内容
常用选项:
- -
n
对输出的所有行编号
举例:
cat test.txt
由于此时我们 test.txt 文件是空的, 所以是没有任何内容的.
echo
echo 操作可以实现一个简单的给文件中写内容的效果.
语法: echo [写的内容] >(覆盖) / >>(拼接) [文件名]
功能: 给文件写一些简单内容, 可拼接, 可覆盖.
举例:
echo hello > test.txt
echo hello >> test.txt
vim
通过上述操作来读写一些简单的文件还好, 但如果读写一些复杂的文件, 内容更长的文件, 显然就不是很方便了, vim 操作就是针对文件进行更加细粒度的编辑(可以理解为 Linux 系统上自带的记事本程序). vim 这个程序的使用方法其实是非常复杂的, 有兴趣学习 vim 编辑的读者可以查阅 vim 使用相关的书籍. 在这里我主要讲讲, vim 的三个基本操作.
- 打开文件
- 编辑文件
- 保存退出
示例:
创建文件 / 打开文件:
vim test.txt
进入插入模式(编辑文件):
vim 打开文件后默认是普通模式. 普通模式下键盘的按键表示一些特殊功能的快捷键. (例如按下 j 并不是输入字母 “j”, 而是表示光标往下移动一行). 需要进入插入模式才能进行文本编辑.
使用 i
键可以进入到插入模式. (左下角提示 --INSERT-- ) 然后就可以像记事本一样正常编辑了.
保存并退出文件:
在插入模式下不能保存退出文件, 需要先回到 普通模式 . 按下 Esc 回到普通模式. 在普通模式下输入 :wq
, 再按下回车, 即可保存并退出文件.
也可以单单使用 :w 执行保存操作, :q 执行退出操作.
关于 Vim 的用法还有很多. 此处不做过多介绍了. 有兴趣的读者可以参考 vimtutor (直接在终端输入vimtutor 即可进入官方教程) 或者 参考其余学习书籍.
3. 对目录的操作
前面讲了对文件的一些操作, 这里再谈一谈对目录的一些操作, 包括创建目录, 删除目录.
- mkdir
- rm
mkdir
mkdir(make directory), 可以用来创建目录.
语法:mkdir [选项] [目录名]
功能:在当前目录下创建一个目录.
常用选项:
-p, --parents
可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多级目录
举例:
mkdir test111
mkdir -p test222/111/222/333
rm
如果我们想删除一个文件或者目录, 就需要使用到 rm(remove) 操作了.
语法:rm [-f-i-r-v] [dirName/dir]
功能:删除文件或目录
常用选项:
-f
即使文件属性为只读(即写保护),亦直接删除-i
删除前逐一询问确认-r
删除目录及其下所有文件
举例:
删除文件:
rm test.txt
删除目录:
rm -r test222
重要注意事项:
千万不要运行 rm -rf /
, 该操作是删除根目录的所有内容(相当于删除 Windows 系统中打不开 “此电脑” 了). 尤其是在某些生产服务器上.
理解递归删除的过程:
rm -ri test111
4. 移动文件 / 目录的操作
接下来再聊聊 Linux 中是如何移动, 复制文件 / 目录的.
- cp
- mv
cp
语法:cp [选项] [源文件或目录] [目标文件或目录]
功能: 复制文件或目录
说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息。
常用选项:
-f 或 --force
强行复制文件或目录, 不论目的文件或目录是否已经存在- -
i 或 --interactive
覆盖文件之前先询问用户 -r
递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理-R 或 --recursive
递归处理,将指定目录下的文件及子目录一并处理
举例:
cp test1.txt test2.txt
mv
mv(move), 该操作不仅可以实现文件移动, 还可以实现文件的重命名.
语法: mv [选项] [源文件或目录] [目标文件或目录]
功能:
- 视 mv 命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。
- 当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。
- 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。
常用选项:
-f
:force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖-i
:若目标文件 (destination) 已经存在时,就会询问是否覆盖
举例:
mv test2.txt test1.txt
mv test1.txt test_dir
5. 总结基本操作
ls
列出目录中的内容cd
切换目录pwd
查看目录所在位置touch
创建新的空文件cat
查看文件内容echo
显示内容 / 写文件vim
文本编辑器mkdir
创建目录rm
删除文件或目录cp
复制文件或目录mv
移动文件或重命名
上述讲的和 文件 / 目录 相关的操作命令, 都是 Linux 操作系统中最常用的一些命令, 读者务必将上述命令熟练掌握, 牢记于心.
6. 必不可少的实用操作
接下来我们讲一些 Linux 系统中的其余一些重要命令. 包括查阅手册, 字符串匹配搜索, 查看进程列表, 显示网络状态.
- man
- grep
- ps
- netstat
man
Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。
语法: man [选项] 命令
常用选项:
-k
根据关键字搜索联机帮助num
只在第num章节找man man
能够看到 man 手册中的若干个章节及其含义.
举例:
man ls
查阅完毕后, 我们可以按 q 退出.
grep
可以实现, 字符串搜索 / 匹配的命令.
语法:grep [参数]... [文件]...
功能:用于查找文件中是否包含指定字符串, 并显示对应的行.
选项:
-n<行数>
显示的行数.-w
全字匹配. 要求整个单词都完全相同的结果才能匹配出来, 而不仅仅是一个单词的一部分.-r
递归查找. 可以搜索多级目录下的所有文件.--color
高亮查找到的结果.--include
指定查找某些文件.--exclude
指定排除某些文件.
举例:
我们先创建一个 test.txt 文件, 使用 vim 写入一些内容.
grep aaaa test.txt
ps
显示进程列表
语法:ps [参数]...
功能:用于查看当前系统上运行的进程
选项:
a
显示一个终端的所有进程u
以用户为主的格式来显示程序状况x
显示所有程序,不以终端机来区分
举例:
ps
这里的内容不全, 只显示了当前会话中的进程.
ps aux
这样的操作就可以看到所有完整的进程.
ps aux | grep vim
联合 grep 操作实现查看 vim 进程.
|
叫做 “管道”, 能够把多个命令连接到一起, 把前一个命令的输出, 作为后一个命令的输入.
netstat
显示网络状态一些情况.
语法:netstat [参数]...
功能:查看系统上的网络状态.
选项:
-a
显示所有正在或不在侦听的套接字-n
显示数字形式地址而不是去解析主机、端口或用户名-p
显示套接字所属进程的PID和名称
举例:
netstat -anp | grep 80
总结
✨ 本文重点讲述了 Ubuntu 系统中的十几个常用的基本命令, 掌握这些命令后, 就足以应对大部分的场景了.
✨ 想了解更多知识, 请持续关注博主, 本人会不断更新学习记录, 跟随我一起不断学习.
✨ 感谢你们的耐心阅读, 博主本人也是一名学生, 也还有需要很多学习的东西. 写这篇文章是以本人所学内容为基础, 日后也会不断更新自己的学习记录, 我们一起努力进步, 变得优秀, 小小菜鸟, 也能有大大梦想, 关注我, 一起学习.
再次感谢你们的阅读, 你们的鼓励是我创作的最大动力!!!!!