【Linux笔记】基本指令(一)

时间:2024-04-26 07:51:36

一道残阳铺水中

半江瑟瑟半江红


目录

Linux基本指令

罗列目录内容:ls 指令

显示当前目录位置信息:pwd 指令

切换工作目录:cd 指令

创建文件修改时间戳:touch指令 

创建空目录:mkdir指令 

删除空目录:rmdir指令 

删除非空目录或文件:rm指令 

查手册:man指令

复制文件或者目录:cp指令 

记事本的编辑:nano指令 

Linux基本指令

罗列目录内容:ls 指令

概念:罗列当前目录下的指定文件或者目录

格式:

ls (空格)[-选项][目录或文件]
例如 :ls -a tank.txt
注意:
  • 个别命令使用不遵循此格式。比如:直接使用  ls 或者 不写入文件或者目录
  • 当有多个选项时,可以写在一起。比如:ls -la
常用选项:
ls :罗列当前目录的内容
ls -l :查看详细信息,元素数据信息(用户、组、大小、创建时间、权限信息、文件类型) 
ls -a :查看所有文件包括隐藏文件 ( . 开头的文件
ls -al 或者 ls -la (指令的顺序随意):两个指令的功能并用,查看所有文件的详细内容

为了更好的观察目录下的文件名我们这里安装了 tree 进行展示:

安装指令

yum install -y tree

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

(跟数据结构知识的联系)

这样我们就具体的知道当前目录下有哪些文件 

格式: tree[路径]

我们这里的 . 表示在当前路径下


ls 罗列当前目录的内容

这样当前目录下的目录信息和文件信息都对的上了

ls -l 查看详细信息,元素数据信息

我们这里可以看到看到:用户、组、大小、创建时间、权限信息、文件类型的详细信息

不写目录或者文件名表示查看所有信息,当然我们也可以指定查看具体文件的信息,比如:

这里就只显示了 tank.txt 文件的信息啦 ~

注意:因为这个指令非常常用所以 Linux 将 ls -l 简化成 ll

ls -a 查看所有文件包括隐藏文件

这里 . 表示当前路径,.. 表示上一级路径

ls -al 查看所有文件的详细内容

 ls 还有很多指令选项这里就不例举了 

-a 列出目录下的所有文件,包括以 . 开头的隐含文件。
-d 将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录
-i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件
-k 以 k 字节的形式表示文件的大小。ls –alk 指定文件
-l 列出文件的详细信息。
-n 用数字的 UID,GID 代替名称。 (介绍 UID, GID)
-F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”表示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)。(目录类型识别)
-r 对目录反向排序。
-t 以时间排序。
-s 在l文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)
-R 列出所有子目录下的文件。(递归) 
-1 一行只输出一个文件。

显示当前目录位置信息:pwd 指令

概念:显示用户当前所在的目录

格式:

pwd
常用选项:无

Linux 下的 /符号 是路径分割符,而我们起始的目录 /root 称之为根目录  


切换工作目录:cd 指令

概念:改变工作目录,将当前工作目录改变到指定的目录下

格式:

cd 目录名

常用选项:

cd .. :返回上级目录
cd + 绝对路径:例如,/root/Mack/Tank
cd + 相对路径:例如,./Tank
cd ~:进入用户家目
cd - :返回最近访问目录

cd + 绝对路径

此时我们还在 root根目录 下,cd 之后就到了指定的路径下

绝对路径是从 /斜线根 开始的路径

 cd + 相对路径

相对路径是不从 /斜线 开始的路径,而是从当前目录或指定的目录开始

热键:

<1>在使用cd命令时,如果使用键盘上 Tab键 的自动补齐功能,可以提高输入速度和准确度

这个 Tab键 的自动补齐功能同样适用于其他命令

(是连续按两次哦~)

<2>在指令输错的时候,可以按 ctrl + c 进行终止

 cd ~ 进入用户家目

root 用户首次登录,所处的路径,叫做 root 的家目录

如下图首次登入的路径是 /root 就是家目录

 cd - :返回最近访问目录(返回上一级目录)


创建文件修改时间戳:touch指令 

概念:touch 命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件(我们这里主要讲创建文件

格式:

touch [选项] 文件名

选项:

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

创建一个文件

创建多个文件

注意:以上我们创建多个同名文件(一个数字之差),若我们想要查看这类文件的所有内容

我们可以 文件名* 进行访问 


创建空目录:mkdir指令 

概念:在当前目录下创建一个空目录

格式:
mkdir [选项] 文件名

常用选项:

mkdir -p :递归创建多个空目录

mkdir 创建一个空目录

mkdir -p 创建多个空目录

当前目录中创建了多个目录

当前目录往后依次进行创建(每个目录中创建一个空目录)

我们先进入 My目录 再递归创建 4 个空目录,然后 tree . 一下就知道创建是否成功

为什么是递归创建呢?原因是我们的 Linux 中文件和目录都是由一个树组成的

而树我们在数据结构中学过是递归创建的


删除空目录:rmdir指令 

概念:rmdir是一个与mkdir相对应的命令。mkdir是建立空目录,而rmdir是删除空目录

格式:

rmdir 文件名

常用格式:

rmdir -p :当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除

rmdir 删除空目录

rmdir -p 递归删除空目录

那怎么删除非空目录呢?我们这里引出一条指令 -- rm


删除非空目录或文件:rm指令 

概念:可以同时删除文件或目录

格式:

rm [选项] 文件名

常用选项:

rm -f 即使文件属性为只读 ( 即写保护 ) ,亦直接删除
rm -i 删除前逐一询问确认
rm -r : 删除目录及其下所有文件
rm -rf :直接删除当前目录下的所有内容

rm -r 递归删除目录及其以下所有文件(但是要询问,因为你是Boss,怕出错所以反复询问)

因为我的 dir1 中有一个 dir2 目录所以是非空目录

删除的时候要递归到最后一个目录,再回溯往前删除文件及目录

 rm -fr 递归删除目录及其以下所有文件(无需询问,直接删除)


查手册:man指令

安装 man指令 的代码

yum install -y man-pages

概念:Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助

格式:
 man [选项] 查询命令

常用选项:

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

手册的内容:

解释一下, 手册分为 8
1 是普通的命令
2 是系统调用 , open,write 之类的 ( 通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)
3 是库函数, printf,fread
是特殊文件, 也就是  /dev 下的各种设备文件
5 是指文件的格式, 比如  passwd, 就会说明这个文件中各个字段的含义
6 是给游戏留的, 由各个游戏自己定义
7 是附件还有一些变量, 比如向  environ  这种全局变量在这里就有说明
8 是系统管理用的命令, 这些命令只能由  root  使用, 如  ifconfig

以下举个例子~ 比如说我 C语言 中的 srtren函数 忘记了,想在 Linux 中查找资料 

当我输入完这条指令时,页面就会跳转到函数的简介

我们查询完毕,按 q 退出查询


复制文件或者目录:cp指令 

概念:将一个目录或者文件的内容拷贝到另一个目录或者文件上

格式:

cp [选项] 源文件或目录 目标文件或目录

常用选项:

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

说明:cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录, 则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息。

 cp 将源文件拷贝到目标文件中

cat -- 指令是查看文件内容

cp -r 将源目录拷贝到目标目录中

因为目录是树形结构,所以我们要递归拷贝~


记事本的编辑:nano指令 

安装记事本的代码

yum install -y nano

 格式:

nano [文件名][后缀]

我这里举个栗子~

我们输入 nano指令 并创建好文件后就会进入编辑界面

在这个地方按 clrt+x键 之后,按 Y + enter(回撤)就能退出编辑

如果想要运行还需要安装我们的 gcc 编译器:

gcc 编译器的安装指令

sudo yum install gcc

然后编译链接运行即可~