《Linux系统编程》Linux指令 (二):从零开始理解Linux基础指令

🔥小叶-duck个人主页

❄️个人专栏《Data-Structure-Learning》《C++入门到进阶&自我学习过程记录》
《Linux操作系统从入门到实践》
《算法题讲解指南》--优选算法
《算法题讲解指南》--递归、搜索与回溯算法
《算法题讲解指南》--动态规划算法

未择之路,不须回头
已择之路,纵是荆棘遍野,亦作花海遨游


目录

Linux基本指令

7、which命令

8、alias指令

9、man指令

10、echo指令

[10.1 重定向](#10.1 重定向)

[10.1.1 >(输入重定向)](#10.1.1 >(输入重定向))

[10.1.2 >>(追加重定向)](#10.1.2 >>(追加重定向))

[10.1.3 重定向深度用法](#10.1.3 重定向深度用法)

11、cp指令

12、mv指令

结束语


Linux基本指令

7、which命令

功能:搜索指定系统目录,显示指令对应的可执行文件路径。

实际案例

通过实操案例我们会发现对于一些指令而言,which只会显示其所在文件路径(如pwd),但对于有一些指令而言还会显示一个 alias 的东西(如ls、ll),那 alias 是什么呢?下面就为大家进行讲解。

8、alias指令

语法:alias xxxx='命令'

功能:设置命令的别名

完整语法

  • 设置:alias 别名='命令 选项'(等号前后无空格)
  • 查看:alias(列出所有别名)
  • 删除:unalias 别名
  • 取消所有别名:unalias -a

实际案例

这样我们就会发现上面的 which 指令中,ls 和 ll 都有 alias,所以我们不难知道:ls 和 ll 其实是指令的别名 ,而 ls 对应的是ls --color=auto 的别名,ll 对应的是ls -l --color=auto的别名。

这也解释了为什么上一篇文章我们讲解 ls -l 的时候说过可以不用敲这个指令,直接 ll 就可以,就是因为 ll 就是 ls -l 的别名。

9、man指令

Linux的命令有很多参数,我们不可能全记住,可以通过查看手册获取帮助
语法:man选项命令

常用选项

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

man手册分为9章(不同系统可能会有差别)

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

实际案例:

10、echo指令

功能:打印文本 / 变量,配合重定向创建 / 追加文件(含设备文件)。

10.1 重定向

10.1.1 >(输入重定向

(1)文件存在,先清空,再写入(覆盖,类似于"w",只写);

(2)(当前路径)文件不存在,新建文件。

实际案例:

10.1.2 >>(追加重定向

实际案例:

10.1.3 重定向深度用法

核心场景 :控制不同文件(普通文件 / 设备文件)的数据流。
实际案例

bash 复制代码
# 1. 合并多个文件到新文件
[root@VM-4-4-centos ~]$ cat a.txt b.txt > c.txt  # a和b内容合并到c

# 2. 输入重定向(<):从文件读入,替代键盘
[root@VM-4-4-centos ~]$ cat < untestd.txt > tested.txt  

# 3. 删除文件内容
[root@VM-4-4-centos lesson3]# cat mytest.txt
hello Lotso tech
[root@VM-4-4-centos lesson3]# >mytest.txt
[root@VM-4-4-centos lesson3]# cat mytest.txt
[root@VM-4-4-centos lesson3]# 

11、cp指令

功能 :复制文件或目录,源文件保留(类似 "复制粘贴")
语法:cp 选项 源代码或目录 目标文件或目录
说明

  • cp指令用于复制文件或目录
  • 如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中

常用选项

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

实际案例:

拷贝单一文件或目录:

拷贝一整个目录包括其中的所有文件:

12、mv指令

mv命令是move的缩写,可以用来移动文件或者将文件改名
语法:mv 选项 源文件或目录 目标文件或目录

功能:

  1. 视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。
  2. 当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。
  3. 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。

常用选项:

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

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

移动单一文件或者文件夹:

文件或者文件夹改名:

结束语

**掌握这些指令的选项和用法,结合 "一切皆文件" 的思想,你会发现 Linux 操作的逻辑一致性 ------ 无论是操作普通文件、终端设备(/dev/pts),还是硬件(/dev/sda),都能通过统一的指令和重定向实现。多动手练习,很快就能熟练应对日常操作。**希望对大家学习Linux能有所收获!

相关推荐
DigitalOcean37 分钟前
Omarchy 将研发基础设施迁移至 DigitalOcean 云平台
linux·agent
牢姐与蒯42 分钟前
Linux文件(一).前传之基础IO
linux·运维·服务器
码不停蹄Zzz1 小时前
linux驱动程序入门2
linux
ShineWinsu1 小时前
对于MySQL:内置函数的解析
linux·数据库·c++·mysql·面试·函数·查询
万物智能信息科技2 小时前
RK3568 的多路显示移植—【万物智能之开源鸿蒙OpenHarmony系统实战开发系列教程】
linux·开发语言·华为·开源·harmonyos
IT菜鸟程2 小时前
Ubuntu 下 apt 版 Nginx 升级为源码编译版本完整操作指南(1.24.0 → 1.30.4 实战)
linux·nginx·ubuntu
新时代牛马2 小时前
Linux 磁盘管理:分区、文件系统、挂载与扩容
linux·运维·服务器
weixin_402486343 小时前
VS Code Codex/Claude Extension 无法安装 / 无法正常打开
linux·服务器·vscode
奋斗的阿狸_19863 小时前
ch32v003j4m6+ws2812b方案2:规划引脚定义
linux
Mr-Apple3 小时前
系统找不到指定的文件-CreateInstance/CreateVm/HCS/ERROR_FILE_NOT_FOUND
linux·windows·ubuntu·wsl