快一个月没有更新了,总结一下最近学习Linux的一些学习笔记吧
本人使用腾讯云服务器来学习Linux,云服务器比虚拟机方便,不想费心劳神维护虚拟机。
入门基本指令
这里命令介绍的比较简单,把自己这段时间常用的操作写一下。
ls指令:用来显示当前目录下的文件名
如果想要看更多,比如文件属性信息,命令为ls -l
在输入ls -a之后,会显示以.开头的文件,这些文件叫做隐藏文件。
pwd指令:显示当前路径
刚开始学习时,输入pwd会显示 /home/yzy 这就叫做yzy用户的主工作目录。而这里的/我们把它叫做路径分隔符,而且是Linux专属的,而win路径分隔符是\,注意区分
ls -ld不进入目录,只显示目录本身的相关信息
cd指令:change director
cd ~ 跳到主工作目录下,也就是普通用户默认登陆所处的目录
cd - 可以将两个路径来回跳转
cd ..就是返回上一层
cd yzy这个指令就是进入yzy文件,如果cd+ls,这里类比win系统就是双击动作。
输入ls -al 可以看到隐藏文件:Linux配置文件,可以隐藏起来,本质是为了保护文件,防止用户在操作时误操作,同时可以看到有两个文件,一个文件是.,另一个文件时..,但其实这里代表的是目录,Linux的任何目录下,都默认存在两个默认目录:. .. 其中.代表当前目录,..代表回退功能。
为什么大部分操作系统,组织目录文件结构时,都喜欢用树形结构?
答:便于查找,所有的文件都必须有唯一的确定方式,从根节点,到叶子节点,路径是唯一的,因为任何一个子节点只有一个父节点,所以从子节点到父节点路径唯一,反过来自然也是唯一的。
rm指令:
rm -f :删除目录操作
rm -r 以递归的方式进行删除,有时候会遇到是否删除有保护的文件
rm -rf 这时Linux就不会再问是否真的要删除,会直接删除 r表示递归,f表示强制
rm *表示当前目录下的所有文件,这里的*表示通配符的概念,可以匹配当前目录下的任何内容
rm ./*其中./表示告知系统在当前目录
touch指令:创建文本文件
mkdir指令:创建目录 如果要包含多个目录的话 就要加 -p
这里要谈一谈windows和linux文件的区别,有个问题,
如果我们创建一个空文件,这个文件占不占用磁盘空间呢?
答案是占用:因为文件=文件的内容+属性
属性也是数据,磁盘是保存数据的,所有即便文件的大小是0kb,它也是占用空间的
文件的属性决定了文件的类别,要被保存起来,而windows和Linux保存文件类别的方式有差别
windows是通过文件名后缀区分文件类型
Linux:文件类型和文件后缀没有直接关系
但是我们依旧保留这种做法,为了照顾人的习惯
Linux是怎么区分的呢?
属性信息列当中,第一列的第一个字符来区别,第一个字符为d的为目录,字符为-的为普通文件(文本文件,可执行,各种库文件),l:链接文件,p:管道文件,c:字符文件(字符设备,键盘,显示器),b:块设备(磁盘)
man指令:这个指令很像matlab中的help,就是手册
cp指令:复制文件或目录进行粘贴,这里对于初学者就涉及到echo和>和>>的问题。echo用来将字符串显示到终端上,而>是输出重定向,他会清除文件历史内容从头写起,而>>是追加重定向,从文件末尾追加字符串写入。具体格式就是 cp 要拷贝的文件 要拷贝的路劲或者拷贝出来的新文件名字,如果想拷贝整个目录,用cp -r
mv指令:这里就简单的提两个功能,一个是改名,一个是移动文件(剪切+粘贴)
cat指令:功能是查看目标文件内容 比如touch text.txt 之后cat text.txt就会显示该文件的内容,这里还有个选项:-n 对输出的所有行编号 -b 对非空输出行编号,这里还有两种显示文件内容的方式:cat<text.txt或者 cat text.txt,这样一来,我们就有了清空一个文件内容的方法:>text.txt
tac指令:倒序输出
more指令:类似于cat指令,这个指令其实不太好,如果文件内容比较多,会一下子把屏幕占满,按回车继续向下翻,而且more只能向下翻,这是一个对文件机行逐行阅读的指令。比如more -5 text.txt
less指令:
less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。
less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看 但若使用了 less 时,就可以使用 [pageup][pagedown] 等按键的功能来往前往后翻看文件,更容易用 来查看一个文件的内容!
除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜。
head指令:用来显示开头某个数量的文字区块
tail指令:用来显示尾部某个数量的文字区块
说完这两个命令,假设有一个1000行的文本文件,我们想看其中501行-510行怎么办
head - 510 text.txt | tail -10
这里就涉及到了|符号的意义,这是指管道的意思,左边的输出作为右边的输入
如果想看510-501行怎么办?
head - 510 text.txt | tail -10 | tac
date指令:date可以指定格式显示当前时间
cal指令:这个就是日历
find指令:在目录结构中搜索文件,并执行指定的操作,可以根据名字查找也可以根据目录查找
grep指令:文本行过滤工具,以行为基本单位,这个命令在后面用的很多
stat指令:查看一个文件的属性,这里包括三个关键词:access,modify和change。
which指令:专门查找系统命令所在路径,比如查找上面的命令ls啊 cd啊。
alias指令:给命令起别名
zip和unzip指令:这里也涉及到了-r的问题
tar指令:这个命令其实比较复杂,我也没太记住,这个东西用的时候查一查就好了,毕竟还没涉及到文件操作。
其实这个还蛮重要的,应用范围要比zip和unzip广很多
bc指令:进行浮点数运算
最后是一些简单的系统命令:
uname指令:用来获取电脑和操作系统的相关信息
CTRL+c CTRL+d 分别代表终止当前程序运作和键盘输入结束
shutdown指令:关机