芜湖市建设厅网站企业品牌网站设计

当前位置: 首页 > news >正文

芜湖市建设厅网站,企业品牌网站设计,表白网站是怎么做的,wordpress 如何更新如果我们以后再Linux当中 写了一些命名#xff0c;导致程序我们不能进行操作了#xff0c;如这个死循环#xff1a; 他就会一直输出 hello Linux #xff0c;我们就使用 ctrl c 来终止因为程序或者指令异常#xff0c;而导致我们无法进行指令输入#xff… 如果我们以后再Linux当中 写了一些命名导致程序我们不能进行操作了如这个死循环 他就会一直输出 hello Linux  我们就使用 ctrl c  来终止因为程序或者指令异常而导致我们无法进行指令输入 *   通配符 它的意思是所有比如我们使用 ls 来访问当前路径下除隐藏文件下的所有文件 他可以访问当前路径下的所有文件。 例如 我们使用 * 可以匹配任意 名称的文件 *. xxx  访问以 xxx 为后缀的文件例如 上图中就是访问 此路径下的所有以 .c  为后缀的文件。 xxx . * 访问所有 以xxx 为文件名的文件例如 上图中就是访问 此路径下的 所有 文件名为 test 的文件。 rm * -rf 这样就可以删除本路径下的所有文件和文件夹 此时 ls  无内容。 如上述的  rm -rf xxx.xxx 这个命名还可以 这样写    rm xxx.xxx -rf  这样写但是我们一般建议是按照第一种方式去书写因为第二种方式的命令有些环境可能不兼容如上述的rm xxx.xxx -rf 这个命令在 macOS 当中 也有终端  这个终端也是 Linux 指令 可能就不兼容。 man指令 Linux的命令有很多的参数我们可能会记不住而 man指令可以帮我们查看联机手册获取帮助。 语法 man [选项] [命名] 比如现在我们来查看 rm 指令的联机手册 man rm man man  查看这个手册的使用方法 手册 1 是普通的命令2 是系统调用,如open,write之类的(通过这个至少可以很方便的查到调用这个函数需要加什么文件)3 是库函数,如printf,fread4是特殊文件,也就是/dev下的各种设备文件5 是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义6 是给游戏留的,由各个游戏自己定义7 是附件还有一些变量,比如向environ这种全局变量在这里就有说明8 是系统管理用的命令,这些命令只能由root使用,如ifconfig   我们发现当中有这 9 个接口分别对应这不同的手册。  当我们 man pirntf 想去查看C语言的当中的  printf() 函数的时候发现printf不仅仅作为C语言当中的函数还作为 Linux 当中的一条指令 Linux当中的printf和C当中的printf没有任何的关系一个是指令一个是函数。 使用 man 3 printf  就可以查这个printf的相关函数 那么如果我们在使用man 指令再查的时候后面都没有带 1 这样的手册直接进行查指令的话那么他会从 1 号手册开始查找找到了就直接返回这个 手册当中的指令如果没有找到会按照 1 2 3 ······ 等等这样的顺序在 手册中进行查找。 如果上述都没有找到那么就会说没有这个指令 当然man 也是有 一些选项的不过我们一般查的话就是上述的几种方式来就差不多了。 man 的选项 -k 根据关键字搜索联机帮助num 只在第num章节找-a 将所有章节的都显示出来比如 man printf 它缺省从第一章开始搜索知道就停止用a选项当按下q退出他会继续往后面搜索直到所有章节都搜索完毕   cp指令 作用是赋值 文件或者是目录。 语法 cp [选项] 源文件或目录 目标文件或目录 拷贝文件 如这个例子 上述两个文件的大小都是 24 大小是一样的。 上述我们拷贝到的新的文件中这个文件可是原本就有的也可以没有的如果没有就会直接创建。 如果是已经存在的文件加上 -i  选项就会问我们是否进行覆盖 选择 y 就是代表覆盖。 如果我们没有使用 -i  选项那么就会默认进行覆盖 如上述例子第二次拷贝的时候没有提醒但是这是在 普通用户下的如果是root 用户他会默认来问我们是否覆盖。 同样的如果拷贝的文件和被拷贝的文件是一样的是不行的这样是没有意义的; 那么上述是拷贝到当前目录下如果我们想要拷贝到其他路径之下我们可以这样操作 目标文件不仅仅可以使用文件名还可以使用绝对路径 拷贝目录 如上述的目录我们也可以用 cp 来进行拷贝但是不能像之前一样直接进行拷贝 如何我们需要拷贝目录需要 -r  选项 因为目录使用递归定义的我们在拷贝的时候就需要使用递归的形式来进行拷贝。如上述我们拷贝了一个 lesson3_backup。 我们使用 tree 来打印这个目录 发现和 lesson3 目录是一样的。 总结 f 或 –force 强行复制文件或目录 不论目的文件或目录是否已经存在-i 或 –interactive 覆盖文件之前先询问用户-r递归处理将指定目录下的文件与子目录一并处理。若源文件或目录的形态不属于目录或符链接则一律视为普通文件处理-R 或 –recursive递归处理将指定目录下的文件及子目录一并处理 echo指令 直接使用 echo 字符串   的话就会在屏幕上直接输出 这个字符串 如果我们使用  echo 字符串 文件名.后缀  这样写的话就会把这个字符串 流入 到这个文件当中 信息写入到文件中之后就不会再屏幕上打印了。 而上述的 这个叫做 输出重定向他会将本来应该显示在屏幕上的内容打印到文件当中。 mv指令 用来移动文件或者将文件改名经常用来备份文件或者目录。 语法 mv [选项] 源文件或目录 目标文件或目录 同路径下使用就是重命名而我们可用mv指令实现剪切。 重命名 在同一路径下这个文件名就被修改了。 我们也可以把这个文件剪切到其他路径下 剪切并重命名 我们可以这里理解这个 mv 其实mv 所以的操作都是 剪切并重命名如果我们有新的名字就用新的名字如果没有就使用原本的名字如果有新的路径就使用新的路径如果没有新的路径就是默认是当前的这个路径。 当第二个参数是已存在的目录名称时源文件或目录参数可以有多个mv命令将各参数指定的源文件均移至目标目录中 这个命令不是把 dir 这个目录 剪切覆盖 newdir 这个文件夹当我们把查看这个上级目录发现只是把dir 剪切到上级目录当中 Linux 当中指令是什么 如果我们写一个 C 语言的 .c  源文件那么我们进行 gcc 编译然后生成可执行文件假设是 a.out 那么我们是 ./a.out  这样来执行的可执行文件的而回想我们上述执行执行的时候也是直接 输入指令回车然后这个指令就执行了。 其实指令和可执行程序都是可以被执行的其实指令就是可执行程序。 那么在Linux当中中的指令在哪儿呢 当我们输入一条 Linux 当中没有的指令的时候他会报  command not found  这样的错也就是说如果我们想要执行一条指令那么先要找到这条指令。找到了就执行。 所以指令一定是在系统当中的某一个位置存在的一般的指令是在 根目录下的 usr 的 bin 目录下的 /usr/bin/ 指令是在系统的特定路径下存在的这些指令一定是某种 shell 脚本ccpython等等实现的可执行程序。 那么我们之前写的 a.out  这也是一个执行程序啊如果我们把这个 a.out 可执行程序放进这个/usr/bin/ bin 目录下那么我们是不是也可以写一个指令了呢 答案是可以的。  如下图所示 这种行为就叫做安装软件。也就是把我们写好的 可执行程序放到 bin 目录下这样我们在调用这个 可执行文件的时候就可以不用 用路径来访问这个可执行文件了。 那么对应的 如果我们使用 rm 来删除我们刚刚写入的 mycmd  这个可执行文件在Linux 当中就叫做 卸载。如下图所示: 此时编译器就不能使用这个指令了: alias 指令 给指令取别名如下面这个例子 把 ls -l -i -a -n   这个指令 取了一个  108_cmd 这个别名那么以后我们在使用  ls -l -i -a -n   这个指令的时候就可以直接 使用 108_cmd  这个别名来调用两个实现的效果是一样的l:  如果我们没有取别名那么我们使用 108_cmd 这个是会报错的。 我们使用 which  来查看这个一个指令的 所在路径和 属性 发现上述就有 alias  这个定义了。 如果有一天我们不想用这个 别名了那么我们就可以再用一次 alias 把这个108_cmd 置空 然后当我们调用 108_cmd 这个时候就什么都没有了而且我们使用which 查看这个 属性的时候发现是空的如上图所示。 那么如果我们写了  alias xxx ; 这样的命名那么如果之前这个别名是有用的当我们这个Linux 操作系统的之后上述是在 xshell 上登录的云服务器就重启 xshell 那么我们再次调用这个别名发现就会报错了 cat指令 在Linux当中一切都可以认为是文件 比如显示器键盘普通文件····这些都可以看做是 文件。 在显示器当中可以认为有 一个 向显示器文件当中书写函数 -fwrite但是显示器当中有读这个函数-fread()但是这个读函数当中的实现是空的因为显示只负责向我们显示数据。那么我们在使用 scanf这样的函数在输入的数据的时候在屏幕上我们也是能看到我们输入的数据啊那么显示器不是接收这个数据也就是在读这个数据吗 其实不是的因为我们输入的数据是从键盘输入的而显示器只是把我们输入的数据再显示器上在显示出来让我们知道我们输入的数据是多少。 而键盘当中就有读这个函数-fread()相当于是从键盘设备中读取数据但是他只负责输入不负责输出那么键盘当中我们可以认为有写这个函数- -fwrite但是这个函数中的实现是空的。 那么在普通文件当中既可以写入也可以读出那么它fwritefread()这样两个函数都是有实现的。 那么在Linux 当中只要是能被读或者是被写的都可以看做是文件都可以有读写访问称为IO。 那么在电脑上还有很多的设备比如网卡等等这些都可以看做是文件网卡也是需要抒发数据的。 比如我们写入下面这个C代码 int main() {int a 10;printf(请输入数字\n);sacnf(%d,a);printf(%d,a); } 我们在键盘上输入数据和在显示器上输出都是文件在输出会让输入。 那么之前写的 echo 字符串是把字符串输出到显示器文件当中echo 字符串 xxx.txt 就是把原本需要输出到显示器当中的字符串输入到 xxx.txt  这个文件当中。 那么上述的行为就被认为是重定向。上述就是把原本要输入到显示器当中的字符串输出到文件当中。 当我们直接写 cat 如下所示我们发现我们输入什么屏幕上就会打印什么 如果我们cat 后面什么都不写他会默认从键盘读取数据然后默认在显示器上进行打印输出 -n 选项 把输出结果的每一行搞一个编号 -b 选项 给非空的行创建编号 发现非空行就有编号而空行就没有编号。 -s 选项 不输出多行的空行 如上述例子 发现上述的多个空行输出了一行空行。 cat不适合看大文本适合看小文本 写一个简单脚本生成 1- 10000 个 hello Linux i 到text.txt 文件当中 cnt1; while [\(cnt - le 10000]; do echo hello Linux \)cnt; let cnt; done text.txt 如上述的大文本看起来很不方便。 echo 和 cat 的区别 echo 后面跟的是一个字符串而cat 后面跟的是一个文件看下面这个例子就知道区别在哪了 cat out.txt #输出 hello Linux echo out.txt #输出 out.txt 我们发现 cat 输出的是文件当中内容而echo 输出的是 out.txt 这个字符串。 和     输出重定向 当我们使用 多次 echo 向同一个文件当中输入相同的字符串然后使用cat 来 输出文件当中内容我们发现只输出了一个字符串 而且在上述之后我们在 用 echo输入 别的字符串发现之前写的 hello Linux 这个字符串都不在了打印的是新输入的字符串: 这是因为这里的   输出重定向这个操作符在使用的时候都是像 文件当中的开头位置开始覆盖式的写入的也就是说我们上述的行为每一次都是在原文件内容的基础之上在开头位置进行覆盖式的写入把原本的数据给覆盖掉。 而且上述的覆盖式分为两步 首先要把文件当中内容给清空然后再把内容输入到文件中 所以我们可以使用这个 清空的特性来把文件当中的内容给清空 out.txt 如果我们不想删除文件当中本来的内容直接在之后输入那么我们可使用 追加重定向 如上图我们插入了多个 108 good 。 追加重定向这个操作都是在文件的结尾来进行写入。 如果我们以后想创建一个新的文件不需要使用 touch 类似的命令直接像下述一样写也可以创建文件 我们之前说过了如果cat 后面什么都不跟那么他会默认从键盘上读取数据那么如果我们在后面输入   xxx.txt 这个就会从 xxx.txt 这个指定的文件当中读取数据。 输入重定向 more 指令 more和cat的功能差不多但是 我们之前说过cat 指令不适合来看大文本那么查看大文本我们就可以使用 more指令来看 这样我们就可以查看 这个文档了 他会把文件当中的内容在屏幕上打印出来把屏幕占满然后就不在打印了。这个时候我们按下 Enter 他会自动往下翻比较适合我们自顶向下的来查看。按q就可以退出。 我们可以在more场景当中使用  /数字 这种形式来直接跳到某行。 -数字 使用 -数字 这种方式就可以直接显示到文件当中的直接行数 less指令 less的功能和more有些重叠但是less功能更加强大。按↑他是上翻按↓他是下翻所以less他支持上下翻动。 相关选项 -i 忽略搜索时的大小写-N 显示每行的行号/字符串向下搜索“字符串”的功能?字符串向上搜索“字符串”的功能n重复前一个搜索与 / 或 ? 有关N反向重复前一个搜索与 / 或 ? 有关q:quit   关于大文本 我们上述的 less 和 more  都是在查看 大文本那么我们为什么要看一个大文本呢什么属于大文本呢 在大型项目中我们想要查找我们想要的一些代码段等等都可以用到大文件的查看还有日志比如你有一个服务器这个服务器挂掉了那么可以查看日志来查看它为什么挂掉了。 head指令 也是用于查看文件只不过他是只给我们查看前 n 行内容。 其中的 n 默认是10我们也可以 用 - 数字 的选项来规定 n 的大小。 tail指令 从文件的末尾开始查看文件查看末尾的后 n 行内容 同样n 默认是10我们也可以 用 - 数字 的选项来规定 n 的大小。 tail 指令常用与查看日志假设日志已经写了 10 万行了那么我们不可能从头开始看这时候就可以用 tail 来查看后面的日志。 tail和head的妙用 假设现在有 10000 行的内容但是我们想查找其中的 1000 - 1020 行的数据我们当然可以用 less 进去用 / 1000 来访问到1000行但是其实还可以用 tail和head 结合使用来实现 先用head 把前 1020 行内容重定向到一个新的文件的当中 然后再用 tail 访问这个 文件的 后 20 行就可以得到 1000 - 1020 行的数据了 | | 管道文件 那么对于上述的tail和head还可以这样使用 | 就是一种符号后面会被“系统”解释称为管道文件这个管道文件不是在磁盘里存在的而是一种内存级的文件其对于的执行逻辑如下图所示 这里管道的意思就是用来传输资源的。 我们知道当我们在访问文件的时候因为文件是在磁盘中的要先把磁盘中文件对应的内存拷贝到内存来进行访问而磁盘当中文件在访问完之后要把内容重新刷到磁盘上吗而内存级的不用。 wc -l 数计算行数的命令像上述的操作就是 管道 支持的流水线操作。 他可以把数据一步一步进行加工从而拿到我们想要的内容。