Bootstrap

【Linux】——基本指令

目录

前言

添加与删除用户

添加一个普通用户账号

 删除账号

Linux快捷键

ls指令

pwd指令 

whoami指令 

cd指令

clear指令

touch指令

mkdir指令

 rmdir指令

rm指令✔

man指令 

cp指令

mv指令

cat指令

tac指令

more指令

less指令

head指令

tail指令

拓展:利用管道读取文件中间某一段内容

date指令

cal指令

find指令

 ​编辑

which指令

alias指令✔

grep指令

zip/unzip指令✔

tar指令

关机指令


前言

Linux是一种自由和开放源码的操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、台式计算机。

Linux具有多用户,多任务,丰富的网络功能,可靠的系统安全,良好的可移植性,具有标准兼容性,良好的用户界面,出色的速度性能,开源等特点。

为了更好地使用Linux,我们必须熟练掌握Linux的指令操作,下面我将要介绍Linux的基本指令。

添加与删除用户

当我们购买了云服务器后,我们得到的是一个root账号。实际上,使用root账号是比较危险的,因为root账号的权限太大,为了避免自己对某些系统文件进行误操作,所以我们最好创建一个普通用户,使用普通用户的账号来学习下面的指令。

添加一个普通用户账号

第一步: 输入addser Id(Id是待创建的用户的用户名)。

 第二步: 输入passwd yourid进行设置密码。注意: Linux当中输入密码时,密码不回显。

 当看到以下提示时,说明用户创建成功。

 这时我们可以在/home目录下看到该用户的用户名。

 删除账号

删除账号时之间输入userdel -r yourid(yourid是要删除的用户的用户名)。

注意: 创建和删除用户的操作者都必须是root用户,而不是普通用户。 

Linux快捷键

为了快速上手linux,我先介绍一些比较常用的快捷键

1)上下按键。

上下按键在Linux当中存储的是历史命令,通过按上下键我们可以查看我们最近敲的命令。
我们也可以使用history指令查看历史命令。

2)Ctrl+D。 退出当前命令行。

3)Ctrl+C。 让当前程序停掉(终止失控程序)。

4)Tab。      自动补齐功能。

5)Ctrl+R。 搜索历史命令。

ls指令

在Windows当中会自动显示当前目录当中的所有子目录与文件,我们若想在Linux当中查看当前目录当中的所有子目录与文件就需要用到ls指令。

语法: ls 选项 目录或文件
功能: 对于目录,该命令列出该目录下的所有子目录与文件;对于文件,该命令列出文件名以及其他信息。

 常用选项:

1)-a 列出目录下的所有文件,包括以 . 开头的隐含文件。

 注意:在Linux当中,每个目录下默认存在两个隐含文件 . 和 . . ( . 代表当前目录 . . 代表上级目录)。

2)-d 将目录像文件一样显示,而不是显示其下的文件。

3)-i 输出文件的i节点的索引信息。

4)-k 以k字节的形式表示文件的大小。

5)-l 列出文件的详细信息。注意:ls -l 也可以简写为 ll。

 6)-n 用数字的UID,GID代替名称。

7)-F 在每个文件名后附上一个字符以说明该文件的类型。(“*”表示可执行的普通文件,“/”表示目录,“@”表示符号链接,“|”表示FIFOs,“=”表示套接字sockets) 

8)-r 对目录反向排序。

 9)-t 以时间排序。

10)-s 在文件名前输出该文件的大小。

11)-R 列出所有子目录下的文件。

 12)-1 一行只输出一个文件。

pwd指令 

语法: pwd
功能: 显示用户当前所在的目录

whoami指令 

语法: whoami
功能: 显示用户当前的身份。

cd指令

在Linux系统中,磁盘上的文件和目录被组成一棵目录树,其中每个结点都是目录或文件。

在Windows当中,我们可以通过鼠标点击的方式在各个目录之间来回跳转,而在Linux当中我们需要用到cd指令来实现该操作。

语法: cd 目录名
功能: 改变工作目录。将当前工作目录改变到指定的目录下。

常用方式: 

1)cd . . (返回上级目录)。 注意: . .代表上级目录,进入上级目录也就是返回。

2)cd 绝对路径 (使用绝对路径改变当前工作目录)。

3)cd 相对路径 (使用相对路径改变当前工作目录)。

 绝对路径是指文件在硬盘上真正存在的路径。所谓相对路径,就是相对于自己的目标文件位置。

4)cd ~ (进入主工作目录)。 

小贴士:普通用户的主工作目录默认为 /home/xxx,root用户的主工作目录默认为 /root。

5)cd - (返回上一次所在目录)。

clear指令

语法: clear
功能: 清空屏幕。

touch指令

语法: touch 选项 文件
功能: touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。

在介绍touch命令前,先了解下linux的三个主要变动时间:mtime(modification time)、ctime(status time)、atime(access time)

  • modification time (mtime): 当该文件的“内容数据”变更时,就会更新这个时间。内容数据指的是文件的内容,而不是文件的属性或权限。
  • status time (ctime): 当该文件的“状态 (status)”改变时,就会更新这个时间,举例来说,像是权限与属性被更改了,都会更新这个时间。
  • access time (atime): 当“该文件的内容被取用”时,就会更新这个读取时间 (access)。举例来说,我们使用 cat 去读取 /etc/man_db.conf , 就会更新该文件的 atime 了。

常用选项:
1)-a 或 --time=atime 或 --time=access 或 --time=use 只更改存取时间。
2)-c 或 --no-create 不建立任何文档。
3)-d 使用指定的日期时间,而非现在的时间。
4)-f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
5)-m 或 --time=mtime 或–time=modify 只更改变动时间。
6)-r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
7)-t 使用指定的日期时间,而非现在的时间。

mkdir指令

语法: mkdir 选项 dirname
功能: 在当前目录下创建一个名为“dirname”的目录。

 常用选项:
1)-p dirname可以是一个路径名称,此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录。(此时的路径也可以是相对路径)

 rmdir指令

rmdir是一个与mkdir相对应的指令,mkdir是建立目录,而rmdir是删除目录。

语法: rmdir 选项 dirname
功能: 删除空目录。
适用对象: 具有当前目录操作权限的所有使用者。

常用选项:
1)-p 当子目录被删除后如果父目录也变成空目录的话,就连同父目录一起删除。

rm指令✔

rmdir指令只能用于删除空目录,若是要相删除其他文件,则需要用到rm指令。

语法: rm 选项 dirname
功能: 删除文件或目录。
适用对象: 所有使用者。

常用选项:
1)-i 删除前逐一询问确认。

2)-f 即使文件属性为只读(即写保护),亦直接删除。

3)-r 删除目录及其下所有文件(递归式删除)。

小技巧: 当你要删除当前目录下的所以文件时,可以使用通配符 * 。但是为了保险起见,一般使用通配符删除当前目录下的所有文件时,建议在通配符 * 前面加上 . / 告知系统要删除的资源在当前目录下( . 代表当前目录)。 

man指令 

Linux的指令有很多参数,我们不一定能全部记住,我们可以通过查看联机手册获取帮助。访问Linux手册页的指令便是man。

语法: man 选项 指令
功能: 查看指令的使用规则等。

常用选项:
1)-k 根据关键字搜索联机帮助。
2)num 只在第num章节查找。
3)-a 将所有章节的查找结果都显示出来。

手册分为8章:
1)可执行程序或shell命令。
2)系统调用(内核提供的函数)。
3)库函数(程序库中的函数)。
4)特殊文件(通常在/dev中找到)。
5)文件格式和约定,如/etc/passwd。
6)游戏。
7)杂项。
8)系统管理命令(通常仅限于root用户)。

cp指令

在Windows中我们可以通过Ctrl+C和Ctrl+V将一个地方的文件或目录复制一份到另一个地方,我们若是在Linux当中想要完成该操作,就要用到cp指令。

【小提示】:linux的复制粘贴快捷键

  1. 在终端下:复制命令:Ctrl + Shift + C  组合键.粘贴命令:Ctrl + Shift + V  组合键.
  2. 在控制台下:复制命令:Ctrl + Insert  组合键。粘贴命令:Shift + Insert  组合键。

语法: cp 选项 源文件或目录 目标文件或目录
功能: 复制文件或目录。

 常用选项:
1)-f 或 --force 强行复制文件或目录,不论目标文件或目录是否已经存在。

2)-i 或 --interactive 覆盖文件之前先询问用户。

mv指令

在Windows中我们经常使用Ctrl+X和Ctrl+V将一个地方的文件或目录移动到另一个地方,我们若是要在Linux当中完成此操作,则需要使用mv指令。

语法: mv 选项 源文件或目录 目标文件或目录
功能: 视mv指令当中两个参数的不同而不同。

1)当第二个参数是不存在的名称时,mv指令完成文件重命名或目录重命名。

2)当第二个参数是已存在目录名称时,mv指令将文件移动置该目录中。

常用选项:(与cp指令类似)
1)-f 强制的意思(force),如果目标文件已经存在,不会询问而直接覆盖。

2)-i 若目标文件已经存在,则会询问是否覆盖。

cat指令

在Linux当中无法想Windows一样用鼠标点开某一文件进行阅读,要想阅读文件可以用cat指令。

语法: cat 选项 文件
功能: 查看目标文件的内容。

 

常用选项:
1)-b 对非空输出行编号。

 

2)-n 对输出的所有行编号。

3)-s 禁止重复的空输出行。

注意: cat指令会将目标文件内容全部打印到屏幕上。若是目标文件内容过大,则会导致刷屏(直到将文件内容全部打印到屏幕上)。因此cat指令一般仅适用于查看内容较少的文件。

tac指令

使用tac指令,我们可以反向查看目标文件的内容。

语法: cat 文件
功能: 反向查看目标文件的内容。与cat相对应

 

more指令

上面说到,cat指令仅适用于查看内容较少的文件,我们若是要查看海量信息文件,则可以适用more指令

语法: more 文件
功能: 查看目标文件的内容。

首先我们现在text1.txt中写一百行文字,然后使用more查看

 此时可以看到--More--命令行,然后按回车键就可以继续查看了。

less指令

上面的more指令只能进行下翻操作,而less指令可以同时支持上翻和下翻操作。

语法: less 选项 文件
功能: 既有查看目标文件的内容的功能,又有搜索功能。

 

注意: less指令可以通过按上下键进行上翻和下翻操作,并且less指令在查看之前不会加载整个文件。

常用选项:
1)-i 忽略搜索时的大小写。
2)-N 显示每行的行号。
3)/字符串 向下搜索“字符串”的功能。
4)?字符串 向上搜索“字符串”的功能。
5)n 重复前一个搜索(与/或?有关)。
6)N 反向重复前一个搜索(与/或?有关)。

head指令

语法: head 选项 文件
功能: 用于显示文件的开头至标准输出中,默认head指令打印其相应文件的开头10行。

常用选项:
1)-n 需要显示的行数。

tail指令

语法: tail 选项 文件
功能: 用于显示文件的末尾至标准输出中,默认tail指令打印其相应文件的末尾10行。

 

 常用选项:
1)-n 需要显示的行数。

2)-f 循环读取。

拓展:利用管道读取文件中间某一段内容

如果我们想要这个100行文件中的第50至60行的数据,如果使用head或者tail的话都不太方便

为了便捷地实现这一操作,我们需要用到“命令行管道

我们知道,管道是用于传输某种资源的(下水管道用于传输水,天然气管道用于传输天然气),而计算机上面最重要的资源就是数据。
在指令中管道用“|”来表示,管道左边接收产生的数据,右边读取数据。示意图如下:

 因此我们可以将test.txt文件的前60行从管道左侧输入管道,并在管道右侧用tail读取数据进行进一步的操作即可。

date指令

语法: date 选项 格式
功能: 用于显示时间、设置时间、完成时间与时间戳之间的相互转换等。

用法一: 用于显示时间,使用者可以选定欲显示的格式,格式设定为一个加号,后接数个标记,其中常用的标记如下:
1)%H 显示当前的小时,范围(00~23)。

2)%M 显示当前的分钟,范围(00~59)。

3)%S 显示当前的秒数,范围(00~59)。

4)%X 相当于%H:%M:%S。

5)%d 显示当前的号数。

6)%m 显示当前的月份。

7)%Y 显示当前的年份。

8)%F 相当于%Y-%m-%d。

用法二: 用于设定时间。
1)date -s 设置当前时间,只有root用户才能设置,普通用户只能查看。
2)date -s 20210725 将时间设置为20210725,这样会将具体时间设置为空(00:00:00)。
3)date -s 01:01:01 设置具体时间,不会对日期做更改。
4)date -s “01:01:01 2021-07-25” 同时设置日期和具体时间。
5)date -s “01:01:01 20210725” 同时设置日期和具体时间。
6)date -s “2021-07-25 01:01:01” 同时设置日期和具体时间。
7)date -s “2021072501:01:01” 同时设置日期和具体时间。

用法三: 完成时间与时间戳之间的相互转换。
1)date +%s 显示当前时间的时间戳。                                                                                          2)date -d @时间戳 将时间戳转换为时间。

cal指令

cal指令可以用于显示公历(阳历)日历。

语法: cal 选项 月份 年份
功能: 用于查看日历等时间信息,如只有一个参数,则表示年份(1~9999),如有两个参数,则表示月份和年份。

常用选项:
1)-3 显示系统前一个月、当前月以及下一个月的日历。 

2)-j 显示在当年中的第几天(一年日期按天算,从1月1号算起,默认显示当前月在一年中的天数)。

3)-y 显示当前年份的日历。

find指令

语法: find 路径 选项 …
功能: 用于在文件树中查找文件,并作出相应的处理(可能访问磁盘->效率比较低)。

常用选项:
1)-name 按照文件名查找文件。

 

 2)-size 按照文件大小查找文件。

which指令

Linux当中的每个指令其实都是用计算机语言编写出的可执行程序,这些程序都存储在文件当中,我们可以通过which指令查看某一指令的程序文件所在路径。

语法: which 指令
功能: 用于查找某一指令的程序文件所在路径。

当我们执行某一指令时,实际是调用其可执行程序,因此我们还可以通过其程序文件的所在路径进行调用该指令。

alias指令✔

当你觉得某一指令太长时,你可以使用alias指令给它起一个别名。相当于C语言中的typedef

语法: alias 别名=‘原名’
功能: 可以用于给指令取别名。

grep指令

grep指令类似于关键词搜索(行过滤器)。

语法: grep 选项 搜寻字符串 文件
功能: 在文件中搜索字符串,将找到的行打印出来。

常用选项:
1)-i 忽略大小写进行查找。

2)-n 输出行号。

3)-v 反向选择,显示出没有待搜索字符串的行。

zip/unzip指令✔

zip指令用于打包压缩目录或文件。

语法: zip 选项 压缩文件.zip 待打包目录或文件
功能: 将目录或文件打包压缩成zip格式。
常用选项:
1)-r 递归处理,将指定目录下的所有文件和子目录一并处理。

 

unzip指令用于解压文件。

语法: unzip 压缩文件.zip 选项 目录
功能: 将压缩文件解压到指定目录当中。

注意: 解压文件时若不带-d选项和目标目录,则默认解压到当前目录下。 

tar指令

tar指令也可以用来打包压缩和解压文件,并且还可以实现不解开压缩包,直接查看里面内容的操作,以及只打包不压缩等操作。

语法: tar 选项 压缩文件 …
功能: 打包/解包,不解开压缩包,直接查看里面内容。

常用选项:
1)-c 建立一个压缩文件的参数指令(create的意思)。
2)-x 解开一个压缩文件的参数指令。
3)-t 查看tarfile里面的文件。
4)-z 是否同时具有gzip属性?即是否需要用gzip压缩?
5)-j 是否同时具有bzip2属性?即是否需要用bzip2压缩?
6)-v 压缩的过程中显示文件(常用)。
7)-f 使用档名,请留意,在f之后要立即接档名,不要再加参数。
8)-C 解压到指定目录。

关机指令

语法: shutdown 选项
常见选项:
1)-h 将系统的服务停掉后,立即关机。
2)-r 将系统的服务停掉之后就重新启动。
3)-t sec 经过sec秒后关机。
注: 所有关机指令只能由root用户执行。云服务器不建议关闭系统,最好不要关机。因为云服务器大多是用来搭建网站或其他应用的,关机就会导致用户无法访问。这也侧面反映出了Linux系统的稳定性。各位可以想一想自己的windows如果长时间关机会不会变卡,而Linux可以长期使用。

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;