【Linux指令 (二)】不止于入门:探索Linux系统核心与指令的深层逻辑,理解Linux系统理论核心概念与基础指令

🔥艾莉丝努力练剑:个人主页

专栏传送门:《C语言》《数据结构与算法》C/C++干货分享&学习过程记录Linux操作系统编程详解笔试/面试常见算法:从基础到进阶

⭐️为天地立心,为生民立命,为往圣继绝学,为万世开太平


🎬艾莉丝的简介:


🎬艾莉丝的Linux专栏简介:


目录

前言

[1 ~> 艾莉丝的致歉](#1 ~> 艾莉丝的致歉)

[2 ~> 艾莉丝的解决措施](#2 ~> 艾莉丝的解决措施)

[3 ~> 关于本篇博客相较前文改动的一些补充](#3 ~> 关于本篇博客相较前文改动的一些补充)

前情提示

打破对指令的滤镜:揭秘指令的本质

[1 ~> 指令的本质](#1 ~> 指令的本质)

[2 ~> Linux中软件安装的本质](#2 ~> Linux中软件安装的本质)

[3 ~> 对下载和安装最朴素的理解是什么?](#3 ~> 对下载和安装最朴素的理解是什么?)

[4 ~> 快捷方式](#4 ~> 快捷方式)

[5 ~> Windows下的指令](#5 ~> Windows下的指令)

重定向

[1 ~> 概念 && 重定向是指令吗?](#1 ~> 概念 && 重定向是指令吗?)

[2 ~> 同一台云服务器不同账号之间利用重定向实现在Xshell中聊天](#2 ~> 同一台云服务器不同账号之间利用重定向实现在Xshell中聊天)

[1 ls(补充)](#1 ls(补充))

[1.8 (别名)ls VS ls -l VS ll](#1.8 (别名)ls VS ls -l VS ll)

[1.9 ls默认不带颜色,选项带颜色](#1.9 ls默认不带颜色,选项带颜色)

[1.10 登陆一次终端,新建一次文件](#1.10 登陆一次终端,新建一次文件)

[10 rm(补充)](#10 rm(补充))

[10.2 指令](#10.2 指令)

[10.2.6 (高能警告!!!)绝对路径删除目录:rm -rf *](#10.2.6 (高能警告!!!)绝对路径删除目录:rm -rf *)

[12 which(补充命令)](#12 which(补充命令))

[12.1 概念](#12.1 概念)

[12.2 举例](#12.2 举例)

[12.3 演示](#12.3 演示)

[13 alias](#13 alias)

[13.1 概念](#13.1 概念)

[13.2 举例](#13.2 举例)

[13.3 演示](#13.3 演示)

[14 man](#14 man)

[14.1 下载](#14.1 下载)

[14.1.1 Centos 7下载指令](#14.1.1 Centos 7下载指令)

[14.1.2 Ubuntu下载指令](#14.1.2 Ubuntu下载指令)

[14.1.3 Centos下载演示](#14.1.3 Centos下载演示)

[14.2 概念](#14.2 概念)

[14.3 博主手记](#14.3 博主手记)

[14.4 (重点)Linux下一切皆文件](#14.4 (重点)Linux下一切皆文件)

[14.3.1 显示器 && 键盘也是文件](#14.3.1 显示器 && 键盘也是文件)

[15 printf && fprintf && fwrite](#15 printf && fprintf && fwrite)

[16 echo](#16 echo)

[16.1 概念](#16.1 概念)

[16.2 演示](#16.2 演示)

[16.3 echo && 重定向](#16.3 echo && 重定向)

[16.4 > && < && >>](#16.4 > && < && >>)

[16.4.1 >](#16.4.1 >)

[16.4.2 <](#16.4.2 <)

[16.4.3 >>](#16.4.3 >>)

[16.5 博主手记](#16.5 博主手记)

[16.6 补充](#16.6 补充)

[17 cp](#17 cp)

[17.1 概念](#17.1 概念)

[17.2 指令](#17.2 指令)

[17.3 cp指令说明](#17.3 cp指令说明)

[17.4 常用选项](#17.4 常用选项)

[17.5 举例演示](#17.5 举例演示)

[18 mv](#18 mv)

[18.1 概念](#18.1 概念)

[18.2 特点](#18.2 特点)

[18.3 重命名](#18.3 重命名)

[18.4 功能](#18.4 功能)

[18.5 常用选项](#18.5 常用选项)

[18.5.1 -f](#18.5.1 -f)

[18.5.2 -i](#18.5.2 -i)

[18.6 举例](#18.6 举例)

结尾


前言

1 ~> 艾莉丝的致歉

博主在上篇博客中曾经说明了一下【Linux指令篇】的标题功能,在构思【Linux指令 (二)】和【Linux指令 (三)】的时候博主发现自己太草率了,所以在此再修正一下:指令依然会以阿拉伯数字"1234......"作为几个一级标题的索引序列号,但是因为会穿插很多操作系统的理论,为了保证能够将真正的干货输出给大家,必须要结合Linux操作系统的理论,鉴于这部分知识点整理之后的特殊情况,艾莉丝很可能不能保证正文部分连续的"1234......"的一级标题了,像上篇文章这样------

希望大家能够见谅!!!

2 ~> 艾莉丝的解决措施

艾莉丝估计大概再用两篇的篇幅就能把Linux指令部分的内容较为完整地呈现给大家了,再为大家重新按艾莉丝答应大家的阿拉伯数字索引指令的方式整理出一篇【Linux指令字典检索】类型的博客,鉴于艾莉丝的判断失误,那篇检索类型的博客就不求大家的三连啦!大家为了知识点的连贯性可以赏脸去看看!祝各位大佬武运昌隆,offer拿到手软!

3 ~> 关于本篇博客相较前文改动的一些补充

由于艾莉丝才疏学浅,前篇博客虽然详尽,但知识点还是难免有所疏漏,博主会按前文的阿拉伯数字索引,按顺序排布,补充到本文中,不会直接加到前文中了,大家不要担心,博主会在【检索】中把各篇中的补充重新插入到它应该所在索引中,大家届时参照【索引】即可!


前情提示



打破对指令的滤镜:揭秘指令的本质

1 ~> 指令的本质

指令的本质:只是Linux操作系统特点路径下的一个可执行文件(C/C++写的)罢了!

2 ~> Linux中软件安装的本质

Linux中,所谓的软件安装,就是把可执行程序拷贝到系统路径下。

3 ~> 对下载和安装最朴素的理解是什么?

比如我们下载到Windows的谷歌浏览器------

这样就找到啦------

4 ~> 快捷方式

桌面上创建了一些快捷方式------

快捷方式:替代输入路径,直接打开。

5 ~> Windows下的指令

Windows下的指令:shutdown。


重定向

1 ~> 概念 && 重定向是指令吗?

概念:从一个终端向另一个终端显示器写入。

重定向本身不是一条独立的指令(command),而是Shell提供的一种功能机制。

2 ~> 同一台云服务器不同账号之间利用重定向实现在Xshell中聊天


1 ls(补充)

1.8 (别名)ls VS ls -l VS ll

alias(别名)和C++里面的引用(取别名)很类似,这里就是用alias来把 ll 变成 ls -l 的别名,ls -l --color=auto中的。具体我们后面会介绍。

长选项:--;短选项:-。

1.9 ls默认不带颜色,选项带颜色

这里的ls带颜色,因为它是别名,默认是不带颜色的。

关系:这里ls 是 ll的别名(带颜色),ll命令是ls -l的别名

1.10 登陆一次终端,新建一次文件


10 rm(补充)

10.2 指令

10.2.6 (高能警告!!!)绝对路径删除目录:rm -rf *

要删除一个目录下的全部内容,可以用下面的指令------

bash 复制代码
rm test/* -rf

注意:这个指令会删除该路径下的全部内容!!!

rm -rf *rm -rf /****、rm -rf /(空格).../xxx.xxx一样危险!!!

处理办法也是先不要惊慌,按上篇博客博主的思路走------


12 which(补充命令)

12.1 概念

搜索系统指定的命令。

解释一下:which命令就是查找在Linux操作系统中,指定命令所在的路径。

12.2 举例

12.3 演示

cpp 复制代码
[whb@bite-alicloud test]$ which ls
alias ls='ls --color=auto'
 /usr/bin/ls
[whb@bite-alicloud test]$ which pwd
/usr/bin/pwd

13 alias

13.1 概念

设置命令的别名

13.2 举例

bash 复制代码
[whb@bite-alicloud test]$ alias hello='ls -a -l -n'
[whb@bite-alicloud test]$ which hello
alias hello='ls -a -l -n'
 /usr/bin/ls
[whb@bite-alicloud test]$ hello
total 36
drwxrwxr-x 2 1003 1003 4096 Jan 11 17:59 .
drwx------ 22 1003 1003 4096 Jan 11 17:57 ..
-rw-rw-r-- 1 1003 1003 28667 Jan 11 18:29 temp.txt

13.3 演示


14 man

14.1 下载

man------云服务器可能没有安装man指令,就像下面这样下载一下------

14.1.1 Centos 7下载指令

bash 复制代码
yum install -y man-pages

14.1.2 Ubuntu下载指令

bash 复制代码
apt install -y man-pages

14.1.3 Centos下载演示

14.2 概念

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

man命令:查看指定命令的使用手册,是在线查看手册的工具。

比如:man ls、man pwd、man mldir、man rm、......等等。

博主这里演示一下man ls------

man man会怎么样?

注意:回车键是往下翻。

怎么退出呢?按q(quit)就能退出了。

14.3 博主手记

我们一般只看前三个手册,2号手册------fork:系统调用(创建子进程)------

bash 复制代码
man 2 fork

C库函数------Linux下Xshell只能查这个,其它的要去官网查------

cplusplus

bash 复制代码
man 3 fopen
man 3 printf

14.4 (重点)Linux下一切皆文件

14.3.1 显示器 && 键盘也是文件

这里我们用C代码向另一个设备写入------


15 printf && fprintf && fwrite

要理解文件,光学语言是不够的,要深入到操作系统里面去。


16 echo

16.1 概念

将传递给它的参数(文本字符串)输出到标准输出,默认情况下,标准输出就是显示器。

16.2 演示

16.3 echo && 重定向

重定向不是指令,而是语法。echo指令经常和重定向一起使用,来完成更强大的功能------

bash 复制代码
//1、将文本输出到文件(创建或覆盖文件)
echo "This is a line of text" > myfile.txt

//2、将文本追加到文件末尾
echo "This is another line" >> myfile.txt

//3、结合变量和重定向,创建配置文件
echo "SERVER_IP=192.168.1.1" >> config.env

16.4 > && < && >>

16.4.1 >

输入重定向,------

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

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

16.4.2 <

输出重定向。

16.4.3 >>

输出追加重定向,本质上也是一种写入!

16.5 博主手记

16.6 补充

echo后面自动跟\n。


17 cp

17.1 概念

拷贝命令:复制文件或目录。

17.2 指令

-rf :强制覆盖,目录。

17.3 cp指令说明

(1)cp指令用于复制文件或目录;

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

17.4 常用选项

1、-f 或 -force 强行复制文件或目录,不论目的文件或目录是否已经存在;

2、-i 或 -interactive 覆盖文件之前先询问用户;

3、-r(递归) 递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件(-开头)处理;

4、-rf 强制覆盖

17.5 举例演示

bash 复制代码
# cp普通⽂件 
[whb@bite-alicloud test]$ echo "你好⽐特就业课">myfile.txt
[whb@bite-alicloud test]$ cat myfile.txt 
你好⽐特就业课
[whb@bite-alicloud test]$ ll
total 4
-rw-rw-r-- 1 whb whb 22 Jan 11 15:47 myfile.txt
[whb@bite-alicloud test]$ cp myfile.txt myfile-backup.txt
[whb@bite-alicloud test]$ ll
total 8
-rw-rw-r-- 1 whb whb 22 Jan 11 15:47 myfile-backup.txt
-rw-rw-r-- 1 whb whb 22 Jan 11 15:47 myfile.txt
[whb@bite-alicloud test]$ cat myfile-backup.txt 
你好⽐特就业课
# 将多个⽂件拷⻉到指定路径下 
[whb@bite-alicloud test]$ ll
total 8
-rw-rw-r-- 1 whb whb 22 Jan 11 15:47 myfile-backup.txt
-rw-rw-r-- 1 whb whb 22 Jan 11 15:47 myfile.txt
[whb@bite-alicloud test]$ mkdir dir
[whb@bite-alicloud test]$ ll
total 12
drwxrwxr-x 2 whb whb 4096 Jan 11 15:48 dir
-rw-rw-r-- 1 whb whb 22 Jan 11 15:47 myfile-backup.txt
-rw-rw-r-- 1 whb whb 22 Jan 11 15:47 myfile.txt
[whb@bite-alicloud test]$ cp *.txt dir # *表⽰通配符,匹配所有.txt结尾的⽂件名 
[whb@bite-alicloud test]$ ll
total 12
drwxrwxr-x 2 whb whb 4096 Jan 11 15:48 dir
-rw-rw-r-- 1 whb whb 22 Jan 11 15:47 myfile-backup.txt
-rw-rw-r-- 1 whb whb 22 Jan 11 15:47 myfile.txt
[whb@bite-alicloud test]$ tree dir
dir
├── myfile-backup.txt 
└── myfile.txt 
# cp如果⽬标⽂件存在,就覆盖 
[whb@bite-alicloud test]$ echo "hello bite tech" > myfile.txt
[whb@bite-alicloud test]$ cat myfile.txt 
hello bite tech
[whb@bite-alicloud test]$ cp myfile.txt myfile-backup.txt 
[whb@bite-alicloud test]$ cat myfile-backup.txt 
hello bite tech
# 拷⻉前询问 
[whb@bite-alicloud test]$ cp -i myfile.txt myfile-backup.txt 
cp: overwrite 'myfile-backup.txt'? y
# 递归强制拷⻉整个⽬录 
[whb@bite-alicloud ~]$ tree test
test
├── dir 
│   ├── myfile-backup.txt 
│   └── myfile.txt 
├── myfile-backup.txt 
└── myfile.txt 
1 directory, 4 files
[whb@bite-alicloud ~]$ cp -rf test test-backup
[whb@bite-alicloud ~]$ tree test-backup
test-backup
├── dir 
│   ├── myfile-backup.txt 
│   └── myfile.txt 
├── myfile-backup.txt 
└── myfile.txt 
1 directory, 4 files

18 mv

18.1 概念

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

18.2 特点

和 -开头、d开头没关系了------不带选项,也就是说目录也可以剪切。

18.3 重命名

18.4 功能

(1)视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。

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

(3)当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。

18.5 常用选项

18.5.1 -f

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

18.5.2 -i

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

18.6 举例

cpp 复制代码
# 更改名称 
[whb@bite-alicloud test]$ touch myfile.txt
[whb@bite-alicloud test]$ ll
total 0
-rw-rw-r-- 1 whb whb 0 Jan 11 15:56 myfile.txt
[whb@bite-alicloud test]$ mv myfile.txt yourfile.txt
[whb@bite-alicloud test]$ ll
total 0
-rw-rw-r-- 1 whb whb 0 Jan 11 15:56 yourfile.txt
# 如果当前路径存在同名⽂件,改名即覆盖 
[whb@bite-alicloud test]$ touch myfile.txt
[whb@bite-alicloud test]$ ll
total 0
-rw-rw-r-- 1 whb whb 0 Jan 11 15:58 myfile.txt
-rw-rw-r-- 1 whb whb 0 Jan 11 15:57 yourfile.txt
[whb@bite-alicloud test]$ mv yourfile.txt myfile.txt 
[whb@bite-alicloud test]$ ll
total 0
-rw-rw-r-- 1 whb whb 0 Jan 11 15:57 myfile.txt
# 如果当前路径存在同名⽂件,改名前可以添加i选项,让系统提出警告供⽤⼾做选择 
[whb@bite-alicloud test]$ touch yourfile.txt
[whb@bite-alicloud test]$ ll
total 0
-rw-rw-r-- 1 whb whb 0 Jan 11 15:57 myfile.txt
-rw-rw-r-- 1 whb whb 0 Jan 11 15:59 yourfile.txt
[whb@bite-alicloud test]$ mv -i yourfile.txt myfile.txt 
mv: overwrite 'myfile.txt'? y 
[whb@bite-alicloud test]$ ll
total 0
-rw-rw-r-- 1 whb whb 0 Jan 11 15:59 myfile.txt
 
 # mv整个⽬录 
[whb@bite-alicloud test]$ touch myfile.txt
[whb@bite-alicloud test]$ mkdir temp
[whb@bite-alicloud test]$ ll
total 4
-rw-rw-r-- 1 whb whb 0 Jan 11 17:56 myfile.txt
drwxrwxr-x 2 whb whb 4096 Jan 11 17:56 temp
[whb@bite-alicloud test]$ mv myfile.txt temp
[whb@bite-alicloud test]$ ls
temp
[whb@bite-alicloud test]$ mv temp ../
[whb@bite-alicloud test]$ ls
[whb@bite-alicloud test]$ ls -d ../temp
../temp

结尾

uu们,本文的内容到这里就全部结束了,感谢您的阅读!

往期回顾:

【Linux指令 (一)】Linux 命令行入门:从零开始理解Linux系统理论核心概念与基础指令

**结语:**本期我们在前一篇博客的基础上继续深入学习了Linux中的指令篇,希望对学习Linux指令相关内容的uu有所帮助,不要忘记给博主"一键四连"哦!

🗡博主在这里放了一只小狗,大家看完了摸摸小狗放松一下吧!🗡

૮₍ ˶ ˊ ᴥ ˋ˶₎ა

相关推荐
宇宙第一小趴菜4 小时前
11 安装回忆相册
linux·运维·centos7·yum·回忆相册·kh_mod
conkl4 小时前
Linux IP 网络配置与管理详解
linux·网络·tcp/ip
Mr_WangAndy4 小时前
C++设计模式_结构型模式_外观模式Facade
c++·设计模式·外观模式
FreeBuf_4 小时前
Happy DOM曝CVSS 9.4严重RCE漏洞,PoC已公开(CVE-2025-61927)
java·c语言·c++·python·php
BlackQid4 小时前
深入理解指针Part4——字符、数组与函数指针变量
c++·后端
C嘎嘎嵌入式开发5 小时前
(10)100天python从入门到拿捏《Python中的数据结构与自定义数据结构》
数据结构·python·算法
Vect__5 小时前
从底层到上层的“外挂”:deque、stack、queue、priority_queue 全面拆解
数据结构·c++
草莓熊Lotso5 小时前
C++ 手写 List 容器实战:从双向链表原理到完整功能落地,附源码与测试验证
开发语言·c++·链表·list
wxin_VXbishe5 小时前
基于SpringBoot的天天商城管理系统的设计与现-计算机毕业设计源码79506
java·c++·spring boot·python·spring·django·php