Linux·基本指令

        从本节开始将新开一个关于Linux操作系统的板块,其实Linux也没什么太神秘的,就是一个操作系统(OS)嘛,跟Windows操作系统是一个概念,只不过Windows中的大部分操作都是用光标点击来进行人机交互,但是Linux是通过输入命令行的方式,操作难度稍为高了一点点,所以更加面向程序员。

        首先来一段不解释的操作,展示一下Linux系统的操作方法

        还是稍为解释一下吧,我这个linux系统在云服务器上,当前我登录的是我这个linux操作系统的root账号,这个root账号是超级管理员号,root这个名字是默认的,所以我们可以看到在每行请求前面的中括号里有我正在使用的账号@服务器名称。后面有的时候是 ~ 有的时候是目录名称,就代表正在操作的目录。当然要是不想看到中括号里的内容 可以敲 ·(点) 关掉,就是跟 ~ 同键位的那个符号。

        pwd命令可以让操作系统显示当前正在操作的目录的路径。

        mkdir就是在当前目录下创建一个目录,cd + 目录名是打开这个目录。

        ls是展示当前目录下的文件,我们把目录和普通文件统称为文件,普通文件就是.c .txt .exe这个类型的文件。

        touch命令可以创建一个普通文件。

1. ls 指令 (list)

        注意区分是小写的L,不是1

        语法:ls [选项] [目录或文件]

        功能:对于目录,该命令列出该目录下所有子目录与文件。对于文件,将列出文件名以及其他信息

        常用选项:

        -a 列出目录下的所有文件,包括以 . 开头的隐含文件。
        -d 将目录象文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录
        -i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件
        -k 以 k 字节的形式表示文件的大小。ls –alk 指定文件
        -l 列出文件的详细信息。
        -n 用数字的 UID,GID 代替名称。 (介绍 UID, GID)

        -F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”表示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)。(目录类型识别)
        -r 对目录反向排序。
        -t 以时间排序。
        -s 在l文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)
        -R 列出所有子目录下的文件。(递归)
        -1 一行只输出一个文件

        这里我们重点说两个选项 -a 和 -l

            

        可以看到 ls 显示当前目录下的文件,但是加上 -a 之后就能显式出以 · 开头的文件了,Linux中以 · 开头的文件我们叫隐藏文件,我们自己也可以创造隐藏文件:

             

        只有用了 -a 选项才能看见,直接 ls 是看不见 · 开头的文件的。其实Windows中也有隐藏的目录或者隐藏文件,如果你的Windows操作系统选择了显示隐藏的项目,那么直接打开C盘你就能看见几个半透明的文件,那个就是隐藏文件,当然在其他文件夹中可能也有隐藏文件,只是C盘的最好找。

                

        -l 选项能显示出更多的信息,或者说显示文件属性,我用绿框圈出来的就是文件属性。dir是属于目录类型,test.c是属于普通文件类型的,还有文件创造的时间之类的。判断某个文件名称是不是目录有2种方法,第一个比较不靠谱的就是看颜色,蓝色的就是目录(狗头保命),第二个看 -l 给出的信息,类型的第一个字母是d(directory)说明它就是目录文件。

                

        最后选项是可以拼接的,顺序可以随意,就是说 -al 和 -la 是一个作用,都是同时展示所有文件和文件的详细信息。

                

2. pwd 指令

        语法:pwd

        功能:显式用户当前所在的目录,当前工作路径

        常用选项:无

        我们先输入一个 clear 清一下屏,clear指令其实就是让系统自己把前面写的那些滚动到上面去让用户看不到,这样屏幕能整洁一点,如果你想看之前的指令的话滚轮到上面就行。

        

                        

        我们输入pwd指令,就能显示出当前所在的工作路径,pwd指令其实就相当于Windows中我们在看文件路径一样      

        但是仔细看,Windows的路径分隔符是 \ (反斜杠) ,Linux的路径分隔符是 / (斜杠)。

        一个斜杠 / 就代表根目录,/root 根目录中的root目录,然后依次推下去,要想完全了解根目录我们再接着往下看下一个指令

3. cd 指令 (change directory)

        语法:cd 目录名

        功能:改变工作目录。将当前工作目录切换到指定目录下

        我们cd一下根目录试试:

        我们发现直接从刚才的 /root/Linux_learn/lesson2 路径跳到了根目录 / 然后ls能看到根目录里的各种文件。ps:那个hello.txt是我瞎建的忘了删了,大家在使用Linux的时候一定要管理好自己的文件,不要瞎弄。

        还记得之前一个点 · 和两个点 ·· 的特殊目录吗,有没有回忆起在C语言阶段曾经讲过,一个点代表当前目录,两个点代表上一级目录,两个点就相当于Windows中的返回上一级。

        那么用 · ·· 这种点来写出来的路径我们叫做相对路径,是基于当前目录进行的目录访问,而直接 /root/Linux_learn/lesson2 这么写出来的叫绝对路径。我们尝试一下相对路径

                

        先通过绝对路径跳到最后,然后一次一次的cd上一级,我们发现目录确实在一级一级向回访问,直到根目录就没有上一级了,那么根目录的上一级还是根目录。这目录就相当于在写多叉树,每一级目录都是一个节点 · 一个点是指向当前节点的指针,·· 两个点是指向父节点的指针,到了根节点两个点也指向它自己。        

        而事实上,Linux操作系统也有将目录形象化成树的一个有意思的功能,就是tree指令,但是因为在根目录下的子节点太多了不好展示,我们展示以 /root 为根节点的树:

                        

        可能有同学在尝试tree的时候发现有command not found的报错,这是因为没有装这个模块,安装要在root账户下输入命令: yum install -y tree 然后等它跑完就装上能用了

        说到根目录,我们再说一下 ls -d 的问题,可能大家在看描述的时候很蒙,什么叫将目录像文件一样显示,而不是显示其中的文件,我们看一下指令:

        看出来了吧,不给-d是ls出这个路径下的文件,给-d是显示这个目录名不进到目录里面,打印出目录本身,那么根据这个原理我们就可以只查看根目录,而不是看根目录内的文件:

                

        这么说大家是不是更理解根目录是什么了吧,它是个目录。

        最后还有几个cd指令:

                cd .. : 返回上级目录
                cd /home/litao/linux/ : 绝对路径
                cd ~:进入用户家目
                cd -:返回最近访问目录

        cd - 就是进入上次访问的目录,大家试一下就知道了,没啥好说的。

        cd ~ 是进入家园目录,这就相当于返回Windows系统里的桌面,注意这个桌面并不是根目录,而是这个账户管理的系统桌面,也是我们刚进入Linux系统时默认所在的位置。其实也没啥好说的,用起来十分方便。

                

        普通用户的家园目录和root管理员的家园目录是不一样的,我登录一个普通用户展示

                

        可以看到我刚从云服务器登入Linux的时候默认就是在 ~ 目录下,who am i 确认一下账号没登错,然后就能看到普通用户的家园目录前面有个 home,看完crtr+d退出系统就行了。

4. touch 指令

        语法:touch [选项] 文件

        功能:touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件

        常用选项:

        -a 或--time=atime或--time=access或--time=use只更改存取时间。
        -c 或--no-create 不建立任何文档。
        -d 使用指定的日期时间,而非现在的时间。
        -f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
        -m 或--time=mtime或--time=modify 只更改变动时间。
        -r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
        -t 使用指定的日期时间,而非现在的时间。

        目前我们就先把touch当一个新建文件的命令使用,新建文件的功能前面已经用过了,这里不再展示了,至于更改时间的功能之后再说

5. mkdir 指令 (make directory)

        语法:mkdir [选项] dirname

        功能:在当前目录下创建一个名为“dirname”的目录

        常用选项:

        -p, --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录

        我们前面也建过目录了,我们这里就展示一下 -p 的功能

        我们可以看到直接mkdir是不能生成一串目录的,只有用 -p 才行。

6. rmdir指令 和 rm指令(remove)

        rmdir是与mkdir相对的指令。mkdir是建立目录,rmdir是删除目录,而且只能删除空目录,很鸡肋,rmdir 目录名 就能删除这个空目录了,这个一般都不用。

        rm指令

        语法:rm [-f -r -i -v] [dirname/dir]

        功能:删除文件或目录

        常用选项:

                -f 即使文件属性为只读(即写保护),亦直接删除
                -i 删除前逐一询问确认
                -r 删除目录及其下所有文件

        ​​​​​​​        

        我们来到开头建立的lesson2目录,使用 rm 发现只能删除文件,只有加上 -r 之后才能删除目录。这个-r是递归式删除,以递归的方式将这个目录及其子孙都删干净,不管里头有普通文件还是目录,我们可以通过它的询问看出来这个递归的过程。最后搞个tree看看确实lesson2目录下啥也没有了都删干净了。

        可能此时有疑问,为啥我没写 -i 但是它在删除前还是在逐一确认?这是因为我们的用户现在是root管理员,权限相当大,所以系统就要求我们在每步操作之前都谨慎一点。

        但是如果你觉得它这么一次次递归询问太麻烦,就想直接删,此时就要用到 -rf 递归并强制删除,我们要再把目录表弄出来

        ​​​​​​​        

       !! !!!!!警示  !!!!!!!

                不要删除根目录 rm -rf / 要是这么干了就可以去重装系统了。根目录下有操作系统的各种软件配置,如果敢给它们删了,那系统不就直接挂掉了。这就是 Linux·从删库到跑路 的故事。

6.1 通配符 *

        我们先touch出一串文件来,如果一个一个的删除岂不是很麻烦,因此我们可以使用通配符

        ​​​​​​​        

        通配符前面必须写的一样,后面可以不一样也可以没有,我们通过ls查lesson2下全部文件和查file*所展现出来的文件是不一样的,同时利用通配符我们可以较为遍历的删除拥有特定名字的一类文件。

        ​​​​​​​        

        如果直接删通配符,含义就是不管叫啥,只要在这个目录底下就统统删掉,隐含文件删不掉,只能手动删除。

        这里突然想提一嘴,再各种有关目录的命令中,比如ls cd rm,后面跟的目录如果不写都会自动隐含 ./ (当前目录下),否则我们是不能只输入文件名就能进行操作的,文件名又不是目录

热键

        热键作为补充内容,这里先说两个

        tab:补齐命令或者路径,连按两次可以基于当前输入的字母联想出可能需要输入的指令,如果什么都没输入的时候连按两下tab就能展示所有的命令

        输入who的时候还不能完全确定命令,敲两次tab可以联想出所有who开头的命令,当输入到whoa的时候再敲一次tab直接就能自动补齐到whoami,同时还有空格

        ctrl + C :强制停止并退出,比如我们不小心用 top 把资源管理器叫出来了,但是不会退出。直接就是ctrl + C解决问题。遇到程序失控就ctrl + C就可以

7. man 指令

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

        语法:man [选项] 命令

        ​​​​​​​        

        查看手册的时候通过键盘上下键翻页,q退出        

        因为man也是指令,所以我们也可以查看man的信息

        ​​​​​​​        

        框起来的这部分就是能在man中查找的9个对应的手册

        1号手册:查普通的指令

        2号手册:查系统调用 (由操作系统提供的函数接口)

        3号手册:查库函数 (主查C)

        其他的用不到

        查手册的话是默认从1号手册开始查,查到就翻出来,但是可能有这种情况:

        printf是C语言的库函数存在于3号手册中,但也同时是Linux中的命令在1号手册中也有,如果我们直接 man printf 就只会查到1号手册中的printf,如果想看库函数就要写成 man 3 printf

        ​​​​​​​        ​​​​​​​        

8. cp 指令 (copy)

        语法:cp [选项] 源文件或目录 目标文件或目录        

        功能:复制文件或目录

        常用选项:

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

8.1 nano 记事本

        在正式进入拷贝之前我们先学一个nano命令,这个指令就是说用记事本的方式打开一个文件

        可能有的Linux系统里没有nano命令 yum install -y nano 安装一下就好了。

        ​​​​​​​                        

        打开以后界面是这个样子,上面可以输入文本,下面是nano的操作手册,上尖括号加字母就是ctrl加字母,比如 ^x => ctrl+x

         之后我们 ^x -> y -> 回车 保存并退出了文件,此时可以用 cat 命令查看文档

        ​​​​​​​        ​​​​​​​        

        当然我们之后写代码肯定不是用nano写,这里只是展示一下,后面有vs code写。

        此时代码写好了我们当然要编译一下啊

        ​​​​​​​        ​​​​​​​

        这个 ll 命令等价于 ls -l 命令

        黄框是用gcc编译器生成一个叫 mytest 的目标文件,然后在绿框中用 ./mytest 执行起来。那我们发现红框中直接写mytest执行不起来,因为没给路径,系统找不到这个文件,所以无论是绝对路径还是相对路径,总要把路径给出来。

8.2 cp命令实践

                        

        我们可以cp test.c 到 hello.c 中然后cat打开看一下,test.c 中的内容也都复制到 hello.c 中去了

                        

        我们还可以把mytest这种二进制文件拷贝到上级目录中,并且能正常运行,说明文件的内容也都完全拷贝过去了。

                        

        如果我们想把一整个目录及其下所有文件都拷贝到一个新目录中,直接cp是不让拷贝的,要用 -r 进行递归拷贝。如果此时再次将 lesson2 递归拷贝到 newdir 中就会因为有重复文件,每次拷贝都要询问是否覆盖,如果不想每次都敲一下y,那就可以用 -rf 强制递归拷贝(但是在root账号下不允许强制递归拷贝,就算选了 -rf 它还是会不停询问是否要覆盖)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/835532.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

fmt::arg的使用

来自&#xff1a; https://hackingcpp.com/cpp/libs/fmt.html #include <fmt/format.h> // literalsint main () { int i 2; double d 4.567; fmt::print("{x} {x}\n", fmt::arg("x",d)); fmt::print("{pi} * {0}\n", i, fmt::arg(&…

今天遇到一个GPT解决不了的问题

问题描述 你好&#xff0c;postman的一个post请求&#xff0c;编辑器里面放了一个很长的json数据&#xff0c;报Tokenization is skipped for long lines for performance reasons. This can be configured via editor.maxTokenizationLineLength.&#xff0c;但是同样的数据&a…

住宅ip与数据中心ip代理的区别是什么

代理通常意味着“替代”。它是用户设备和目标服务器之间的中介&#xff0c;允许在不同的IP地址下上网。代理ip根据来源分类可分住宅ip与数据中心ip&#xff0c;二者之间区别是什么呢&#xff1f; 住宅ip是由互联网服务提供商(ISP)提供给家庭的IP地址。出于这个原因&#xff0c…

灾备建设中虚拟机备份自定义数据块大小应用

灾备建设中&#xff0c;传输备份数据时&#xff0c;自定义数据块大小可以帮助优化数据传输和存储效率。 确定数据块大小&#xff0c;首先&#xff0c;需要确定合适的数据块大小。这可以根据备份数据量和网络带宽来决定。通常情况下&#xff0c;较小的数据块可以更好地适应网络…

Linux各目录及每个目录的详细介绍

目录 /bin 存放二进制可执行文件(ls,cat,mkdir等)&#xff0c;常用命令一般都在这里。 /etc 存放系统管理和配置文件 /home 存放所有用户文件的根目录&#xff0c;是用户主目录的基点&#xff0c;比如用户user的主目录就是/home/user&#xff0c;可以用~user表示 /us…

华为开源自研AI框架昇思MindSpore应用案例:在ResNet-50网络上应用二阶优化实践

常见的优化算法可分为一阶优化算法和二阶优化算法。经典的一阶优化算法如SGD等&#xff0c;计算量小、计算速度快&#xff0c;但是收敛的速度慢&#xff0c;所需的迭代次数多。而二阶优化算法使用目标函数的二阶导数来加速收敛&#xff0c;能更快地收敛到模型最优值&#xff0c…

三星硬盘格式化后怎么恢复数据

在数字化时代&#xff0c;硬盘作为数据存储的核心部件&#xff0c;承载着我们的重要文件、照片、视频等资料。然而&#xff0c;不慎的格式化操作可能使我们失去宝贵的数据。面对这样的困境&#xff0c;许多用户可能会感到无助和焦虑。本文旨在为三星硬盘用户提供格式化后的数据…

geotrust企业通配符证书2990

随着时代的变化&#xff0c;人们获取信息的方式由报纸、书籍变为手机、电脑&#xff0c;因此很多企事业单位用户开始在互联网中创建网站来进行宣传&#xff0c;吸引客户。为了维护网站安全环境&#xff0c;保护客户数据&#xff0c;企事业单位也开始使用SSL数字证书&#xff0c…

ubuntu install vivado 2023

Downloads sudo mkdir /opt/vivado

算法练习day7

四数相加II 代码随想录 0454.四数相加II 454. 四数相加 II - 力扣&#xff08;LeetCode&#xff09; &#xff08;用时&#xff1a;0.5小时&#xff09; 思路 本道题是需要在四个数组中&#xff0c;各找一个数&#xff0c;这些数加起来能够等于0&#xff0c;那么就是答案元…

onnx模型截取部分

这个是有需求的&#xff0c;比如有多个输入节点&#xff0c;我只用其中几个&#xff0c;或有多个输出节点&#xff0c;我只用其中几个。 比如这个输入&#xff0c;我们可以直接把transpose去掉&#xff0c;用类pytorch的N,C,H,W的格式输入。 还有如下输出&#xff1a; tran…

喜报|才聚荣获“2024年度PMI(中国)注册教育机构杰出机构奖”!

5月10日&#xff0c;“2024PMI&#xff08;中国&#xff09;注册教育机构合作伙伴大会”隆重举行&#xff0c;才聚集团受邀参加此次盛会。 本次大会就项目管理职业生态、发展趋势等热门问题进行了深入探讨分析。 PMP认证自1999年引入中国&#xff0c;为国家培养了大量项目管理…

Springboot+Vue项目-基于Java+MySQL的宠物商城网站系统(附源码+演示视频+LW)

大家好&#xff01;我是程序猿老A&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;Java毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计 &…

618有什么好物推荐?618平价好物清单,让你买到物超所值的好货!

618大促即将开启&#xff0c;大家是不是已经跃跃欲试&#xff0c;准备大肆采购一番了呢&#xff1f;别心急&#xff0c;让我为你揭晓几款数码、家居领域中的明星产品。这些好物不仅实用&#xff0c;而且性价比超高&#xff0c;让你在享受购物乐趣的同时&#xff0c;也能买到真正…

人工智能的未来:Sam Altman 揭穿搜索引擎谣言,调侃 ChatGPT 和 GPT-4 的“神奇”更新

人工智能的未来&#xff1a;Sam Altman 揭穿搜索引擎谣言&#xff0c;调侃 ChatGPT 和 GPT-4 的“神奇”更新 概述 科技界充斥着有关人工智能研究先驱组织 OpenAI 将推出类似谷歌搜索引擎的传言。然而&#xff0c;首席执行官 Sam Altman 已经平息了这些谣言&#xff0c;并透露…

mac 讨厌百度网盘怎么办

一、别拦我 首先请允许我泄个愤&#xff0c;tmd百度网盘下个1g的文件下载速度竟然超不过200k&#xff0c;只要不放在所有已打开软件的最前面&#xff0c;它就给你降到10k以内&#xff0c;关键是你慢就慢了&#xff0c;我也不是很着急&#xff0c;关键是你日常下载失败并且总是…

代码随想录算法训练营第36期DAY24

DAY24 235二叉搜索树的最近公共祖先 迭代法&#xff1a; /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solutio…

2024年5月10日有感复盘

2024年5月10日有感复盘 时间 今天是一个很美好的一天&#xff0c;原因是很平凡&#xff0c;读书很平凡&#xff0c;玩游戏很平凡&#xff0c;然后生活很平凡&#xff0c;未来可期&#xff0c;听歌很舒服&#xff0c;很喜欢一个人呆在图书馆的感觉&#xff0c;很喜欢发呆&…

DeepMind的首席执行官Demis Hassabis表示,未来一到两年内,能够独立完成复杂任务的AI代理将成为现实

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

网络安全复习

概述 重要性 网络安全威胁 OSI安全体系结构 信息与网络安全目标 机密性完整性可用性 五类安全服务 八类安全机制 网络安全体系结构 基本安全设计原则 数据加密技术 2.1数据加密技术概述 2.2经典加密 2.3对称秘钥加密 2.4公开秘钥加密 Diffie-Hellman秘钥交换 对称…