【Linux系统编程】2. Linux基础指令(上)
文章目录一、Linux基础指令1、ls指令2、pwd指令3、cd指令4、touch指令5、mkdir 指令6、rmdir指令 和 rm指令1rmdir指令2rm指令7、man指令8、cp指令9、mv指令10、cat指令11、more指令12、less指令13、head指令14、tail指令15、date指令16、echo指令一、Linux基础指令1、ls指令语法ls [选项] [目录/文件]功能对于⽬录该命令列出该⽬录下的所有⼦⽬录与⽂件。对于⽂件将列出⽂件名以及其他信息。常⽤选项-a 列出⽬录下的所有⽂件包括以.开头的隐含⽂件。-d 将⽬录像⽂件⼀样显⽰⽽不是显⽰其下的⽂件。-i 输出⽂件的 i 节点的索引信息。-k 以 k 字节的形式表⽰⽂件的⼤⼩。-l 列出⽂件的详细信息。-n ⽤数字的 UIDGID 代替名称。-F 在每个⽂件名后附上⼀个字符以说明该⽂件的类型*表⽰可执⾏的普通⽂件/表⽰⽬录表⽰符号链接|表⽰FIFOs表⽰套接字(sockets)。-r 对⽬录反向排序。-t 以时间排序。-s 在l⽂件名后输出该⽂件的⼤⼩。-R 列出所有⼦⽬录下的⽂件。(递归)-1 ⼀⾏只输出⼀个⽂件。举例列出当前⽬录下的所有子目录和⽂件ls列出当前⽬录下的所有⼦⽬录与⽂件包括 . 开头的隐含文件ls -a以详细信息列出当前目录下的所有子目录和文件包括隐含文件ls -al以详细信息列出当前目录下的所有文件和目录包括隐藏文件并在不同类型的文件 / 目录名称后添加特殊符号标记其类型ls -alF注意实践中我们经常使用ll来展现当前目录下的信息ll其实就是ls -l的缩写。2、pwd指令语法pwd功能显⽰⽤⼾当前所在的⽬录。常⽤选项⽆举例3、cd指令Linux理论知识 路径的认识Linux的文件结构是一颗从根目录/ 开始的二叉树叶子节点一定是普通文件或者空目录非叶子节点一定是一个非空目录理解路径存在的意义树状组织⽅式都是为了保证快速定位查找到指定的⽂件⽽定位⽂件就需要具有唯⼀性的⽅案来进⾏定位⽂件。其中任何⼀个节点都只有⼀个⽗节点所以从根⽬录开始定位指定⽂件路径具有唯⼀性。绝对路径以根目录/ 为参照位置定位一个文件。一般在配置文件中进行使用。相对路径以非根目录/ 为参照位置定位一个文件。由于其便捷性一般在日常操作中用得多。语法cd 目录名功能改变⼯作⽬录将当前⼯作⽬录改变到指定的⽬录下。举例返回上级目录cd ..绝对路径定位目录cd /home/mydir相对路径定位目录cd ../mydir快速进入自己的家目录cd ~返回到最近访问目录cd -4、touch指令语法touch [选项] 文件功能touch命令参数可更改⽂档或⽬录的⽇期时间包括存取时间和更改时间或者创建⼀个空的⽂件。常⽤选项-a更新访问时间-m更新修改时间举例创建普通文件touch newFile.txt注意我们一般使用 stat 指令来查看文件时间。如stat newFile.txt更新文件访问时间accesstouch -a newFile.txt更新文件修改时间modifytouch -m newFile.txt5、mkdir 指令语法mkdir [选项] 目录功能在当前⽬录下创建⼀个名为“dirname”的⽬录常⽤选项-p递归创建目录若父目录不存在则自动创建。举例创建普通空目录mkdir mydir递归建立多个目录创建指定路径mkdir -p path1/path2/path3/path4注意tree指令是一个递归以树状结构显示指定目录的命令如果无法使用则需要进行安装。6、rmdir指令 和 rm指令1rmdir指令rmdir是⼀个与mkdir相对应的命令mkdir是建⽴⽬录⽽rmdir是删除目录。语法rmdir [选项] 目录/路径适⽤对象具有当前⽬录操作权限的所有使⽤者功能删除空⽬录常⽤选项-p 当⼦⽬录被删除后如果⽗⽬录也变成空⽬录的话就连带⽗⽬录⼀起删除。举例删除空目录rmdir mydir删除路径rmdir -p path1/path2/path3/path4指定路径中有不为空的路径便无法删除2rm指令rm指令可以同时删除⽂件或⽬录一般更多使用rm指令来进行删除操作。语法rm [选项] [目录/文件]适⽤对象所有使⽤者功能删除⽂件或⽬录常⽤选项-f 即使⽂件属性为只读(即写保护)亦直接删除-i 删除前逐⼀询问确认-r 删除⽬录及其下所有⽂件举例删除普通文件rm hello.txt删除目录文件rm -r dir删除普通文件前询问rm -i newFile.txt删除目录前询问rm -ri d递归强制删除非空目录rm -rf path17、man指令Linux的命令有很多参数我们不可能全记住可以通过查看联机⼿册获取帮助。语法man [选项] [章节号] 命令/函数常⽤选项-k 根据关键字搜索联机帮助-num 只在第num章节查找-a 将所有章节的都显⽰出来⽐如man printf 它缺省从第⼀章开始搜索知道就停⽌直到所有章节都搜索完毕当按下q退出。章节号man⼿册分为9章(不同系统可能会有差别)1 是普通的命令2 是系统调⽤如openwrite之类的(通过这个⾄少可以很⽅便的查到调⽤这个函数需要加什么头⽂件)3 是库函数如printffread是特殊⽂件也就是/dev下的各种设备⽂件4 略5 是指⽂件的格式⽐如passwd就会说明这个⽂件中各个字段的含义6 是给游戏留的由各个游戏⾃⼰定义7 是附件还有⼀些变量⽐如像environ这种全局变量在这⾥就有说明8 是系统管理⽤的命令这些命令只能由root使⽤如ifconfig9 略举例查看printf指令man printf查看系统调⽤man 2 fork查看C库函数man 3 printf查看变量man 7 signal查看man⼿册⾃⼰man man8、cp指令语法cp [选项] 源文件或目录 目标文件或目录功能复制⽂件或⽬录说明cp指令⽤于复制⽂件或⽬录。如同时指定两个以上的⽂件或⽬录且最后的⽬的地是⼀个已经存在的⽬录则它会把前⾯指定的所有⽂件或⽬录复制到此⽬录中。常⽤选项-f 强⾏复制⽂件或⽬录不论⽬的⽂件或⽬录是否已经存在-i 覆盖⽂件之前先询问⽤⼾-r 递归处理将指定⽬录下的⽂件与⼦⽬录⼀并处理。cp普通文件cp myfile.txt myfile-backup.txt将多个文件拷贝到指定路径下cp *.txt dir注意*表⽰通配符匹配所有.txt结尾的文件名。cp如果目标文件存在就覆盖cp myfile.txt myfile-backup.txt递归强制拷贝整个目录cp -rf test test-backup9、mv指令mv命令是move的缩写可以⽤来移动⽂件或者将⽂件改名经常⽤来备份⽂件或者⽬录。语法mv [选项] 源文件或目录 目标文件或目录功能视mv命令中第⼆个参数类型的不同⽬标⽂件或⽬标⽬录mv命令将⽂件重命名或将其移⾄⼀个新的⽬录中。当第⼆个参数类型是⽂件时mv命令完成⽂件重命名此时源⽂件只能有⼀个也可以是源⽬录它将所给的源⽂件或⽬录重命名为给定的⽬标⽂件名。当第⼆个参数是已存在的⽬录名称时源⽂件或⽬录参数可以有多个mv命令将各参数指定的源⽂件均移⾄⽬标⽬录中。常⽤选项-f 如果⽬标⽂件已经存在不会询问⽽直接覆盖-i若⽬标⽂件已经存在时就会询问是否覆盖举例更改名称mv myfile.txt yourfile.txt如果当前路径存在同名文件改名即覆盖mv yourfile.txt myfile.txt如果当前路径存在同名文件改名前可以添加 i 选项让系统提出警告供用户做选择mv -i yourfile.txt myfile.txt移动文件mv myfile.txt temp移动目录mv tmp tmp110、cat指令语法cat [选项] 文件功能查看⽬标⽂件的内容常⽤选项-b 对⾮空输出⾏编号-n 对输出的所有⾏编号-s 不输出多⾏空⾏举例先使用命令行构建多行文本cnt0; while [ $cnt -le 10 ]; do echo hello Linux; let cnt; done temp.txt查看文件内容cat temp.txt修改temp.txt使其携带多行空行vim temp.txt先点击 i 进入编辑模式编辑完成后点击Esc退出编辑模式再输入:wq保存并退出对非空输出行编号cat -b temp.txt对输出的所有行编号cat -n temp.txt多行空行压缩成⼀行cat -s temp.txt11、more指令语法more [选项] 文件功能more命令功能类似cat常⽤选项-n 指定输出⾏数q 退出more举例先使用命令行输出多行文本cnt0; while [ $cnt -le 2000 ]; do echo hello Linux; let cnt; done temp.txt指定输出行数more -10 temp.txt12、less指令less⼯具也是对⽂件或其它输出进⾏分⻚显⽰的⼯具应该说是linux正统查看⽂件内容的⼯具功能极其强⼤。less 的用法⽐起 more 更加的有弹性在 more 的时候我们并没有办法向前⾯翻只能往后⾯看。但若使用了 less 时就可以使用 [pageup] [pagedown] 以及 上、下等按键的功能来往前往后翻看文件更容易用来查看⼀个文件的内容。除此之外在 less ⾥头可以拥有更多的搜索功能不⽌可以向下搜也可以向上搜。语法less [参数] 文件功能less与more类似但使⽤less可以随意浏览⽂件⽽more仅能向前移动却不能向后移动⽽且less在查看之前不会加载整个⽂件。选项-i 忽略搜索时的⼤⼩写-N 显⽰每⾏的⾏号/字符串向下搜索“字符串”的功能?字符串向上搜索“字符串”的功能n重复前⼀个搜索与 / 或 ? 有关N反向重复前⼀个搜索与 / 或 ? 有关qquit举例先使用命令行输出多行文本cnt0; while [ $cnt -le 2000 ]; do echo hello Linux; let cnt; done temp.txt测试搜索功能less -N temp.txt13、head指令head 与 tail 就像它的名字⼀样的浅显易懂它是⽤来显⽰开头或结尾某个数量的⽂字区块head ⽤来显⽰档案的开头⾄标准输出中⽽ tail 想当然就是看档案的结尾。语法head [参数] 文件功能head ⽤来显⽰档案的开头⾄标准输出中默认head命令打印其相应⽂件的开头10⾏。选项-n 打印的行数举例默认打印文件前10行head temp.txt打印前5行head -5 temp.txt14、tail指令tail 命令从指定点开始将⽂件写到标准输出。使⽤ tail 命令的 -f 选项可以⽅便的查阅正在改变的⽇志⽂件tail -f filename会把 filename ⾥最尾部的内容显⽰在屏幕上并且不断刷新使你看到最新的⽂件内容。语法tail [参数] 文件功能⽤于显示指定⽂件末尾内容不指定⽂件时作为输⼊信息进⾏处理。常⽤查看⽇志⽂件。选项• -f 循环读取• -n 打印的⾏数举例默认打印后10行tail temp.txt打印后5行tail -5 temp.txt打印文件 [180200] 行的内容head -200 temp.txt | tail -20注意| 是管道作用是将前一个命令的输出作为后一个命令的输入。15、date指令语法date [选项] [格式字符串]在显⽰⽅⾯使⽤者可以设定欲显⽰的格式格式设定为⼀个后接数个标记其中常⽤的标记列表如下%H⼩时%M分钟%S秒%X相当于%H:%M:%S%d日%m⽉份%Y完整年份%F相当于%Y-%m-%d时间戳Unix时间戳是从1970年1⽉1⽇UTC/GMT的午夜开始所经过的秒数不考虑闰秒。时间-时间戳date %s时间戳-时间date -d时间戳举例显示常规时间 datedate %Y/%m/%ddate %Y/%m/%d-%H:%M:%S显示时间戳date %s时间戳转成时间date %Y/%m/%d-%H:%M:%S -d 时间戳16、echo指令语法echo [选项] [输出内容]功能在终端输出指定的字符串或变量值。常用选项-n输出内容后不自动换行举例输出普通字符串echo Hello Linux输出变量值echo My name is $name输出命令执行结果用 $() 包裹命令echo当前目录:$(pwd)echo系统时间:$(date)重定向输出到文件用覆盖或追加将输出写入文件echoHello World test.txtechoHello Linux test.txt注意使用 写入文件时如果文件不存在会新建文件如果文件存在则会先清空在写入。注意在 Linux 中还可以使用 printf 函数。

相关新闻

最新新闻

日新闻

周新闻

月新闻