上篇:Linux操作系统指令(一) 系统管理篇
语法: mkdir [选项] dirname…
功能:在当前目录下创建一个名为 “dirname”的目录
常用选项:
-p, --parents **可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录; ****
举例:
mkdir –p test/test1 : 递归建立多个目录
rmdir是一个与mkdir相对应的命令。 mkdir是建立目录,而rmdir是删除命令。
rmdir [-p] [dirPath]
适用对象:具有当前目录操作权限的所有使用者
功能:删除空目录
常用选项:
- -p 当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除。
rm命令可以同时删除文件或目录
语法:
rm [-f-i-r-v] [dirName/dir]
参数信息:
- -f 即使文件属性为只读,也直接删除
- -i 删除前逐一询问确认
- -r 删除目录及其下所有文件
适用对象:所有使用者
功能:删除文件或目录
此cp非彼cp!!owo
语法: cp [选项] 源文件或目录 目标文件或目录
功能: 复制文件或目录
说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息。
常用选项:
- -f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
- -i 或 --interactive 覆盖文件之前先询问用户
- -r递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
- -R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理
举例:
# 拷贝文件
cp test.c new.c # 在当前文件夹拷贝生成一个new.c文件
cp test.c … # 在上级目录拷贝生成一个test.c文件
cp test.c …/new.c # 在上级目录拷贝生成一个new.c文件
# 拷贝文件夹
cp -r test new # 拷贝当前目录下的test文件夹到new文件夹内,如果源文件夹的文件不属于用户则提示
cp -rf test new # 拷贝当前目录下的test文件夹到new文件夹内,并忽略用户所属
mv命令是move的缩写,可以用来移动(剪切)文件或者将文件重命名。
语法: mv [选项] 源文件或目录 目标文件或目录
功能:
- 视mv命令中第二个参数类型的不同(是目标文件还是目标目录), mv命令将文件重命名或将其移至一个新的目录中。
- 当第二个参数类型是文件时, mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。
- 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个, mv命令将各参数指定的源文件均移至目标目录中。
常用选项:
举例:
mv test.c newFolder/ # 移动test.c文件到newFolder内
mv test newFolder # 移动test文件夹,到newFolder文件夹内。
mv test.c newName.c # 重命名test.c文件名称为newName.c
功能: 正序查看目标文件的内容,且输出末尾是文本的结尾。
语法: cat [选项] [文件]
其中:
- -b 对非空输出行编号
- -n 对输出的所有行编号
- -s 不输出多行空行
扩展:逆序查看目标文件内容
tac [选项] [文件] (名字都是倒过来的)
语法: more [选项][文件]
功能: more命令,功能类似 cat,但它是从开头开始查看逐渐下翻,并支持一次查看n行,但不支持上翻。
常用选项:
- -n 对输出的所有行编号
- q 退出more
举例:
more test.c # 从开头开始阅读test.c文件,并加载屏幕所能到达的最大行数,按回车每次加载1行
more -5 test.c # 从开头开始阅读test.c文件,一次阅读5行,看完按回车行数+5
#跳过查看
more -5 test.c # 规定行数,否则就会加载最大行
/100
# 从开始看,看的过程输入/100可以直接翻阅到第100行,如果超过文件行数则提示错误。
功能:less与more类似,但使用less可以随意浏览文件,而more仅能向前移动,却不能向后移动,而且less在查看之前不会加载整个文件。
语法: less [参数] 文件
参数:
- -i 忽略搜索时的大小写
- -N 显示每行的行号
- /字符串:向下搜索“字符串”的功能
- ?字符串:向上搜索“字符串”的功能
- n:重复前一个搜索(与 / 或 ? 有关)
- N:反向重复前一个搜索(与 / 或 ? 有关)
- q:quit
它是用来显示开头或结尾某个数量的文字区块, head 用来显示文件的开头至标准输出中
语法: head [参数]… [文件]…
功能:head 用来显示档案的开头至标准输出中,默认head命令打印其相应文件的开头10行。
选项:
-n<行数> 显示的行数
举例:
head -5 test.c #输出test.c文件内的前5行内容(到标准输出内,说人话:输出到屏幕)
head 与 tail 就像它的名字一样的浅显易懂,head 用来显示文件的开头至标准输出中,而 tail 就是看文件的结尾。tail 命令从指定点开始将文件写到标准输出(默认为后10行)。
语法: tail[必要参数][选择参数][文件]
功能: 用于显示指定文件末尾内容。不指定文件时,作为输入信息进行处理。常用查看日志文件。
参数:
- f 循环读取
- -n<行数> 显示行数。
使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不但刷新,使你看到最新的文件内容。
扩展:如何区间读取?
学习了4种读取方式,现在我们来尝试一下如何读取区间内的数据。
扩展知识点:
在Linux中,echo命令是输出内容到标准输出内,例如:
echo "Hello World" # output: [root@]# echo "Hello World" Hello World echo # output: [root@]# echo ...(空行)
这个时候我们默认将双引号内的字符串输入到标准输出中(屏幕),但如果我们需要将内容输出到某个文件内呢?很简单,这个时候我们引入了“输出重定向”。
echo "Hello World" > log.txt # 这句话的意思是,将输出的内容,输出重定向流入log.txt文件内,不再流入标准输出器内(此刻的流是在语言层面上帮助理解,但不能认为操作系统该操作为“流”!!) # 此时,我们会把Hello World文字输出到当前目录内的log.txt文件内,如果有当前文件则直接覆写,如果没有则创建之。 # 如果我们不想覆写写入文档内,那么我们只需要多加一个尖括号 echo "Hello World" >> log.txt # 此时内容不再是覆写,而是“追加重定向”在文档尾部
前面我们谈到的cat可以从文件内读取信息到标准输出内,那如果我们不指定文件名是,例如这样:
cat # 此时,我们系统会从我们的标准输入内读取信息(说人话:键盘,例如C/C++里的scanf, cin)
那刚刚上面我们能输出重定向,那现在我们能不能输出重定向呢?答案是可以的。
cat < test.c # 此时,test.c的内容会直接流入cat内
有没有一种方法,是将内容临时存储并流入下一个单元内。很简单,我们可以利用“管道”。
cat file.txt | head -10 # 中间的 | 就是管道的意思。 # 这里的意思是,cat读取file.txt内的内容,并将内容通过管道 | 放入head 里,最后head在将其进行 -10 操作 # 系统像流水线一样将内容逐个处理完流入到最后一个处理单元内。 # 小tips: 使用管道时,默认隐式发生重定向!
现在基础补充完了,我们现在来圆规正转,如何读取区间内容。此时我们模拟读取一个文件内的80-100行内容;
后续我们还会继续更新Linux操作系统相关笔记,如果你喜欢我们的文章一键三连哦,后续最新文章别忘了关注我们的公众号“01编程小屋” 抢先阅读哦!关注小屋,学习编程不迷路。你的支持就是我们坚持做下去的动力!