Linux系统篇:基本指令Chapter 1:对文件的操作和认识 观众老爷们大家好 这里是邪修KING的独家频道本文属于系列Linux系统篇 ——操作指令一起学Linux的小伙伴可订阅专栏 Linux系统篇前置准备下载安装 XShell购买云服务器用XShell登陆主机进行远程操作具体教程可参考比特Linux安装教程概述序言文件和路径的认识命令其实就是文件命令的本质 可执行文件 我们写的可执行文件绝对路径查找目标文件具有唯一性的称为绝对路径/home/ubuntu 路径Linux访问一个文件先找到它。找到一个文件称为路径相对路径(以非/为参照位置定位一个文件)ls …/test.c clear清理先来认识两条基本指令whoami → Who am I? 我是谁用户名pwd → Print Working Directory 我在哪目录ubuntuVM-0-16-ubuntu:~$whoamiubuntu ubuntuVM-0-16-ubuntu:~$pwd/home/ubuntu一、ls指令语法 ls [选项] [⽬录或⽂件]功能对于⽬录该命令列出该⽬录下的所有⼦⽬录与⽂件。对于⽂件将列出⽂件名和其他信息。ls当前文件名或者目录ls-l ll 更详细的信息属性文件名ll就是系统默认alias取的别名两者一个意思alias取别名比如alias zhangsanpwd(临时取别名重登xshell会自动调回来不认识zhangsan)任何一个目录即便是空的。系统也要默认给该目录自动生成.指向自己和…指向上级而根目录/ 比较特殊 /的.和…都指向自己文件目录就是一个多叉树二、touch创建一个空普通文件touchtest.txt文件已经存在更新文件的时间戳默认同时更新Access、Modifytouch-atest.txt# 只更新 Access 时间touch-mtest.txt# 只更新 Modify 时间以下了解即可touch 不能修改 Change 时间Change 由内核自动管理。Access (atime) 访问时间最后一次读取文件内容的时间Modify (mtime) 修改时间最后一次修改【文件内容】的时间Change (ctime) 状态改变时间最后一次修改【文件元数据 (inode 信息)】的时间补充stat命令查看文件完整元信息权限、大小、所有者、三个核心时间戳三、mkdir语法mkdir [选项] dirname…功能在当前⽬录下创建⼀个名为 “dirname”的⽬录常用选项-p/–parents可以是一个路径名称即一次性创建多个目录mkdirmydir-pa/b/c/dtree语法tree a功能将当前名为a的目录成树状图展现出来[whbbite-alicloud test]$ tree path1 a └── b └── c └── d四、rmdir和rm指令rmdir只能删除一个空目录知道即可rm最常用的删除文件命令rm -f mydir强制删除-f不提示yes或norm -r a(递归删除文件多叉树直接删除整个a树状文件)警告rm命令在Linux系统中使用不同于Windows没有回收站这个东西删了就是删了一旦不小心执行了 rm -rf /,则需要重装系统若是云服务器可以在相应购买的地方进行重装较为方便Linux Shell 中 * 通配符详解“ * ” 通配符万能匹配匹配任意长度任意字符包括 0 个字符注意默认不会匹配 . 开头的隐藏文件ls*# 列出当前所有非隐藏文件ls*.txt# 匹配后缀 .txt → a.txtlstest*# 匹配以test开头 → test.logls*log# 匹配以log结尾 → test.logls*es*# 名字中间包含es → test.log关于tree命令安装在Ubuntu中的问题如图则是命令行不适用yum是CentOS/RHEL的系列包管理器而Ubuntu则用sudo apt install tree -y进行安装还有问题可根据情况通过ai工具进行查询动起手来如果在命令行中出现了异常情况统一尝试ctrlc来终止异常五、man 手册的章节编号Linux 标准手册分区man [章节号] 命令Linux 手册分为若干区段不同数字代表不同类型文档以下先知道了解即可。最常用的是前三个编号含义典型例子1用户命令shell 可直接执行的程序、指令ls、rm、printf(命令)、tree2系统调用内核提供 C 函数open()、fork()、unlink()3库函数C 标准库函数printf()、scanf()、strlen()4设备文件/dev 下硬件设备说明5配置文件格式/etc/passwd、fstab格式说明6游戏7杂项、协议、宏正则、信号、inode 概念8管理员 (root) 系统工具fdisk、mountubuntuVM-0-16-ubuntu:~$manrm补充几个 man 内常用快捷键方便查阅文档q → 退出 man 页面 当前需要空格 → 向下翻一页b → 向上翻一页补充Linux中好用的键位方向的上下键↑↓用来切换历史命令上一次输入的命令可尝试一下Linux Shell 中的 printf先分清两个极易混淆的东西C 语言 printf() 函数代码里用的Shell 内置命令 printf终端直接敲的命令你现在学的这个作用格式化输出文本不带换行意思例子printfhello# 输出helloubuntuxxx:~$# 没有换行文本紧贴命令提示符一定要加 \n警告重中之重printf 有两份文档① man 1 printf打开 Shell 内置命令 printf终端直接敲的命令printfhello\n② man 3 printf打开 C 语言标准库函数 printf ()写代码里面用的函数如果你直接输入manprintfman 会从小到大顺序查找章节先找到第 1 章所以默认展示【shell 命令 printf】。如果你想看 C 语言函数必须手动指定man 3 printf一句话区分 printf 冲突man 1 printf →终端指令man 3 printf →C 代码函数六、cp指令重要语法 cp [选项] 源⽂件或⽬录 ⽬标⽂件或⽬录功能: 复制⽂件或⽬录说明:• cp指令⽤于复制⽂件或⽬录• 如同时指定两个以上的⽂件或⽬录且最后的⽬的地是⼀个已经存在的⽬录则它会把前⾯指定的所有⽂件或⽬录复制到此⽬录中先touch创建hello.txt然后nano编辑记事本常⽤选项• -f 或 --force 强⾏复制⽂件或⽬录 不论⽬的⽂件或⽬录是否已经存在• -i 或 --interactive 覆盖⽂件之前先询问⽤⼾• -r 递归处理将指定⽬录下的⽂件与⼦⽬录⼀并处理。若源⽂件或⽬录的形态不属于⽬录或符号链接则⼀律视为普通⽂件处理注nano 是 Linux 终端下轻量级文本编辑器你可以类比成终端里的「记事本」。Ubuntu 默认自带打开直接打字没有复杂模式新手首选。ubuntuVM-0-16-ubuntu:~$touchhello.txt ubuntuVM-0-16-ubuntu:~$nanohello.txt在里面输入两行东西如下然后ctrlxy回车返回指令界面再执行cphello.txt world.txt就会发现新创建了一个world.txt文件并且hello.txt里的内容都拷贝到world.txt里面了还可以cphello.txt../a.txt##拷贝到上级目录并创建一个上级目录的a.txt文件里cphello.txt../##直接将该文件拷贝到上级目录里最后我们看普通文件和多个文件的cp# cp普通⽂件[whbbite-alicloud test]$echo你好⽐特就业课myfile.txt[whbbite-alicloud test]$catmyfile.txt 你好⽐特就业课[whbbite-alicloud test]$ ll total4-rw-rw-r--1whb whb22Jan1115:47 myfile.txt[whbbite-alicloud test]$cpmyfile.txt myfile-backup.txt[whbbite-alicloud test]$ ll total8-rw-rw-r--1whb whb22Jan1115:47 myfile-backup.txt -rw-rw-r--1whb whb22Jan1115:47 myfile.txt[whbbite-alicloud test]$catmyfile-backup.txt 你好⽐特就业课# 将多个⽂件拷⻉到指定路径下[whbbite-alicloud test]$ ll total8-rw-rw-r--1whb whb22Jan1115:47 myfile-backup.txt -rw-rw-r--1whb whb22Jan1115:47 myfile.txt[whbbite-alicloud test]$mkdirdir[whbbite-alicloud test]$ ll total12drwxrwxr-x2whb whb4096Jan1115:48dir-rw-rw-r--1whb whb22Jan1115:47 myfile-backup.txt -rw-rw-r--1whb whb22Jan1115:47 myfile.txt[whbbite-alicloud test]$cp*.txtdir# *表⽰通配符匹配所有.txt结尾的⽂件名[whbbite-alicloud test]$ ll total12drwxrwxr-x2whb whb4096Jan1115:48dir-rw-rw-r--1whb whb22Jan1115:47 myfile-backup.txt -rw-rw-r--1whb whb22Jan1115:47 myfile.txt[whbbite-alicloud test]$ treedirdir├── myfile-backup.txt └── myfile.txt# cp如果⽬标⽂件存在就覆盖[whbbite-alicloud test]$echohello bite techmyfile.txt[whbbite-alicloud test]$catmyfile.txt hello bite tech[whbbite-alicloud test]$cpmyfile.txt myfile-backup.txt[whbbite-alicloud test]$catmyfile-backup.txt hello bite tech# 拷⻉前询问[whbbite-alicloud test]$cp-imyfile.txt myfile-backup.txt cp: overwrite ‘myfile-backup.txt’? y# 递归强制拷⻉整个⽬录[whbbite-alicloud ~]$ treetesttest├──dir│ ├── myfile-backup.txt │ └── myfile.txt ├── myfile-backup.txt └── myfile.txt1directory,4files[whbbite-alicloud ~]$cp-rftesttest-backup[whbbite-alicloud ~]$ tree test-backup test-backup ├──dir│ ├── myfile-backup.txt │ └── myfile.txt ├── myfile-backup.txt └── myfile.txt1directory,4files