从本节开始,我们正式进入Linux的学习,通过前面的了解,我们知道我们要以命令的形式使用操作系统(使用操作系统提供的各类命令,以获得字符反馈的形式去使用操作系统。),因此,我们是很有必要的去了解基本的操作命令,这一节,我们便系统学习Linux操作系统下的基本命令。
目录
一、Linux的目录结构
1.1 Linux目录结构概念
1.2 Linux路径描述方式
1.2.1 绝对路径和相对路径的概念
1.2.2 特殊路径符
二、Linux命令入门
2.1 什么是Linux命令
2.2 Linux命令基础格式
2.3 实用命令小技巧
2.3.1 查询命令用法man
2.3.2 Tab键自动补全
2.3.3 复制粘贴内容
2.3.4 通配符*
三、基础命令
3.1 pwd查看当前位置的绝对路径
3.2 cd切换工作目录
3.3 ls显示目录中的文件
3.3.1 不使用参数和选项
3.3.2 ls使用选项
3.3.3 ls使用参数
3.4 touch创建普通文件
3.5 mkdir创建目录文件/文件夹
3.6 rm删除文件
3.7 cp拷贝文件
3.8 mv剪切文件
3.9 find查找文件
3.10 which命令
3.11 清空窗口命令clear
3.12 grep命令过滤文件内容
3.13 管道符 |
3.14 wc 数量统计
3.15 su
3.16 重定向符
3.17 关机与重启
四、文件查看命令
4.1 cat命令
4.2 more分屏显示文件内容
4.3 less
4.4 head
4.5 tail
五、文本编辑命令
5.1 vi/vim编辑器介绍
5.2 vi\vim编辑器的三种工作模式
5.3 vi/vim 常用命令
5.3.1 控制插入模式下文本编辑中光标的位置
5.3.2 常用操作命令
5.3.3 末行模式下的操作
六、文件压缩与解压命令
6.1 tar打包工具
6.1.1 tar 打包过程
6.1.2 tar 解包过程
6.2 gzip解压缩工具
6.2.1 gzip 压缩的过程
6.2.2 gzip 解压的过程
6.3 从压缩包一步解包拿到文件
七、进程管理命令
7.1 ps 进程显示命令
7.2 kill 结束进程
7.2.1 前台进程结束方法
7.2.2 后台进程结束方法
7.3 强制结束进程
7.4 显示运行进程的任务号
7.5 进程的移动
7.6 系统默认开启的进程
八、用户管理命令
8.1 系统存储用户信息的文件
8.2 添加新用户
8.3 修改用户密码
8.4 删除用户
一、Linux的目录结构
1.1 Linux目录结构概念
Windows 系统可以拥有多个盘符, 如 C盘、D盘、E盘,而Linux的目录结构是一个树型结构,Linux没有盘符这个概念, 只有一个根目录 /, 所有文件都在它下面。如下图所示:
注意:
Linux为多用户操作系统,为保证文件的安全性,每创建一个用户,都会在根目录下的home路径下创建一个以用户名命名的目录,这也称之为家目录,每个用户对于文件的修改,删除,移动只能在当前目录下或者其子文件下,如果想要操作家目录之外的文件,必须要切换至管理员身份,然后才可以进行操作。我们的家目录为:/home/stu 。Linux中对于文件夹的描述为目录,也就是说目录就是我们所说的文件夹。
1.2 Linux路径描述方式
1.2.1 绝对路径和相对路径的概念
我们知道:在Windows系统中,路径之间的层级关系,使用: \ 来表示,然而在Linux系统中,路径之间的层级关系,使用: /来表示。如下图所示,
绝对路径:以根目录为起点,描述路径的一种写法,路径描述以/开头
相对路径:以当前目录为起点,描述路径的一种写法,路径描述无需以/开头
举个栗子:如图,通过pwd得知当前所在是家目录下的mycode文件夹下:/home/stu/mycode, 这个文件夹下有三个文件夹,现在想要通过cd命令,切换工作目录到day02文件夹中去。那么,cd命令的参数(Linux路径)如何写呢?下面两种写法,都可以正确的切换目录到指定的day02文件夹下。
- cd /home/stu/mycode/day02 绝对路径写法
- cd day02 相对路径写法(没指定路径,默认就是当前目录下)
1.2.2 特殊路径符
为更加灵活方便的支持路径的切换,在Linux中存在一些特殊的路径符,我们需要知道,这样方便我们后续切换路径。主要有四个:
特殊路径符:
- . 表示当前目录,比如 cd ./Desktop 表示切换到当前目录下的Desktop目录内,和cd Desktop效果一致。
- .. 表示上一级目录,比如:cd .. 即可切换到上一级目录。
- ~ 表示HOME目录,比如:cd ~ 在任何位置输入这个命令都能直接回到家目录。
- - 表示返回最近访问目录,比如:cd -
二、Linux命令入门
在正式进入命令学习之前,我们先理解一下什么是命令,明白命令的基础格式,对于后续十分重要。
2.1 什么是Linux命令
我们知道,windows系统是以图形界面操作的,非常形象易用,而Linux则是以命令字符的该来进行操作的,相对window来讲并不直观,具有一定的门槛。什么是命令?命令是对系统进行管理的指令,就像在windows上你要创建一个文件,你需要用鼠标或键盘点击创建,而在linux上你需要输入命令来创建,达到的效果是一样的。你想要删除文件、编辑文本、重启系统…等等操作都要通过命令来执行,所以说,命令是Linux系统管理的重要方式,要使用Linux系统必须要掌握Linux命令。命令也可以理解为:二进制的可执行文件/程序,Linux的命令都在:/bin路径下存放。
2.2 Linux命令基础格式
无论是什么命令,用于什么用途,在Linux中,命令有其通用的格式:
命令 【可选项】【可选参数】
- 命令: 命令本身
- 可选项:[可选,非必填]命令的一些选项,可以通过选项控制命令的行为细节
- 参数:[可选,非必填]命令的参数,多数用于命令的指向目标等
- 温馨提示:选项和参数的具体定义可通过man命令查询,后续介绍,掌握基本的命令,遇到不会的可以通过man命令查询。(后续介绍)
2.3 实用命令小技巧
在本节中,我将向您演示一些专业的Linux命令技巧,这些技巧将使您节省大量时间,在某些情况下还可以避免很多麻烦,而且它也将帮助您提高工作效率。
2.3.1 查询命令用法man
Linux系统中有大量的命令,而且每个命令又有很多的参数和用法,因此不可能记住每一条命令的每一个参数和用法。因此,需要一个查询工具,类似字典或说明书的作用。帮助手册,用来查看命令、系统调用,库函数等帮助信息,示例如下:
当一个命令有多种形式时,可以加入参数修饰,1 代表查看命令 2 代表系统调用 (内核中的函数)
3 代表库函数。
注:在此窗口中,按回车键Enter逐行往下滚,按空格键翻页,按q键退出。
由上可见,查询到的说明是非常详细的,每个参数都会详细说明。以后在使用中忘记了哪个命令的用法,可通过man命令来查询。
2.3.2 Tab键自动补全
Tab键俗称制表符,位于键盘最左侧大小写锁定键CapLock之上,波浪线键之下。制表位表示四个空格,用来分隔字符。在命令行操作中可以用来自动补齐命令,选项参数(最新Redhat7支持部分参数补齐),以及路径。当一个命令或路径较长时,可输入前面几个字符然后按[Tab]键,有以下情况:
1.由前面的几个字符能唯一确定一个命令或路径时,它便会自动帮你补全;
2.由前面几个字符不能唯一确定一个命令或路径时,再按一次[Tab]键,它会列出所有可能的命令或路径;
可见,Tab键不仅能自动补全,还能帮你列出可能的情况,是十分好用的一个小技巧。
2.3.3 复制粘贴内容
一般正常的使用:用鼠标选中想要复制的内容,然后点击右键选择“复制(Copy)”来复制内容,在要粘贴的地方也是点击右键,然后右键选择“粘贴(Paste)”。
在Linux中,用鼠标选中某段内容时,默认就已复制了,然后到要粘贴的地方,向下按一下(点击)鼠标的滚轮,即可粘贴。
2.3.4 通配符*
在Linux中,通配符*表示任意、不等长度的字符,与命令结合使用十分方便,如下:
- rm -r * :代表一次性删除当前目录下所有文件(包含普通文件、目录文件...)
- rm -rf *:代表一次性删除当前目录下所有文件(包含普通文件、目录文件...),并且即使有问题,也不会有提示信息,直接删除
三、基础命令
3.1 pwd查看当前位置的绝对路径
我们可以通过pwd命令,来查看当前所在位置的绝对路径。如下图所示:
pwd命令来自:Print Work Directory,pwd命令,无选项,无参数,直接输入pwd即可。
3.2 cd切换工作目录
当Linux终端(命令行)打开的时候,会默认以用户的home目录作为当前的工作目录.
cd命令来自英文:Change Directory, 可以通过cd命令,更改当前所在的工作目录,cd 后的参数表示要切换到的位置,可以使用绝对路径或相对路径。
特殊目录切换:
- cd .. 表示切换到上一级目录。
- cd ~ 表示 在任何位置输入这个命令都能直接回到家目录。
- cd - 表示返回最近访问目录
3.3 ls显示目录中的文件
ls命令的作用是列出当前目录下的内容,语法细节如下:
- -a -l -h 是可选的选项
- •Linux路径是此命令可选的参数
3.3.1 不使用参数和选项
当不使用选项和参数,直接使用ls命令本体,表示:以平铺形式,列出当前工作目录下的内容
Linux系统的命令行终端,在启动的时候,默认会加载:
• 当前登录用户的home 目录作为当前工作目录,所以 ls 命令列出的是home 目录的内容•home 目录:每个 Linux 操作用户在 Linux 系统的个人账户目录,路径在: /home/ 用户名
3.3.2 ls使用选项
ls -a 会列出当前目录下的全部文件(包含隐藏的文件/文件夹)a即all
可以看到,ls -a 对比 ls 列出的内容更多了。
• 图中以 . 开头的,表示是 Linux 系统的隐藏文件 / 文件夹(只要以 . 开头,就能自动隐藏)• 只有通过 -a 选项,才能看到这些隐藏的文件 / 文件夹
ls -l 表示以列表(竖向排列)的形式展示内容,并展示更多信息.
语法中的选项是可以组合使用的,比如学习的-a和-l可以组合应用。
写法:
• ls -l -a• ls -la• ls -al上述三种写法,都是一样的,表示同时应用-l和-a的功能
3.3.3 ls使用参数
当使用参数,ls命令的参数表示:指定一个Linux路径,列出指定路径的内容。当然选项和参数可以同时使用。如下所示:
3.4 touch创建普通文件
可以通过touch命令创建普通文件。
3.5 mkdir创建目录文件/文件夹
通过mkdir命令可以创建新的目录(文件夹)mkdir来自英文:Make Directory
注意:绿色显示为可执行程序,在Linux中可执行程序没有后缀,比如window中的test.exe可执行程序,在Linux中就是test, 但是对于gcc编译器必须要指定后缀区分不同的文件。蓝色显示为文件夹。
3.6 rm删除文件
rm命令可用于删除普通文件、目录/文件夹,rm命令来自英文单词:remove
• -r 选项用于 删除目录/文件夹• -f 表示 force , 强制删除(不会弹出提示确认信息)普通用户删除内容不会弹出提示,只有root 管理员用户删除内容会有提示,所以一般普通用户用不到-f选项• 参数 1 、参数 2 、 ...... 、参数 N 表示要删除的文件或文件夹路径,按照空格隔开
需要注意:
rm是一个危险的命令,特别是在处于root(超级管理员)用户的时候。请谨慎使用。
如下命令,请千万千万不要在root管理员用户下执行:rm -rf / 效果等同于在Windows上执行C盘格式化。
PS:你心里痒痒就在虚拟机试试吧,大不了恢复快照或者重新装个虚拟机哦
3.7 cp拷贝文件
拷贝文件copy, 拷贝目录文件/文件夹时,需要加上“-r” ,示例如下:
3.8 mv剪切文件
mv命令是move的缩写,可以用来移动文件或者将文件改名,是Linux系统下常用的命 令,经常用来备份文件或者目录。实例如下:
3.9 find查找文件
在目录树中搜索指定的文件,也可以指定开始的搜索位置。
3.10 which命令
我们在前面学习的Linux命令,其实它们的本体就是一个个的二进制可执行程序。
和Windows系统中的.exe文件,是一个意思。我们可以通过which命令,查看所使用的一系列命令的程序文件存放在哪里。
3.11 清空窗口命令clear
该命令可将窗口进行清空
3.12 grep命令过滤文件内容
在文件中过滤出包含指定字符串的行 ,过滤出的结果可以作为管道符的输入
3.13 管道符 |
学习了grep命令后,我们在来学习一个新的特殊符号,管道符:|
管道符的含义是:将管道符左边命令的结果,作为右边命令的输入
3.14 wc 数量统计
统计文件中单词个数(-w)、字符个数(-c)、行数(-l) ,示例如下:
3.15 su
su username 切换用户,没有指定用户名,则默认切换到管理员用户,示例如下:
3.16 重定向符
重定向符:>和>>
- > 将左侧命令的结果,覆盖写入到符号右侧指定的文件中
- >> 将左侧命令的结果,追加写入到符号右侧指定的文件中
3.17 关机与重启
首先,应切换为管理员身份:sudo su ,输入密码(不回显)
执行关机指令:shutdown -h now (立即关机)
shutdown -h 10 (10分钟后关机)
关机任务取消:shutdown -c
重启指令:shutdown -r now (立即重启)
shutdown -h 10 (10分钟后重启)
四、文件查看命令
4.1 cat命令
用法1:查看文件内容,会在中端平铺展开
用法2:合并两个文件为一个文件, 本来是默认打印在屏幕上 >重定向打印在在文件里
用法3:往文件中写入数据, Ctrl+d 是结束输入
4.2 more分屏显示文件内容
more命令同样可以查看文件内容,同cat不同的是:
• cat 是直接将内容全部显示出来•more支持翻页,如果文件内容过多,可以一页页的展示, 在查看的过程中,通过空格翻页。
4.3 less
less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。 less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看 但若使用了 less 时,就可以使用 [pageup][pagedown] 等按键的功能来往前往后翻看文件,更容易用 来查看一个文件的内容! 除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。
4.4 head
显示文件前 n 行的内容,默认head命令打印其相应文件的开头10行。如下:
4.5 tail
显示文件后 n 行的内容,默认tail命令打印其相应文件的末尾10行示例如下:
五、文本编辑命令
5.1 vi/vim编辑器介绍
vi是visual interface的简称, 是Linux中最经典的文本编辑器,同图形化界面中的 文本编辑器一样,vi是命令行下对文本文件进行编辑的绝佳选择。Linux系统都会自带vi编辑器,但是vi编辑器太难用了!所以建议大家安装vim编辑器,安装命令: apt install vim。 vim 是 vi 的加强版本,兼容 vi 的所有指令,不仅能编辑文本,而且还具有 shell 程序编辑的功能,可以不同颜色的字体来辨别语法的正确性,极大方便了程序的设计和编辑性。
5.2 vi\vim编辑器的三种工作模式
1、命令模式(Command mode)
命令模式下,所敲的按键编辑器都理解为命令,以命令驱动执行不同的功能。
此模式下,不能自由进行文本编辑。
2、插入模式(Insert mode)
也就是所谓的编辑模式、输入模式。此模式下,可以对文件内容进行自由编辑。
3、末行模式(Last line mode)
也就是底线命令模式,以:开始,通常用于文件的保存、退出。
vi xxx 使用vi编辑器打开文件,此文件可以不存在,它会自己创建。 用vi打开一个vi后,自动进入到命令模式。命令模式中无法编辑文件,也就是无法敲代码,要编辑文件就要进入输入模式,按下“i、I、a、A、o、O、”等就会进入到编辑模式。一般按下“i”进入输入模式。按下ESC键可退出输入模式。在我们编辑完代码需要保存退出时,便要进入末行模式,此时按 shift+:即可, 然后输入相应的指令退出编辑器。
5.3 vi/vim 常用命令
5.3.1 控制插入模式下文本编辑中光标的位置
a | 进入到当前光标后开始编辑 |
A | 进入到当前光标所在行的行末开始编辑 |
i | 进入当前光标位置前一个位置开始编辑(常用) |
I | 进入当前光标所在行的行头开始编辑 |
o | 进入当前光标下一行开始编辑 |
O | 进入当前光标上一行开始编辑 |
上述命令须在命令模式下执行,当然,我们不对上面的命令记忆也可以操作光标的位置,按下键盘上的上下左右键来控制光标位置即可!
5.3.2 常用操作命令
nyy | 复制光标所在向下n行,比如10yy就是复制光标下面的10行 |
yy | 复制光标所在行 |
p | 与nyy结合使用,从光标下面一行开始复制n行 |
ndd | 删除光标所在行及其下n行 |
dd | 删除光标所在行 |
u | 撤销,恢复上一步 |
ctrl +r | 反撤销 |
gg | 光标移动到整个文本的第一行 |
G | 光标移动到整个文本的最后一行 |
上述命令须在命令模式下执行。
5.3.3 末行模式下的操作
在输入/编辑模式下,输入: ,即可进入底线命令模式/末行模式,支持如下命令:
:w | 只保存文本 |
:q | 只退出编辑 |
:wq | 保存并退出(常用) |
:q! | 强制退出,不保存退出 |
:set nu | 显示行号 |
:set nonu | 取消行号显示 |
保存退出后,按回车键Enter即可退出文本编辑器
六、文件压缩与解压命令
Linux下常用的压缩扩展名有:.tar、.tar.bz2、.tar.gz。
tar命令工具只提供了打包和解包的功能,tar在提供打包和解包的同时使用gzip进行压缩和解压,实现类似windwos下winRAR软件的命令。
6.1 tar打包工具
将文件打包或者解包
- c 创建包文件
- f 指定目标为文件而不是设备
- v 显示详细过程
- t 显示包中的内容而不释放
- x 释放包中的内容
- z GNU 版本新加的,使得 tar 有压缩和解压的功能
6.1.1 tar 打包过程
tar cvf 包名 需要打包文件名
6.1.2 tar 解包过程
tar xvf 打包的包名
6.2 gzip解压缩工具
对刚刚打包的包进行压缩或者解压缩的工具
.gzip工具负责压缩和解压缩.gz格式的压缩包。
gzip xxx //压缩
gzip -d xxx.gz //解压缩
gzip对文件夹进行压缩
gzip -r xxx //对文件夹进行压缩
gzip -rd xxx.gz //对文件夹进行解压缩
gzip虽然可以对文件夹进行压缩,但是并不能提供打包的服务,只是对文件夹中的所有文件进行了单独的压缩。
6.2.1 gzip 压缩的过程
gzip 包名 如:gzip my.tar
6.2.2 gzip 解压的过程
gzip -d 压缩格式后的文件名 如:gzip -d my.tar.gz
6.3 从压缩包一步解包拿到文件
tar zxf 压缩包名 z:解压缩 x:解包 f:普通文件 如:tar zxf my.tar.gz
七、进程管理命令
进程是一段正在运行的程序,我们应该如何管理进程呢?
7.1 ps 进程显示命令
- ps 显示当前终端运行的进程
- ps -f 看到的进程更详细一些 可以看到进程编号
- ps -ef 可以看到系统全部正在运行的进程
7.2 kill 结束进程
7.2.1 前台进程结束方法
当运行前台进程时,只有当当前运行的前台进程运行完,才可以执行其他的命令,它的结束很简单,用快捷键即可:Ctrl+C 这也是后面学习信号中的一个信号。
7.2.2 后台进程结束方法
与前台进程相比,后台进程不需要等当前的进程执行完毕才能执行其他命令,它无法用快捷键Ctrl+C结束后台进程,需要使用:kill +PID号就可以。
方法一:kill+ PID号
方法二:再打开另外一个终端窗口,输入:ps -ef grep "后台进程名" 展示出详细信息,查看PID号,然后再利用kill+PID号结束后台进程。
7.3 强制结束进程
当我们使用:kill+PID号无法结束进程时,可以使用:kill -9 PID 强制结束进程 ,这也是后面需要学习的一个信号。
7.4 显示运行进程的任务号
jobs显示当前终端的任务
jobs -l 显示更详细详细 pid也可以显示
7.5 进程的移动
fg %任务号 将后台运行的或挂起的进程挪到前台执行
bg %任务号 将挂起的进程唤醒到后台执行
7.6 系统默认开启的进程
我们知道进程就是一个正在运行程序,我们输入的命令其实也是可执行程序,因此,我们每输入一个命令就会产生一个进程,操作系统为了让我们输入的命令能够正常执行,会默认打开命令解释器:bash, 他也是一个进程,通过后续的学习,我们可以知道:产生一个新的进程,其实就是首先复制命令解释器进程bash, 然后再将此进程替换为我们需要打开的进程。
八、用户管理命令
8.1 系统存储用户信息的文件
8.2 添加新用户
8.3 修改用户密码
8.4 删除用户
userdel 删除用户时,首先确保该用户没有登录。userdel 默认仅删除用户,不会删除家目录及家目录中的文件,若想删除用户的同时移除家目录, 那么使用 userdel -r username。
以上就是Linux基本命令的全部内容!请务必掌握,这是后续学习的基础,欢迎大家点赞加关注评论,您的支持是我前进最大的动力!下期再见!