鸟哥私房菜笔记
1:cd(change directory):
cd 路径名
需要记忆的一点:cd ~
是进入返回家目录
2:PWD(Print Working Directory)
显示目前所在的目录
3.mkdir(Make Directory)
新建目录:
rmdir(remove Directory)
删除空的目录
由图可知,rmdir需要目录是空的。
引言:为什么我们可以在任意的目录下运行/bin/ls
的ls命令,而不会提示找不到命令,这是因为环境变量PATH导致的。
在执行一个命令时,比如说命令名字叫ls,系统会按照PATH定义的目录下查找文件名字是ls的可执行文件。
打印环境变量
在PATH中,使用:(冒号)来连接每个目录
1.ls(list)
打印当前目录的命令,有三个常见的参数形式需要记忆:
ls - a:全部文件显示,包含隐藏文件(开头为.的文件)
ls - d:仅显示目录本身,而不是列出目录的文件数据
不知道为啥只有一个本目录,就一个点
ls -l:详细信息显示,包含文件属性和权限等数据
2. cp
复制的意思,
cp-a:保留整个目标的信息,一模一样,就是persevere all的意思
test2.txt是普通的cp 而test3是特殊的cp -a复制而来的,比较信息可知-a 就是完全复制一个一模一样的
cp -i:如果目标文件已经存在,在覆盖时候会询问是否操作
cp - p:连同文件的属性(权限,用户,时间)一起复制过去,而不是使用默认属性
cp -r:递归复制,常用于目录复制
在使用cp命令时,要特别注意权限,在默认设置中,**源文件和目标文件的权限是不同的,目标文件的拥有者通常会是命令操作者本身。**如果你用root的权限去复制时,目标文件的拥有者和用户组就变成了root所有。、
所以,在复制密码文件(/etc/shadow)及一些文件时,必须加上cp -a / cp -p
,否则复制出来的文件是没有权限访问的。
cp -l:进行硬链接的链接文件创建,而不是复制文件本身
3.rm
rm -f :强制删除,忽略不存在的文件,不会出现警告信息
rm -I:交互模式,删除前会问你是否删除文件
rm -r :递归删除,用于删除目录的删除,这是十分危险的选项
为什么危险,因为rm-r
不会再问你是否删除 直接就删掉了
引言:当我们要查看一个文件内容时,有时候只关注一些细节,而不是通篇阅读,需要用到以下几个指令。
cat,tac,nl,more,less,more,head,tail,od
接下来逐个摸一遍这些命令:
1.cat(concatenate)
cat filename
cat -n:打印出行号,连同空白行号一并打印
cat -b :列出行号,但不会列出空白行号
2.tac(cat翻转过来)
就是反向打印,这点还是很好理解的。
文本内容从最后一行开始打印
3.nl
nl filename
显示的时候,同时输出行号,作用大致和cat-b差不多,都不会输出空白行号
前面tac,cat,nl都是一口气把数据全部输出到页面上,有没有可以一页一页观察数据的命令?
调用完more filenmae
之后,如果你的文件挺大的,就会有这样一个进度条,此时,你可以输入几个按键查找东西。
空格/Enter:往下翻一页
/字符串:在当前页面中,查找这个字符串
:f显示文件名以及目前显示的行数
这个操作我做不出来,不太会
:q退出:按了键盘q直接就没来
b往回翻页: 按键盘的b即可,没法截图展示。
和More比,更像现在浏览器使用的滑动条,不像more那样只能一页一页翻这么蠢
参数和more差不多,
/字符串 ?字符串分别代表向下向上查找对应字符串,翻页用键盘的上下左右就行
1.head(取出数据的前n行)
head -n filename
如果没有参数,那么默认n是10.
注意,这个n是指非空行,空行是不算这个里面的
tail(取出后面几行)
和head差不多用法,但是是倒着用的。
和管道一起运用
接下来是使用管道命令来进行一些操作,比如显示这篇文章的11-20行而且带行号
思路是先用head提取前20行之后,再取这个文件的后10行即可,很巧妙
上述的命令都是在查看纯文本文件的环境下进行的,然而执行文件通常都是二进制文件(binary file),使用上述命令查看内容是,会产生乱码,可以用od 这个命令来读取.
od -t a :使用默认的字符输出
od -t c:使用ASC2字符输出
需要注意的就是,参数是-t
后面的那些数字,所以完整的命令应该这样记忆od -t 参数 filename