前言:
Linux下一切皆文件。
文件 = 文件内容 + 文件属性。
操作文件 = 对内容的操作 + 对属性的操作。
主要的文件是目录文件dir,和普通文件。(还有其它的)
一、ls/pwd
1、ls
对于目录,该命令列出该目录下的所有子目录与文件。(往下一层)
对于文件,将列出文件名以及其他信息。(该文件信息)
ls -l 等价于 ll,显示子目录与文件的详细信息(一行为整体)
ls -a(all),带.的隐藏文件/子目录也显示
ls -F,文件名最后加上一个符号,标识文件类型(普通文件还是目录文件)
ls -d,后面指定一个目录,不再显示其子目录和文件,而是显示目录信息本身。
二者结合后如下
-a 列出目录下的所有文件,包括以 . 开头的隐含文件。
-d 将目录像文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录
-i 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件
-k 以 k 字节的形式表示文件的大小。ls –alk 指定文件
-l 列出文件的详细信息。
-n 用数字的 UID,GID 代替名称。 (介绍 UID, GID)
-F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”表
示符号链接;“|”表示FIFOs;“=”表示套接字(sockets)。(目录类型识别)
-r 对目录反向排序。
-t 以时间排序。
-s 在l文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件)
-R 列出所有子目录下的文件。(递归)
-1 一行只输出一个文件。
2、pwd
无论是任何用户的身份在操作,都是打印出来当前所在的目录是什么。
print working dir
二、cd
cd == change dir
即改变工作目录到一个指定的目录下,也可以方便理解成跳转到指定目录。
cd .. : 返回上级目录
cd /home/litao/linux/ : 绝对路径
cd ../day02/ : 相对路径
cd ~:进入用户家目
cd -:返回最近访问目录
三、touch
touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间。
新建一个不存在的文件
给出了创建一个普通文件的方法。
-a 或--time=atime或--time=access或--time=use只更改存取时间。
-c 或--no-create 不建立任何文档。
-d 使用指定的日期时间,而非现在的时间。
-f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
-m 或--time=mtime或--time=modify 只更改变动时间。
-r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
-t 使用指定的日期时间,而非现在的时间。
四、mkdir/tree
make dir,创建一个新的目录。(在当前目录下)
mkdir -p 选项可以递归创建目录dir2,以及它的子目录dir3,及孙子目录dir4.
tree 后面加目录名,可以显示出它所在的这棵多叉树的所有结点信息。
五、rm
rm == remove(移除)
rm 目录时,必须加-r选项,表示递归实现删除目录及其子目录。
并且递归删除时,每删除一个时,都会进行询问(加 -f强制删除)
一般使用 rm -rf
-f 即使文件属性为只读(即写保护),亦直接删除
-i 删除前逐一询问确认
-r 删除目录及其下所有文件
五、man
1 查找可执行程序或shell命令
2 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)
3 是库函数,如printf,fread4是特殊文件,也就是/dev下的各种设备文件
5 是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义
6 是给游戏留的,由各个游戏自己定义
7 是附件还有一些变量,比如向environ这种全局变量在这里就有说明
8 是系统管理用的命令,这些命令只能由root使用,如ifconfig
-k 根据关键字搜索联机帮助
num 只在第num章节找
-a 将所有章节的都显示出来,比如 man printf 它缺省从第一章开始搜索,知道就停止,用a选项,当按下q退出,他会继续往后面搜索,直到所有章节都搜索完毕
六、cp/mv
1、cp(copy)
cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。
若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息。
f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
-i 或 --interactive 覆盖文件之前先询问用户
-r递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录或符号链接,则一律视为普通文件处理
-R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理
先用cp t dir1 dir,将t和dir拷贝一份到dir下。
然后使用cp -r dir2 dir,将dir2递归拷贝到dir下。
2、mv(move)
1. 当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。
2. 当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。(mv多个文件/目录)
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖
七、echo/cat/重定向问题
echo,给文件写入内容。(默认写入到屏幕“文件”上)
cat,查看文件内容。(默认从键盘“文件”输入,从屏幕“文件”输出)
文件读写:
-b 对非空输出行编号
-n 对输出的所有行编号
-s 不输出多行空行
重定向:
八、more/less
cat只适合看小文本。more和less适合查看大文本。
先利用一个shell脚本,创建有出1W行内容的text.txt文件
可以向上向下翻动,查看文件内容。
九、head/tail/管道
将text.txt中的前1020行写入临时文件temp.txt中,然后再tail显示其后20行
这样就得到1W行中的1001-1020行了
Linux下一切皆文件,管道也是文件,是一种内存级文件。
使用时通过内存即可,不需要创建文件,可以提高效率。(这里不细说)
十、find/which/whereis
这3个指令都是查找目录/文件,以及相关信息的。
利用find查找t,显示出绝对路径。
十一、grep(搜索+打印)
功能: 在文件中搜索字符串,将找到的行打印出来
-i :忽略大小写的不同,所以大小写视为相同
-n :顺便输出行号
-v :反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行
找到log.txt中有连续的999的内容并打印。
十二、zip/unzip/tar
1、tar
czf tzf xzf -C(-C在路径前面)
这几个指令是有关打包压缩,解压解包的。
2、zip/unzip
-r -d(-d在路径前面)
将new.zip 用-d选项 解压到 d1/d2/d3/d4目录下
目录
前言:
一、ls/pwd
1、ls
2、pwd
二、cd
三、touch
四、mkdir/tree
五、rm
五、man
六、cp/mv
1、cp(copy)
2、mv(move)
七、echo/cat/重定向问题
文件读写:
重定向:
八、more/less
九、head/tail/管道
十、find/which/whereis
十一、grep(搜索+打印)
十二、zip/unzip/tar
1、tar
2、zip/unzip