《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能有所收获!

相关推荐
慵懒的猫mi39 分钟前
deepin 25部署x11vnc+xrdp,实现vnc和mstsc双重访问
linux·windows·开源软件·deepin
剑神一笑2 小时前
Linux lsof 命令深度解析:从文件描述符到进程追踪
linux·运维·php
andlbds2 小时前
解决Ubuntu20.04进入系统卡死在厂商Logo界面问题
linux·ubuntu
MIXLLRED2 小时前
解决: Ubuntu 22.04上树莓派4B扩展板ROS2兼容性修复指南
linux·ubuntu·树莓派
zizle_lin2 小时前
CentOS配置yum源
linux·运维·centos
武器大师723 小时前
从零开始在 Linux 上编译运行 lvgljs 图形界面项目
linux·运维·服务器
剑神一笑3 小时前
Linux free 命令深度解析:从内存监控到 OOM 排查的完整指南
linux·运维·服务器
似水এ᭄往昔3 小时前
【Linux网络编程】--计算机网络基础
linux·网络·计算机网络
leaves falling3 小时前
深入理解Linux进程控制:从fork到exec,手写一个迷你Shell
linux·运维·服务器
思麟呀4 小时前
C++工业级日志项目(七)日志器核心
linux·开发语言·c++·windows