【Linux网络编程】--- Linux基本指令(上)

Welcome to 9ilk's Code World

(๑•́ ₃ •̀๑) 个人主页: 9ilk

(๑•́ ₃ •̀๑) 文章专栏: Linux网络编程



🏠 ls命令

语法 : ls -[选项] [目录或文件]

功能 : 对于目录,该命令列出该目录下的所有子目录与文件;对于文件,将列出文件名以及其他信息.

📌 常见选项

  • -l选项 : 列出文件的详细信息
  • -a选项:列出目录下的所有文件,包括以.开头的隐含文件。
  • -d选项:将目录像文件一样显示,而不是显示其下的文件。如:ls -d 指定目录。

-l 与 -d选项的区别: -d选项是不进入目录,只是查看目录自己;而-l选项会默认打印目录里面的内容

注 : 命令中的选项是可以一次传递多个的,选项可以拼接在一起,顺序随意.(但并不是什么选项都可以随便组合,有的选项组合并无意义)。同时还要注意选项之间的空格可以一个或多个,建议一个空格相隔美观些。

  • -n选项:用数字的UID,GID代替名称。

Linux系统中,每个用户的ID细分为两种,分别是用户ID(User ID,简称UID)和组ID(Group ID),这与文件有拥有者和所属组两种属性有关,我们后面涉及再详细赘述.

  • -R选项:列出所有子目录下的所有文件。
  • -t选项:以时间排序文件并呈现出来。
  • -m选项:将显示所有文件和目录,以逗号分隔。

📌 补充知识

1.在Linux中,以.开头的文件,我们叫做隐藏文件(这个隐藏文件有各种类型)。

证明:我们可以手动创建一个以.开头的目录/文件,再使用ls -a选项查看,如果能查到说明就是隐藏文件。

对应的Windows系统中也有隐藏文件:

2. 文件 = 文件内容(本质是数据) + 文件属性(数据),对文件进行操作,无法就是对文件的内容和属性进行操作。(比如新建一个空文件,其实也是占据空间的,这个空间就是给文件名,类型,修改时间等文件属性的,他们本质也是数据)

注 : d开头的是目录,而-r开头表示普通文件类型(文本文件就是普通文件的一种)。

3.ls -选项 + 指定目录 ,不加就是默认当前目录下的内容.

🏠 pwd命令

语法 : pwd

功能 : 显示用户当前所在目录/当前工作路径

  • Windows路径
  • Linux路径

我们可以得到结论:

1. 在Windows系统中\作为路径分隔符,而在Linux系统中/作为路径分隔符。

2.一条路径 == 文件夹(目录) 和 路径分隔符相结合。得到一个路径就能找到指定文件,所以路径本质是用来定位一个文件的。

注:对于Linux系统中/root中的第一个/并不是路径分隔符,而是表示Linux中的根目录!

🏠 cd命令

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

语法 : cd 目录名/路径

功能 : 改变当前工作目录,将当前工作目录改变到指定(路径)的目录下

📌 .和..

说明:.和..是两个特殊目录,其中.表示的是当前目录,而..表示的是上级目录。

我们通常使用cd ..来进行简单的路径回退,也就是回退到上一级目录。

证明.和..分别是当前目录和上级目录。

📌 根目录

我们可以发现/是d开头,说明路径开头的/并不是分隔符,而是代表根目录。

根目录/是目录,它也可以放普通文件,也可以放目录;/里面的目录也可以放普通文件和目录

---> 这也能推导出Linux的目录结构整体是一个多叉树结构。

📌 cd -和 cd ~

  • cd -

cd - 作用是跳转至最近的上一次路径。

  • cd ~跳转至家目录

家目录:

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

2.普通用户首次登录所处的路径,叫做普通用户的家目录。

如下图:

🏠 tree命令

📌 tree命令使用和安装

  • 使用

语法 : tree

  • 安装
bash 复制代码
 yum install -y tree

📌 理解树形结构

1. 我们前面推测出Linux目录结构是一颗多叉树结构,而这个多叉树的叶子节点一定是空目录或者普通文件。

2.任何一个父节点,可能存在多个子节点(一个目录下包含多个子目录和文件);

任何一个子节点,一定只有一个父节点。(多个子目录/文件包含在同一级目录下)

3.我们从根目录开始定位一个文件,那为什么路径可以定位一个文件呢?原因是路径具有唯一性。

4.相对路径 vs 绝对路径

(1) 什么是当前路径?

图中的../test.cc就代表一个相对路径,我们可以看到相对路径是相对于当前路径的.

相对路径特殊符号有以下几种表示意义:

◆以"./"开头,代表当前目录和文件目录在同一个目录里,"./"也可以省略不写!

◆以"../"开头:向上走一级,代表目标文件在当前文件所在的上一级目录;

◆以"../../"开头:向上走两级,代表父级的父级目录,也就是上上级目录,再说明白点,就是上一级目录的上一级目录。

◆以"/"开头,代表根目录。

注意 : 类似下图的路径其实是绝对路径!因为并没相对于当前路径。

(2) 使用场景

a. 一般命令行操作的时候,比较喜欢用相对路径(当当前路径变化时,就不好找指定文件)。

b.绝对路径,在任何路径,都能找到指定的文件(配置文件中使用)。

5. Linux下,任何一个目录都有.和..,新建的空目录也是如此

因此对于普通目录.相当于一个指针指向当前目录,..相当于一个指针指向上级目录(这也是为什么cd..能回到上级目录的原因);特别的,根目录的.和..都指向自己。

总结:

Linux目录结构是一个多叉树的树形结构,每个父节点对应多个子节点(一个目录对应多个子目录和文件),该多叉树的叶子节点一定是普通文件或空目录,由于父节点和子节点是一对多的关系,因此父节点和子节点的组合使得路径唯一,同时每个节点包含的.和..使得目录树实现线索化进行回退和进入。

🏠 touch命令

语法 : touch [选项]... [文件]...

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

  • touch + 文件名,如果文件不存在则新建空白文件,否则修改该文件属性为当前时间。
  • touch命令以空格为分隔符可以一次创建多个文件,已存在的文件修改时间,未存在的则新建空白文件。
  • -t选项可以使用指定的日期时间,而非现在的时间。文件存在则修改时间属性,否则新建。

🏠 mkdir命令

语法 : mkdir [选项] dirname..。
功能 : 在当前目录下创建一个名为"dirname"的目录。

  • mkdir默认在当前路径下创建新目录,当然也可以使用相对路径和绝对路径实现指定路径新建目录。

注 : 使用mkdir指令新建目录时不能新建同名已存在的目录。

  • mkdir默认不能创建一串路径,需要层层创建。
  • mkdir -p:-p选项支持创建一串路径。-p后面可以是一个路径名称,此时若路径中某些目录尚不存在,加上此选项后,系统将自动建立号那些尚不存在的目录,即一次创建多个目录。
  • 删除空目录可以使用rmdir,但是rmdir删除不了普通文件和非空目录。

🏠 rm命令

语法 : rm [选项] [dirname/file]

功能 :删除文件或目录

  • rm命令可以删除普通文件
  • rm -r递归式删除非空目录
  • rm -rf 递归并强制删除非空目录

注意 :不能rm -rf /这样干,这样会尽可能从根目录开始把树的所有目录删除掉。

📌 通配符

Linux中*为通配符,表示任意内容。

📌 nano

nano是Linux中的一个笔记本,编辑完之后ctrl + x再回车就退出了。

bash 复制代码
yum install -y nano //安装nano

🏠 man命令

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

语法 : man [选项] 命令

  • man手册分为八章

1 : 是普通的命令。

2 : 是系统的调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加说明头文件)。

3 : 是库函数,如printf,fread是特殊文件,也就是/dev下的各种设备文件。

5 : 是指文件的格式,比如passwd,就会说明这个文件中各个字段的含义。

6 : 是给游戏留的,由各个游戏自己定义。

7 : 是附件还有一些变量,比如向environ这种全局变量在这里就有说明

8 : 是系统管理用的命令,这些命令只能由root使用,如fconfig。

  • man默认查的是一号手册,从一号开始,查到就停止,在linux中printf也是一条指令。
  • man手册安装
bash 复制代码
yum install -y man pages
  • -a 将所有章节的都显示出来,比如 man printf 它缺省从第一章开始搜索,知道就停止,用a选项,当按下q退出,他会继续往后面搜索,直到所有章节都搜索完毕。

🏠 cp命令

语法 :cp [选项] 源文件或目录 目标文件或目录。(也可结合相对和绝对路径使用)

功能 :复制文件或目录。

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

  • 拷贝文件会将目标文件原有内容覆盖
  • 拷贝非空目录到空目录 需要使用**-r** 选项进行递归式拷贝

注 : 首次递归式拷贝完之后再次进行同样的拷贝,此时强制覆盖可以使用cp -rf,但是root用户不允许强制覆盖会有询问,普通用户可以。

🏠 mv命令

mv是move的缩写,可以用来移动文件或者将文件改名(move(rename)files),是Linux系统下常用的命令,经常用来备份文件或者目录。

语法 :mv [选项] 源文件或目录 目标文件或目录。

  • 当mv命令第二个参数是文件时,mv命令会完成文件重命名,此时源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。
  • 当第二个参数是已存在的目录名称(路径)时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中,相当于实现了"剪切"操作。
  • 结合前两点,可以实现对目录/文件剪切和重命名。

🏠 cat命令

语法 : cat [选项] [文件]

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

📌 常用选项

  • - n : 对输出的所有行编号。(对空行也编号)
  • - s : 不输出多行空行,也就是会合并连续空行
  • - b : 只对非空输出行进行编号。

注 : cat的命令之间也可以进行组合。

📌 补充知识

  • cat是实现正序打印,若要实现逆序打印,我们可以使用tac,但要注意它是针对行的逆序而不是每一行内容都逆序。
  • cat后不带指令和目标文件,默认是从标准输入(键盘)读取,然后把内容显示到显示器上,要退出这个模式可以ctrl c或ctrl d。

本篇博客我们认识了Linux的一些基本指令,下篇博客我们继续了解一些常用指令和一些涉及的知识。

相关推荐
ac.char3 分钟前
在 Ubuntu 上安装 Yarn 环境
linux·运维·服务器·ubuntu
敲上瘾3 分钟前
操作系统的理解
linux·运维·服务器·c++·大模型·操作系统·aigc
长弓聊编程21 分钟前
Linux系统使用valgrind分析C++程序内存资源使用情况
linux·c++
cherub.29 分钟前
深入解析信号量:定义与环形队列生产消费模型剖析
linux·c++
梅见十柒1 小时前
wsl2中kali linux下的docker使用教程(教程总结)
linux·经验分享·docker·云原生
Koi慢热1 小时前
路由基础(全)
linux·网络·网络协议·安全
传而习乎1 小时前
Linux:CentOS 7 解压 7zip 压缩的文件
linux·运维·centos
我们的五年1 小时前
【Linux课程学习】:进程程序替换,execl,execv,execlp,execvp,execve,execle,execvpe函数
linux·c++·学习
IT果果日记2 小时前
ubuntu 安装 conda
linux·ubuntu·conda
Python私教2 小时前
ubuntu搭建k8s环境详细教程
linux·ubuntu·kubernetes