Linux中的基本指令(上)

发布于:2025-03-13 ⋅ 阅读:(10) ⋅ 点赞:(0)

目录

ls指令

判断linux中文件

pwd指令

认识路径

​编辑

绝对路径/相对路径

cd指令

简要理解用户

理解家目录

echo指令和printf指令

touch指令

mkdir指令

cat指令

tree指令

rmdir指令和rm指令

man指令

cp指令

which指令

alias 指令

date指令

cal指令

理解文件


今天我们正式开启我们的linux之旅!

我们先从指令开始!

ls指令

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

功能:对于目录,显示该目录下的所以子目录和文件,对于文件,列出文件名以及其他信息。

常⽤选项:

  • -a列出⽬录下的所有⽂件,包括以.开头的隐含⽂件。
  • -l列出⽂件的详细信息
  • -d将⽬录像⽂件⼀样显⽰,⽽不是显⽰其下的⽂件。如:ls‒d指定⽬录
  • -i输出⽂件的i节点的索引信息。如ls‒ai指定⽂件
  • -k以k字节的形式表⽰⽂件的⼤⼩。ls‒alk指定⽂件
  • -r对⽬录反向排序
  • -R列出所有⼦⽬录下的⽂件。(递归)
  • -s在l⽂件名后输出该⽂件的⼤⼩。(⼤⼩排序,如何找到⽬录下最⼤的⽂件)
  • -1⼀⾏只输出⼀个⽂件。
  • -t以时间排序
  • -F在每个⽂件名后附上⼀个字符以说明该⽂件的类型,“*”表⽰可执⾏的普通⽂件;“/”表⽰ ⽬录;“@”表⽰符号链接;“|”表⽰FIFOs;“=”表⽰套接字(sockets)。(⽬录类型识别)

我们来演示以下:

当然我们的命令行选项可以组合使用:

判断linux中文件

在windows中我们常常看文件的后缀(.txt,.zip,.c等)来区分文件,而在linux中我们不看后缀来区分文件,简单来说,linux不关心文件后缀!

我们来看看怎么来区分linux中的文件:

pwd指令

语法:pwd

功能:显示用户当前路径

如:

认识路径

  • Linux系统中,磁盘上的⽂件和⽬录被组成⼀棵⽬录树,每个节点都是⽬录或⽂件
  • 其中普通⽂件⼀定是⽬录树的叶⼦节点
  • ⽬录可能是叶⼦(空⽬录),也可能是路上节点
  • 理解路径存在的意义:树状组织⽅式,都是为了保证快速定位查找到指定的⽂件,⽽定位⽂件就 需要具有唯⼀性的⽅案来进⾏定位⽂件。其中任何⼀个节点,都只有⼀个⽗节点,所以,从根⽬ 录开始,定位指定⽂件,路径具有唯⼀性。

目录树:

绝对路径/相对路径

绝对路径:⼀般从/开始,不依赖其他⽬录的定位⽂件的⽅式。

绝对路径⼀般不会随着⽤⼾的路径变化⽽丧失唯⼀性,⼀般在特定服务的配置⽂件中经常被使⽤

如:

相对路径:相对于当前⽤⼾所处⽬录,定位⽂件的路径⽅式。

相对路径因为它的便捷性,⼀般在命令⾏中使⽤较多。

如:

解释:

进一步解释:

我们不难发现不管哪个目录(哪怕是空目录)都有 . 和 . . 文件。

cd指令

语法:cd 指定路径

功能:改变工作目录

接上之前理解:

cd - :去最近的路径。

如:

简要理解用户

每⼀次新建⼀个用户都会在 /home ⽬录下为新用户创建新的⼯作⽬录,⽬录以新用户名称命名,而root用户在安装操作系统的时候,就已经内置了工作⽬录 : /root

理解家目录

我们知道 . 代表当前目录,. . 代表上一级目录,现在 ~ 代表家目录!

任何一个linux用户,用某个用户登陆linux系统时,默认在家目录下!

echo指令和printf指令

语法:echo  ....

功能:打印后续内容(将后续内容当作字符串)

但是printf和echo还有不同,printf没有如果不加\n,就没有换行,而echo是默认换行!

touch指令

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

功能:touch命令参数可更改⽂档或⽬录的⽇期时间,包括存取时间和更改时间,或者新建⼀个不存在的⽂件。(只能新建普通文件,不能新建文件夹)

  • -a:change  only  the  access  time
  • -c:change  only  the   modification   time

如:

mkdir指令

语法:mkdir  [选项]  dirname

功能:在当前目录下创建⼀个名为“dirname”的目录

常用选项:

  • -p/--parents: 可以是⼀个路径名称。此时若路径中的某些⽬录尚不存在,加上此选项后,系统将⾃ 动建⽴好那些尚不存在的⽬录,即⼀次可以建⽴多个⽬录。

例子:

cat指令

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

功能:查看文件的内容

常用选项:

  • -b对⾮空输出⾏编号
  • -n对输出的所有⾏编号
  • -s不输出多⾏空⾏

tree指令

语法:tree 路径

功能:显示该路径下的所有文件

例子:

rmdir指令和rm指令

rmdir是⼀个与mkdir相对应的命令,mkdir是建⽴⽬录,⽽rmdir是删除命令。

语法:rmdir  [选项] dirname 

功能:删除目录

常用选项:

  • -p当⼦⽬录被删除后如果⽗⽬录也变成空目录的话,就连带父目录⼀起删除。

例子:

注意:rm命令可以同时删除⽂件或⽬录

rm常用选项:

  • -f即使⽂件属性为只读(即写保护),亦直接删除
  • -i删除前逐⼀询问确认
  • -r删除⽬录及其下所有⽂件

例子:

man指令

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

语法:man [选项]  dirname

常用选项:

  • -k根据关键字搜索联机帮助
  • num只在第num章节查找
  • -a将所有章节的都显⽰出来,⽐如manprintf它缺省从第⼀章开始搜索,知道就停⽌,⽤a选 项,当按下q退出,他会继续往后⾯搜索,直到所有章节都搜索完毕

解释⼀下:man⼿册分为9章(不同系统可能会有差别)

  • 1是普通的命令
  • 2是系统调⽤,如open,write之类的(通过这个,⾄少可以很⽅便的查到调⽤这个函数,需要加什么 头⽂件)
  • 3是库函数,如printf,fread4是特殊⽂件,也就是/dev下的各种设备⽂件
  • 4是包含设备文件、文件格式和约定等信息。设备文件通常位于/dev目录下,代表系统中的硬件设备或特殊文件。文件格式和约定则描述了特定类型文件的格式和结构。
  • 5是指⽂件的格式,⽐如passwd,就会说明这个⽂件中各个字段的含义
  • 6是给游戏留的,由各个游戏⾃⼰定义
  • 7是附件还有⼀些变量,⽐如像environ这种全局变量在这⾥就有说明
  • 8是系统管理⽤的命令,这些命令只能由root使⽤,如ifconfig
  • 包含内核例程、核心数据结构和重要的设备驱动程序等

例子:

cp指令

语法:cp [ 选项 ] 源⽂件或⽬录 ⽬标⽂件或⽬录

功能:复制⽂件或⽬录

常用选项:

  • -f或--force强⾏复制⽂件或⽬录,不论⽬的⽂件或⽬录是否已经存在
  • -i或--interactive 覆盖⽂件之前先询问⽤户
  • -r递归处理,将指定⽬录下的⽂件与⼦⽬录⼀并处理。若源⽂件或⽬录的形态,不属于⽬录或符 号链接,则⼀律视为普通⽂件处理

说明:

  1. cp指令⽤于复制⽂件或⽬录
  2. 如同时指定两个以上的⽂件或⽬录,且最后的⽬的地是⼀个已经存在的⽬录,则它会把前⾯指定 的所有⽂件或⽬录复制到此⽬录中

例子:

单个文件拷贝:

多个文件拷贝:

目录拷贝:

覆盖:

which指令

语法:which  指令名

功能:搜索系统指定的命令

例子:

alias 指令

功能:设置命令的别名

date指令

指定格式显⽰时间: date +%Y:%m:%d

⽤法: date [OPTION]... [+FORMAT]

在显⽰⽅⾯,使⽤者可以设定欲显⽰的格式,格式设定为⼀个加号后接数个标记,其中常⽤的标记 列表如下:

在设定时间⽅⾯:

时间戳:

  • 时间->时间戳:date+%s
  • 时间戳->时间:date-d@1508749502
  • Unix时间戳(英⽂为Unixepoch,Unixtime,POSIXtime或Unixtimestamp)是从1970年1⽉1 ⽇(UTC/GMT的午夜)开始所经过的秒数,不考虑闰秒

例子:

cal指令

cal命令可以⽤来显⽰公历(阳历)⽇历。公历是现在国际通⽤的历法,⼜称格列历,通称阳历。“阳 历”⼜名“太阳历”,系以地球绕⾏太阳⼀周为⼀年,为西⽅各国所通⽤,故⼜名“西历”。

语法:cal 参数 [ 年份 ]

功能:⽤于查看⽇历等时间信息,如只有⼀个参数,则表⽰年份(1-9999),如有两个参数,则表⽰⽉份 和年份

常⽤选项:

  • -3显⽰系统前⼀个⽉,当前⽉,下⼀个⽉的⽉历
  • -j 显⽰在当年中的第⼏天(⼀年⽇期按天算,从1⽉1号算起,默认显⽰当前⽉在⼀年中的天数)
  • -y 显⽰当前年份的⽇历

例子:

理解文件

学习了上面的指令,我们对linux中的文件有了基本认识!

我们可以知道一个目录其实就是一个文件夹,这个文件夹里面可以继续有目录(文件夹)或者普通文件!

目录==文件夹!

继续理解:

如果建立一个空文件,这个空文件也会占据磁盘空间!因为它还有属性(文件名,建立时间等)

文件==属性+内容!

所有我们现在学习文件,不是对文件属性操作就是对内容操作!

继续深入理解:

其实Linux中的指令也是文件!

图理解:

甚至我们可以自己写一个C/C++文件当指令:

由于内容过多,我们下期见!