上文回顾:波奇学Linux:认识Linux和使用云服务器
本文再上文的基础上,学习Linux的基本指令
xhell:进入/退出全屏操作:alt + enter
清空页面:clear
pwd(print working directory):查看当前目录
ls(list):显示目录信息
mkdir (make directory):创建目录
创建一串路径
rmdir :只能删空目录
rm指令:删除普通文件/ -r :删除文件夹/ -rf :强制删除文件夹,跳过确认阶段。
-i 逐一询问
cd(change directory):更改目录
touch :创建非目录文件
上面的test.txt虽然什么都没写,但依然占据空间,文件大小=文件内容大小和文件属性(数据),对文件的操作可分为对文件的内容和对文件属性操作。
指令可以带选项
ls -l/ll:更详细的显现文件属性 ,对文件属性操作
登录名(操作者) 0(大小) Apr 25 16:29(时间)
ls -a:显示列出目录所有的文件,包含隐藏文件
以d开头的是目录,以-开头的是普通文件,.开头的文件是隐藏文件,
. :当前路径
.. :当前路径的上一个路径
ls * 通配符匹配某种文件,ls *.c 匹配.c格式的文件 ls test.*匹配文件名为test的文件
以下Linux目录对应路径简单版
其中/是作为根目录,也是作为分割符
test.c 的绝对路径从根目录:/home/test.c
相对路径 从当前路径定位:cd home /test.c
Linux的目录结构整体是一个多叉树,他的叶子节点,一定是空目录,或者非目录文件,路上的节点一定是非空目录
tree 将我们的目录的以树状形式显示
root命令安装命令
rm -rf / 删库指令
可惜失败了
man 指令:查找命令带选项
man有多个手册,包括系统指令,c语言库函数等
echo "字符串":把显示的字符串打印出来
echo "字符串" > 文件名:字符串不在显出,且输入到文件中
这种行为叫做输出重定向:本来该显示到显示器的内容,打印到文件中
cat :打印文件内容(如上图)
cp(copy):拷贝
cp 原文件名 目标文件名(文件不存在时就创建新的,文件存在时非目录进行询问)
目标文件名如果不在同一个目录下,输入文件路径就好。
拷贝目录:cp -r 源目录 目标目录
mv :剪切 原文件名 新文间名 (如果新文件名在该目录下,起到重命名的作用)
如果剪切目录,如果新目录名已存在那么放入新目录中,如果不存在则目录名更改,放在指定路径
Ctrl+c: 终止程序或命令行异常情况
alias 起别名
把ll起别名l1
重命名说暂时的
指令:我们把指令看成可执行程序(windows 下的.exe ,Linux 下的.out)
指令放在根目录下/user/bin下,因此执行指令时,会先去上面的路径去寻找,如果我们编写一个可执行程序放在该路径下,也能当成指令使用。
软件安装相当于 拷贝系统到系统目录下 卸载 相当于从系统目录下删除。
which 查看指令别名
输入,输出重定向
之前我们在echo中讲过 echo "abcd">file.txt 是输出重定向,此时字符串不再输出到屏幕上,而是输出到文件file.txt中,之所以说这是重定向,那么肯定有原定向。没错就是屏幕。
不妨把Linux下一切都看成文件的一种,包括普通文件,屏幕,键盘
屏幕是特殊的文件,只能写入到屏幕中,不能从屏幕中写出,
键盘是特殊的文件,只能从键盘中写出,不能写入到键盘中。
echo "abcd" 后面没有接符号时,默认输出到屏幕这个文件上,屏幕这个文件在操作使得字符显示出来。
输出重定向实际会包含1.清空文件,2.写入新内容,此时可以使用追加重定向来实现继续输入
追加重定向符号>>
cat +>/< 对文件内容进行重定向
上图情况下 file0.txt 的内容输出到file1.txt 上,符号相反,则是file1.txt的内容输入到file0.txt
如果无对象,默认输出时屏幕, 输入时默认是键盘,就像是fwrite 和 fopen一样。
cat -b 非空输出编号,-n 所有空行编号,-s 多行空行输出单行空行
more 和less 适合读大文本,cat适合小文本
把10000条hello Linux重定向到file1.txt
more 大文件 回车键 逐行下翻
more -500 file1.txt
less 指令查看文件可以上下翻,more只能下翻,和more使用一样,附带项会不一样
/数字 看第几行
查看前n行/后n行
head -n file.txt 看前n行
tail -n file.txt 看倒数第n行
查看文件片段
方法一建立中间文件,用head截取存重定向到中间文件,再用tail截取
使用管道文件
符号 | 会被解析为管道文件,内存级文件,内存级文件不占磁盘空间,保存在内存中。
上述命令行可以看成,head 先截取文件,把它放到管道文件中,然后tail 再对管道文件操作。
什么叫管道呢?
计算机修改文件,先把文件从硬盘加载到内存,修改后,再加载回内存里,所有的文件在某
管道文件不需要刷到磁盘上,直接在内存中操作。
管道可以接收多个指令
wc -l 统计文件行数