
🔥艾莉丝努力练剑:个人主页
❄专栏传送门:《C语言》、《数据结构与算法》、C/C++干货分享&学习过程记录、Linux操作系统编程详解、笔试/面试常见算法:从基础到进阶
⭐️为天地立心,为生民立命,为往圣继绝学,为万世开太平
🎬艾莉丝的简介:

🎬艾莉丝的Linux专栏简介:


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

希望大家能够见谅!!!
艾莉丝估计大概再用两篇的篇幅就能把Linux指令部分的内容较为完整地呈现给大家了,再为大家重新按艾莉丝答应大家的阿拉伯数字索引指令的方式整理出一篇【Linux指令字典检索】类型的博客,鉴于艾莉丝的判断失误,那篇检索类型的博客就不求大家的三连啦!大家为了知识点的连贯性可以赏脸去看看!祝各位大佬武运昌隆,offer拿到手软!
由于艾莉丝才疏学浅,前篇博客虽然详尽,但知识点还是难免有所疏漏,博主会按前文的阿拉伯数字索引,按顺序排布,补充到本文中,不会直接加到前文中了,大家不要担心,博主会在【检索】中把各篇中的补充重新插入到它应该所在索引中,大家届时参照【索引】即可!



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

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

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

这样就找到啦——

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

快捷方式:替代输入路径,直接打开。
Windows下的指令:shutdown。
概念:从一个终端向另一个终端显示器写入。
重定向本身不是一条独立的指令(command),而是Shell提供的一种功能机制。


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

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


这里的ls带颜色,因为它是别名,默认是不带颜色的。
关系:这里 ls 是 ll的别名(带颜色),ll命令是ls -l的别名。


要删除一个目录下的全部内容,可以用下面的指令——
rm test/* -rf注意:这个指令会删除该路径下的全部内容!!!
rm -rf * 和 rm -rf / 、rm -rf /(空格).../xxx.xxx一样危险!!!

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

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

[whb@bite-alicloud test]$ which ls
alias ls='ls --color=auto'
/usr/bin/ls
[whb@bite-alicloud test]$ which pwd
/usr/bin/pwd设置命令的别名
[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

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

yum install -y man-pagesapt install -y man-pages
由于Linux的命令有很多参数,我们不可能全记住,可以通过查看联机手册获取帮助。
man命令:查看指定命令的使用手册,是在线查看手册的工具。
比如:man ls、man pwd、man mldir、man rm、……等等。
博主这里演示一下man ls——

man man会怎么样?


注意:回车键是往下翻。
怎么退出呢?按q(quit)就能退出了。

我们一般只看前三个手册,2号手册——fork:系统调用(创建子进程)——
man 2 forkC库函数——Linux下Xshell只能查这个,其它的要去官网查—— cplusplus
man 3 fopen
man 3 printf
这里我们用C代码向另一个设备写入——

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

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

重定向不是指令,而是语法。echo指令经常和重定向一起使用,来完成更强大的功能——
//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输入重定向,——
(1)文件存在,先清空,再写入(覆盖,类似于“w”,只写); (2)(当前路径)文件不存在,新建文件。
输出重定向。
输出追加重定向,本质上也是一种写入!

echo后面自动跟\n。
拷贝命令:复制文件或目录。

-rf :强制覆盖,目录。
(1)cp指令用于复制文件或目录; (2)如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。
1、-f 或 -force 强行复制文件或目录,不论目的文件或目录是否已经存在;
2、-i 或 -interactive 覆盖文件之前先询问用户;
3、-r(递归) 递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件(-开头)处理;
4、-rf 强制覆盖。
# 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
mv命令是move的缩写,剪切,可以用来移动文件或者将文件改名(move (rename) files,经常用来备份文件或者目录。
和 -开头、d开头没关系了——不带选项,也就是说目录也可以剪切。

(1)视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。 (2)当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。 (3)当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。
-f:force强制的意思,如果目标文件已经存在,不会询问而直接覆盖。
-i:若目标文件(destination)已经存在时,就会询问是否覆盖!
# 更改名称
[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
../tempuu们,本文的内容到这里就全部结束了,感谢您的阅读!
往期回顾:
【Linux指令 (一)】Linux 命令行入门:从零开始理解Linux系统理论核心概念与基础指令
结语:本期我们在前一篇博客的基础上继续深入学习了Linux中的指令篇,希望对学习Linux指令相关内容的uu有所帮助,不要忘记给博主“一键四连”哦!
🗡博主在这里放了一只小狗,大家看完了摸摸小狗放松一下吧!🗡 ૮₍ ˶ ˊ ᴥ ˋ˶₎ა