门户网站的特征,老网站做seo能不能重新注册,网站ui外包,绍兴住房和城乡建设厅网站首页从本节开始将新开一个关于Linux操作系统的板块#xff0c;其实Linux也没什么太神秘的#xff0c;就是一个操作系统(OS)嘛#xff0c;跟Windows操作系统是一个概念#xff0c;只不过Windows中的大部分操作都是用光标点击来进行人机交互#xff0c;但是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看完crtrd退出系统就行了。 4. touch 指令 语法touch [选项] 文件 功能touch命令参数可更改文档或目录的日期时间包括存取时间和更改时间或者新建一个不存在的文件 常用选项 -a 或--timeatime或--timeaccess或--timeuse只更改存取时间。 -c 或--no-create 不建立任何文档。 -d 使用指定的日期时间而非现在的时间。 -f 此参数将忽略不予处理仅负责解决BSD版本touch指令的兼容性问题。 -m 或--timemtime或--timemodify 只更改变动时间。 -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 ctrlx 之后我们 ^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 它还是会不停询问是否要覆盖)