Lunix 操作系统 基本指令(一)

一.ls指令

功能:对于⽬录,该命令列出该⽬录下的所有⼦⽬录与⽂件。对于⽂件,将列出⽂件名以及其他信息。

语法:ls 选项 目录或文件

这里的三个部分:

① ls命令本身。

选项告诉 ls你按照什么方式显示

例如:

1.ls -l

-l 就是选项。

目录或文件告诉 ls我要看哪个目录/文件

例如:

ls /home 查看 /home 目录。

2.ls -a

显示隐藏文件

Linux 中以 . 开头的文件通常是隐藏文件。

例如:

.

..

.bashrc

.config

test.txt

直接:ls

只能看到test.txt

使用ls -a就能看到全部

.表示当前目录

..表示上一级目录

3.ls -t

按照文件修改时间排序

通常最新修改的文件排在前面

4.ls -s

显示文件占用的块大小

它会在文件名前面显示文件占用的磁盘块大小

如果想找最大的文件

可以结合排序:

ls -lS

注意这里是大写 S。

它按照文件大小排序。

例如:

-rw-r--r-- ... 500M movie.mp4
-rw-r--r-- ... 100M test.zip
-rw-r--r-- ... 10M test.txt

5.ls -1

一行显示一个

这里是数字 1,不是字母 l。

正常:a.txt b.txt c.txt d.txt

使用ls -1

变成:

a.txt

b.txt

c.txt

d.txt

也就是一行一个文件

Linux 命令最大的特点之一就是多个选项可以组合起来。

例如:ls -al

就是:

-a → 所有文件

-l → 详细信息

所以ls -al

查看当前目录包括隐藏文件在内的详细信息。

二.pwd 命令

基本语法:pwd

没有选项,也没有参数。

执行pwd

例如得到:/home/whb/test

这就表示:你现在正在 /home/whb/test 这个目录里面。

三.cd 指令

语法: cd ⽬录名

功能:改变⼯作⽬录。将当前⼯作⽬录改变到指定的⽬录下

例如:

执行pwd

显示:/home/whb

假设当前目录下有:

/home/whb

├── test

├── code

└── abc

输入:cd test

就进入了 test。

再输入:pwd

结果:/home/whb/test

cd 后面可以使用相对路径也可以使用绝对路径

cd ..返回上一级目录

例如现在:/home/whb/test

执行:cd ..

再:pwd

得到:/home/whb

cd ../..连续返回两级

假设现在:/home/whb/test/code

执行:cd ../..

第一个 ..:/home/whb/test

第二个 ..:/home/whb

cd .:进入当前目录

. 表示当前目录

cd /:直接回到根目录

cd ~:回到当前用户的家目录

例如你的用户名是 whb:

cd ~就会进入/home/whb

~ 表示:当前用户的家目录

直接输入 cd不加任何目录。

它通常表示:回到当前用户的家目录。

和cd ~通常可以理解成同一个效果。

四.touch 指令

语法: touch 选项... ⽂件...

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

常⽤选项:

• -a : change only the access time

• -c : change only the modification time

例如:touch test.txt

如果当前目录不存在 test.txt

执行后就会创建一个文件:test.txt

touch 创建的是"空文件"

test.txt这个文件中没有任何内容

可以用ls -l test.txt查看:

-rw-r--r-- 1 whb whb 0 Aug 31 17:00 test.txt

0表示文件大小是 0 字节。

如果文件已经存在

不会把原来的文件内容清空,它主要会更新文件的时间属性

Linux文件中有两个时间:

Access Time(访问时间)

简称:atime

表示:文件最近一次被访问/读取的时间。

Modification Time(修改时间)

简称:mtime

表示:文件内容最近一次被修改的时间。

stat test.txt可以查看文件更详细的时间

Access: 2026-08-31 17:20:00

Modify: 2026-08-31 17:20:00

Change: 2026-08-31 17:20:00

touch -a:只修改访问时间

例如:touch -a test.txt

它会更新:Access Time

但是不会主动修改:Modification Time

touch -c:不创建新文件

Linux 中 touch -c 的主要作用是:
如果文件不存在,不创建文件。

如果文件已经存在,更新它的时间属性

touch 一次可以创建多个文件

例如:touch a.txt b.txt c.txt

一次创建三个文件:

a.txt

b.txt

c.txt

touch还可以指定路径

例如当前:/home/whb

下面有:test

你可以:touch test/a.txt

创建:/home/whb/test/a.txt

这里:test/a.txt就是一个相对路径。

也可以直接使用绝对路径:

touch /home/whb/test/b.txt

五.mkdir 指令

语法: mkdir 选项 dirname...

功能:在当前⽬录下创建⼀个名为 "dirname"的⽬录

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

六.rmdir 指令 && rm 指令

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

语法: rmdir -p dirName

适⽤对象:具有当前⽬录操作权限的所有使⽤者功能:删除空⽬录

常⽤选项:-p 当⼦⽬录被删除后如果⽗⽬录也变成空⽬录的话,就连带⽗⽬录⼀起删除。

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

语法: rm -f-i-r-v dirName/dir

适⽤对象:所有使⽤者功能:删除⽂件或⽬录

常⽤选项:

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

-i 删除前逐⼀询问确认

-r 删除⽬录及其下所有⽂件

七.man 指令

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

语法: man 选项 命令

常⽤选项:

-k 根据关键字搜索联机帮助

num 只在第num章节查找

-a 将所有章节的都显⽰出来,⽐如 man printf 它缺省从第⼀章开始搜索,知道就停⽌,⽤a选项,当按下q退出,他会继续往后⾯搜索,直到所有章节都搜索完毕

man 命令

我知道命令叫什么,但是不会用。

man -k 关键词

我连命令叫什么都不知道,只知道它大概是干什么的。

Linux 的 man 手册并不是所有内容都放在一起。

它分成了不同的章节(section)。

常见的章节:

1普通用户命令

2系统调用

3库函数

4特殊文件/设备文件

5配置文件、文件格式

6游戏

7杂项

8系统管理命令

man printf

系统会按照章节顺序寻找。

例如可能先找到:printf(1)

这是一个命令。

但是实际上 Linux 还有一个printf(3)

它是 C 语言相关的库函数。

所以:man printf

可能默认先找到第 1 章的 printf,找到以后就停止。

如果你明确知道我要看命令 printf。

可以:man 1 printf

表示:只在第 1 章寻找 printf。

man -a:查看所有章节

作用:把所有匹配的 man 手册都显示出来。

例如:man -a printf

可能先进入:printf(1)

你看完之后按:q

它不会直接结束,因为还有printf(3)

于是继续进入:printf(3)

你再按:q ,才会结束。

所以:man -a printf

就是:把 printf 在不同章节中的所有手册都查看一遍。

八.cp 指令

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

功能: 复制⽂件或⽬录

说明:

• cp指令⽤于复制⽂件或⽬录

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

常⽤选项:

-f 或 --force 强⾏复制⽂件或⽬录, 不论⽬的⽂件或⽬录是否已经存在

-i 或 --interactive 覆盖⽂件之前先询问⽤⼾

-r 递归处理,将指定⽬录下的⽂件与⼦⽬录⼀并处理。若源⽂件或⽬录的形态,不属于⽬录或符号链接,则⼀律视为普通⽂件处理

例如:cp a.txt b.txt

意思:把 a.txt 复制一份,叫做 b.txt。

原来:a.txt

执行后:

a.txt

b.txt

两个文件都存在。

假设:

/home/whb

├── a.txt

└── test

执行:cp a.txt test

Linux 会把 a.txt 复制到 test 目录里面。

变成:

test

└── a.txt

一次复制多个文件:

例如:

/home/whb

├── a.txt

├── b.txt

├── c.txt

└── test

执行:cp a.txt b.txt c.txt test

结果:

test

├── a.txt

├── b.txt

└── c.txt

注意:

最后一个test必须是已经存在的目录。

如果目标文件已经存在

假设:

a.txt

b.txt

现在:cp a.txt b.txt

如果 b.txt 已经存在,那么默认会覆盖 b.txt 的内容。

所以一定要注意:

源文件 → 目标文件

如果目标已经存在则可能被覆盖。

cp-i:覆盖之前先询问

为了防止误覆盖:

cp -i a.txt b.txt

如果 b.txt 已经存在,Linux 会询问:

cp: overwrite 'b.txt'?

这时候:

y

确认覆盖

n

不覆盖

cp-f:强制复制

cp -f a.txt b.txt

意思是:强制复制,必要时覆盖目标文件。

cp-r:递归复制目录

使用:cp -r test test2

原来:

test

├── a.txt

└── b.txt

执行:cp -r test test2

得到:

test

├── a.txt

└── b.txt

test2

├── a.txt

└── b.txt

九.mv 指令

mv命令是move的缩写,可以⽤来移动⽂件或者将⽂件改名(move (rename) files,经常⽤来备份⽂件或者⽬录

语法: mv 选项 源⽂件或⽬录 ⽬标⽂件或⽬录

功能:

1. 视mv命令中第⼆个参数类型的不同(是⽬标⽂件还是⽬标⽬录),mv命令将⽂件重命名或将其移⾄⼀个新的⽬录中。

2. 当第⼆个参数类型是⽂件时,mv命令完成⽂件重命名,此时,源⽂件只能有⼀个(也可以是源⽬录名),它将所给的源⽂件或⽬录重命名为给定的⽬标⽂件名。

3. 当第⼆个参数是已存在的⽬录名称时,源⽂件或⽬录参数可以有多个,mv命令将各参数指定的源⽂件均移⾄⽬标⽬录中。

常⽤选项:

-f :force 强制的意思,如果⽬标⽂件已经存在,不会询问⽽直接覆盖

-i :若⽬标⽂件 (destination) 已经存在时,就会询问是否覆盖

十.cat 指令

语法: cat 选项 ⽂件

功能: 查看⽬标⽂件的内容

常⽤选项:

-b 对⾮空输出⾏编号,空⾏不做编号

-n 对输出的所有⾏编号

-s 不输出多⾏空⾏

例如:

cat test.txt

假设 test.txt 里面有:

hello

linux

world

执行:cat test.txt

终端就会显示:

hello

linux

world

也就是说cat 会把文件中的内容读取出来,并显示在屏幕上。

-n:给所有行编号

语法:cat -n test.txt

假设原文件:

hello

linux

world

执行:cat -n test.txt

可能显示:

1 hello

2 linux

3

4 world

注意:空行也会编号

-b:只给非空行编号

执行:cat -b test.txt

原文件:

hello

linux

world

显示:

1 hello

2 linux

3 world

-s:压缩多余的空行

假设文件里面有很多连续空行:

hello

linux

world

这里可能存在连续的多个空行。

执行:cat -s test.txt

会把连续的多行空行压缩。

显示效果类似:

hello

linux

world

也就是说:
多个连续空行 → 压缩成一个空行。

而且多个选项还可以组合使用

例如:

cat -ns test.txt

意思:-n 给所有行编号,同时 -s 压缩连续空行。

相关推荐
oushaojun21 小时前
大厂 C++ 后端面试:深度拆解 Linux页表 机制(转)
linux
励志不掉头发的内向程序员1 小时前
【LibreCAD 2D架构】从鼠标点击到屏幕像素:LibreCAD绘图架构全链路解析之Action与命令系统
linux·开发语言·c++·qt·学习·系统架构
fengyehongWorld1 小时前
Linux caddy的安装与配置
linux·运维·服务器
晚风叙码1 小时前
Linux(三)apt/yum 软件安装与 vim 编辑器入门指南
linux·编辑器·vim
洪流之源1 小时前
Windows 远程 Ubuntu 24.04 桌面
linux·windows·ubuntu
2401_862880821 小时前
Linux应用层开发 --- HTTP
linux·运维·http
s_w.h1 小时前
【 linux 】线程互斥与同步
java·linux·服务器·开发语言
可爱系程序猿2 小时前
libcrypto-3-x64.dll 加载失败排查:OpenSSL 3 版本、PATH 顺序与 x64 依赖如何对应
linux·运维·服务器·程序人生·电脑
zbyyd2 小时前
Linux 网络编程:IO 多路复用
linux·运维·c语言·网络