linux的20+条基本指令(未完待更新)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 指令的基本格式
  • ls指令:
  • pwd指令
  • which指令
  • ll指令
  • cd指令
  • touch指令、stat指令
  • mkdirt指令
  • rmdir和rm指令
  • man指令
  • help、type指令
  • cp、mv指令
  • cat、tac指令
  • more、less指令
  • head、tail指令
  • date指令
  • cal指令


前言

在很多资料中,学习linux的重要任务之一就是学会对文件和目录进行管理。
我认为我们要在脑海里树立“Linux下一切皆为文件”的思想,毕竟这也是一个事实。所以对文件和目录进行管理是必须的。
下面是在FHS标准下的linux文件的部分

FHS定义了两层规范,
第一层是, / 下面的各个目录应该要放什么文件数据.
第二层是,针对/usr及/var这两个目录的子目录来定义。

linux的20+条基本指令(未完待更新)_第1张图片

指令的基本格式

当使用root用户登录后,我们开始能编辑指令的地方,前面会出现以下内容。
在这里插入图片描述
这个内容是Linux的系统提示符,可以通过提示符了解到一些信息。

系统提示符
1.[]和@是分隔符,没有什么含义
2.root代表我当前所登录的是root用户
3.VM-0-2-centos代表当前系统的简写主机名,不难看出我所使用的版本是centos
4.~‘的位置,代表当前所在的目录,~的含义是家目录。
5.方括号后面的’#‘的位置,标识了此时登录的用户是普通用户还是
 root用户,’#‘代表此时是root用户,’$‘代表此时是普通用户

上面有提到家目录,家目录又可以称为主目录。
这个目录在哪里?是哪一个呢?

  • root用户家目录:/root
  • 普通用户家目录:/home/XXX

XXX是用户名。当我们登录后所在的位置就是家目录。
在这里插入图片描述
在这里插入图片描述
pwd可以显示当前所在的位置,YDY是我linux下的一个普通用户。


了解了系统提示符后,再去看界面,就不会显得一头雾水了。现在来看看指令的基本格式,指令的基本格式大致是这样的:
linux的20+条基本指令(未完待更新)_第2张图片
当然,你也可以选择不写选项或者参数,那么将只会执行一些基本的功能。

ls指令:

在这里插入图片描述

功能:对目录,列出该目录下的目录及文件。对文件,列出文件名或其他信息。

【不加参数和选项的测试】
linux的20+条基本指令(未完待更新)_第3张图片

【选项】
-a:列出文件下的所有文件,包含...文件。
一个点的含义:当前目录
两个点的含义:上一级目录

在这里插入图片描述

-d:只显示当前目录,而不是显示下一级目录及文件。在这里插入图片描述
-R:列出当前目录下的所有目录及文件
linux的20+条基本指令(未完待更新)_第4张图片
其他选项自行测试
【-i】 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件
【-k】以 k 字节的形式表示文件的大小。ls –alk 指定文件
【-l】列出文件的详细信息。
【-n】 用数字的 UID,GID 代替名称。 (介绍 UID, GID)
【-F】在每个文件名后附上一个字符以说明该文件的类型
-“*”表示可执行的普通文件;
“/”表示目录;
“@”表示符号链接;
“|”表示FIFOs;
“=”表示套接字(sockets)。(目录类型识别)
【-r 】对目录反向排序。
【-t 】以时间排序。
【-1】 一行只输出一个文件。

pwd指令

pwd的功能:显示当前用户、当前所在的路径。

这个指令没什么选项。
它以绝对路径的方式显示,绝对路径我在这里没有解释,因为文章排版的问题,我放在了 cd指令

which指令

不知道“linux下一切皆为文件”是否已经在你的脑海里根深蒂固·。
实际上,指令也是linux下的文件,是可执行的文件。
而which指令,可以查看特定指令的系统路径
linux的20+条基本指令(未完待更新)_第5张图片

ll指令

当使用which指令查看ls和ll指令的系统路径时,会发现一个惊讶的事情
linux的20+条基本指令(未完待更新)_第6张图片
alias的中文意思是:别名。
上面的信息意味着lsls --color=auto的别名,llls -l --color=auto的别名。

这说明了ll指令其实是在ls基础功能下,封装了-l选项。
ll指令功能:以列表形式列出目录下的目录以及文件。
linux的20+条基本指令(未完待更新)_第7张图片

那么它剩下的选项和格式与ls指令是一致的。
linux的20+条基本指令(未完待更新)_第8张图片

cd指令

在了解cd指令前,要提到两个术语:绝对路径、相对路径
这两个术语解答了两个问题:

  • 1、文件和目录在哪里?
  • 2、文件或目录叫什么名字?

你或许对这两个问题感到鄙夷,但是对文件和目录进行管理,首先就要解决它们,通过这两个问题可以进行定位文件。

绝对路径:通过根目录所需目录或文件的路径
相对路径:通过其他目录或文件所需目录或文件的路径

linux的20+条基本指令(未完待更新)_第9张图片
绝对路径,具有唯一性,也就是只有一条路径。而相对路径不具备唯一性,它具有相对性,指相对于用户当前所在目录来说。

现在来正式解释以下cd指令。
格式如下:
在这里插入图片描述

cd指令的功能,切换当前用户所在目录。
linux的20+条基本指令(未完待更新)_第10张图片
使用相对路径和绝对路径进行切换目录
linux的20+条基本指令(未完待更新)_第11张图片
注意:仅仅只能切换到目录,不能切换到文件,否则会提示不是一个目录。
在这里插入图片描述
可是我切换的时候,怎么知道这是一个目录还是文件呢?
linux的20+条基本指令(未完待更新)_第12张图片

来看这一种情况:cd已经切换到根目录时,再cd ..又会擦出怎样的火花呢?
linux的20+条基本指令(未完待更新)_第13张图片
经过测试,发现回退到根目录时,再回退,发现还是处在根目录。

不清楚你是否认真地看了我的这篇文章,在前面我解释了一些代表某某目录的符号。
如果你已经看了,那么就当温习吧

~ :家目录、或称主目录
. :用户当前所在目录
.. :用户当前所在目录的上一级目录
- :最近一次访问的目录

不过我在前面好像没有解释"-"
linux的20+条基本指令(未完待更新)_第14张图片
作为补偿,我帮你测试了,嘿嘿
linux的20+条基本指令(未完待更新)_第15张图片

touch指令、stat指令

这两个指令我选择一起介绍。
stat指令功能:查看文件或者目录的各种属性。
linux的20+条基本指令(未完待更新)_第16张图片
在文件或者目录的后面可以发现有Access、Modify、Change.这代表什么含义?
linux的20+条基本指令(未完待更新)_第17张图片
写上面这个的时候,还没有测试stat可以显示目录的各种属性,所以只写了文件的。如果显示目录的属性,这三个代表的含义是一样的。

【touch指令】
touch指令的功能:

  • 1.新建一个文件
  • 2.修改文件或者目录的Access、Modify、Change时间
    linux的20+条基本指令(未完待更新)_第18张图片
    【常用选项】
  • -a:修改Access、Change时间,和它等效的选项有:–time=access、–time=use、–time=atime
  • -c:不创建任何文件
  • -m:修改Modify、Change时间,和它等效的选项有:–time=modify、–time=mtime
  • -f:这个参数会忽略不处理
  • -t:使用指定的时间
  • -d:使用指定的时间
    对于-d选项,可以使用字符串指定当日的某个时间,这个时间将作为Access和Modify时间。使用格式为:
    touch -d "时间字符串 文件或目录"
    等价于
    touch --date="时间字符串" 文件或目录

linux的20+条基本指令(未完待更新)_第19张图片linux的20+条基本指令(未完待更新)_第20张图片

mkdirt指令

格式:
在这里插入图片描述
基本功能:在当前的目录下新建一个空目录。
【常用选项】

  • -p:增加-p后,目录名处可以是一条路径,而这条路径上某些目录还不存在,系统会自动建立这些目录,即如果目录不存在可以一次建立多个目录。
    linux的20+条基本指令(未完待更新)_第21张图片

rmdir和rm指令

mkdir指令可以新建一个目录,而rmdir则可以删除一个目录。
格式:
在这里插入图片描述
功能:删除一个空目录。
【常用选项】

  • -p:如果子目录删除后,它的父目录也变成了空目录,那么就会把父目录一起删掉。

在这里插入图片描述

rmdir只可以删除空目录,而rm即可以删除目录,也可以删除文件。
格式:
在这里插入图片描述
功能:删除文件或者目录。
【常用选项】

  • -r:删除目录及该目录下的所有目录及文件
  • -f: 即使文件属性为只读(即写保护),亦直接删除,不需要系统提示
  • -i:删除文件或者目录之前,逐一进行询问

man指令

有些指令、函数等我们是不可能完全记住的,反正我是不能的。所以linux提供了手册,如果你忘记了或者不了解,可以通过查询手册。
查询手册的指令为:man
格式:
在这里插入图片描述
例如:

[YDY@VM-0-2-centos test_commands]$ man touch

则会进入这个页面
linux的20+条基本指令(未完待更新)_第22张图片
linux的20+条基本指令(未完待更新)_第23张图片
这些东西这么多,如果存放在一个手册里不是非常地好,所以手册又被分成了几个部分。

1号手册:可执行程序或 shell 命令
2号手册:系统调用(内核提供的函数)
3号手册:库调用(程序库中的函数)
4号手册:特殊文件(通常在 /dev 中找到)
5号手册:文件格式和约定,例如 /etc/passwd
6号手册:游戏
7号手册:杂项(包括宏包和约定),例如 man(7)、groff(78号手册:系统管理命令(通常仅适用于 root 用户)
9号手册:内核例程 [非标准]

【常用选项】

  • -k:根据关键字搜索联机帮助
  • -a 将所有章节的都显示出来,比如 man printf 它缺省从第一章开始搜索,知道就停止,用a选项,当按下q退出,他会继续往后面搜索,直到所有章节都搜索完毕
  • n:这个n就是手册号,指明在哪一个手册查找。

查询的时候最好指明在哪个手册查询,否则会默认在1号手册查询。
就比如:

[YDY@VM-0-2-centos ~]$ man printf //用户命令
[YDY@VM-0-2-centos ~]$ man 3 printf //库函数

如果你通过man没有查出来,有可能是在linux上没有这个,还有可能是没有安装man-pages,需要获得root的权限,这里选择切换到root用户进行安装

安装指令:yum install -y man-pages

help、type指令

在这之前有必要引入两个术语:内部命令、外部命令

内部命令:又可称为内建命令。它是shell程序的一部分,其中包含的是一些比较简单的linux系统命令,这些命令由shell程序识别并在shell程序内部完成运行,通常在linux系统加载运行时shell就被加载并驻留在系统内存中。


外部命令:linux系统中的实用程序部分,在系统加载时不随系统一起被加载到内存中,而是在需要时才将其调用内存。通常外部命令的实体并不包含在shell中,但是其命令执行过程是由shell程序控制的。

使用type指令即可查询某个指令为内建命令还是外部命令。
type
linux的20+条基本指令(未完待更新)_第24张图片

help指令,根据是查询内部命令还是外部命令,分出两种格式。
linux的20+条基本指令(未完待更新)_第25张图片
格式一用于查询内建命令;格式二用于查询外部命令。

如果你已经能够使用help查询内容,那么关于help的选项请自行找出来吧。

cp、mv指令

cp指令用于拷贝文件或目录到另一个文件或目录

在这里插入图片描述
说明:目标文件/目录必须已经存在。
【常用选项】

  • -f :强行复制文件或目录, 不论目的文件或目录是否已经存在。等效选项:–force
  • -i :覆盖文件之前先询问用户。等效选项:或 --force
  • -r递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
  • -R :递归处理,将指定目录下的文件及子目录一并处理。等效选项:–force

mv用于移动文件或重命名
在这里插入图片描述

目标文件/目录存在时,为移动文件。
目标文件/目录不存在时,为重命名。

linux的20+条基本指令(未完待更新)_第26张图片
【常用选项】

  • -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
  • -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖

cat、tac指令

cat用于正序输出文件内容。
tac用于逆序输出文件内容。
在这里插入图片描述

这两个指令,默认输出到标准输出流上,也就是显示器上。
linux的20+条基本指令(未完待更新)_第27张图片
【cat的常用选项】

  • -b :对非空输出行编号
  • -n :对输出的所有行编号
  • -s: 不输出多行空行

【拓展】
cat默认是输出到标准输出流,也就是显示器上。
那可不可以将一个文件输出到另一个文件里。当然是可以的!
可以使用重定向
重定向有三类:

  • 输出重定向,>
  • 输入重定向, <
  • 追加重定向, >>
    linux的20+条基本指令(未完待更新)_第28张图片
    linux的20+条基本指令(未完待更新)_第29张图片

more、less指令

当遇到一个文件内容很多时,一输出就很可能占满整个屏幕,非常的不方便,more和less就替我们处理了这一大烦心事。
more
在这里插入图片描述
用于查看文件内容,只输出能够在屏幕上显示的(所谓的分页显示),但是缺点,就是它只能够看接下来的文件内容(往下翻页)。

按空格键继续,q或者ctrl +c 退出。
按 ‘h’ 获取说明。

【常用选项】

  • -d :在底部显示帮助
  • -s:将多个连续的空格压缩为一个显示
  • +n:从第n行开始显示

less
在这里插入图片描述
用于分页显示,和more是一样的功能,但是less还支持向上翻页显示,所以相较于more而言,翻页查看更推荐less.

【常用选项】

  • -i 忽略搜索时的大小写
  • -N 显示每行的行号
  • /字符串:向下搜索“字符串”的功能
  • ?字符串:向上搜索“字符串”的功能
  • n:重复前一个搜索(与 / 或 ? 有关)
  • N:反向重复前一个搜索(与 / 或 ? 有关)

按空格键继续,q或者ctrl +c 退出。
按 ‘h’ 获取说明。

head、tail指令

head
在这里插入图片描述
功能:head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。
【常用选项】

  • -n:从文件开头打印n行

tail和head差不多

可以通过head打印开头的n行,也可以打印末尾的行,但是我偏偏想打印中间的,行不行呢?
当然可以啊!
思路是:取开头的n行放入一个临时文件,在使用tail取末尾的m行,这样就可以取到m-n行的文件内容了。

我要引入一个东西:管道|
生活当中,管道是做什么的呢?它是用来运输资源的。
而C++里的管道同样也是用来运输资源的。
linux的20+条基本指令(未完待更新)_第30张图片
这样就不用创建一个临时文件来保存,直接就可以输出在标准输出流,还可以输出到其他文件里。
linux的20+条基本指令(未完待更新)_第31张图片

date指令

date 指定格式显示时间: date +%Y:%m:%d
%Y的解释在下面列表。
date 用法:date [OPTION]… [+FORMAT]
1.在显示方面,使用者可以设定欲显示的格式,格式设定为一个加号后接数个标记,其中常用的标记列表如下

%H : 小时(00…23)
%M : 分钟(00…59)
%S : 秒(00…61)
%X : 相当于 %H:%M:%S
%d : 日 (01…31)
%m : 月份 (01…12)
%Y : 完整年份 (0000…9999)
%F : 相当于 %Y-%m-%d

2.在设定时间方面

date -s //设置当前时间,只有root权限才能设置,其他只能查看。
date -s 20080523 //设置成20080523,这样会把具体时间设置成空00:00:00
date -s 01:01:01 //设置具体时间,不会对日期做更改
date -s “01:01:01 2008-05-23″ //这样可以设置全部时间
date -s “01:01:01 20080523″ //这样可以设置全部时间
date -s “2008-05-23 01:01:01″ //这样可以设置全部时间
date -s “20080523 01:01:01″ //这样可以设置全部时间

3.时间戳

时间->时间戳:date +%s
时间戳->时间:date -d@1508749502
Unix时间戳(英文为Unix epoch, Unix time, POSIX time 或 Unix timestamp)是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒

cal指令

格式:cal 选项
功能:查看日历(公历)
如果没有指定选项,则默认查看当月的日历,并且以周六为每周的第一天
【常用选项】

  • -1:查看当月的日历。
  • -3:查看前一个月、当月、后一个月的日历
  • -s:以星期六作为每周的第一天
  • -m:以星期天作为每周的第一天
  • -j:按是每年的第几天显示
  • -y:显示一年的时间

未完待更新……

你可能感兴趣的:(笔记,linux)