Linux学习笔记(二)——文件与磁盘系统
文件操作
ls [选项][目录名]
-l :列出长数据串,包含文件的属性与权限数据等
-a :列出全部的文件,连同隐藏文件(开头为.的文件)一起列出来(常用)
-d :仅列出目录本身,而不是列出目录的文件数据
-h :将文件容量以较易读的方式(GB,kB等)列出来
-R :连同子目录的内容一起列出(递归列出),等于该目录下的所有文件都会显示出来
cd [路径名]
~ 表示home目录
. 当前目录
.. 上一层目录
pwd [选项] 显示当前工作目录
-P :显示实际物理路径,而非使用连接(link)路径
-L :当目录为连接路径时,显示连接路径
mkdir [选项] 目录
-m, --mode=模式,设定权限<模式> (类似 chmod),而不是 rwxrwxrwx 减 umask
-p, --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录;
-v, --verbose 每次创建新目录都显示信息
--help 显示此帮助信息并退出
--version 输出版本信息并退出
rm [选项] 文件
-f, --force 忽略不存在的文件,从不给出提示。
-i, --interactive 进行交互式删除
-r, -R, --recursive 指示rm将参数中列出的全部目录和子目录均递归地删除。
-v, --verbose 详细显示进行的步骤
--help 显示此帮助信息并退出
--version 输出版本信息并退出
rmdir [选项] 目录
从一个目录中删除一个或多个子目录项,删除某目录时也必须具有对父目录的写权限
-p 递归删除目录dirname,当子目录删除后其父目录为空时,也一同被删除。如果整个路径被删除或者由于某种原因保留部分路径,则系统在标准输出上显示相应的信息。
-v, --verbose 显示指令执行过程
mv [选项] 源文件或目录 目标文件或目录
对文件进行移动或改名,可以批量移动
-b :若需覆盖文件,则覆盖前先行备份
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖
-u :若目标文件已经存在,且 source 比较新,才会更新(update)
-t : --target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY,即指定mv的目标目录,该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后
cp [选项] 源文件 目录 或 cp [选项] -t 目录 源文件
源文件复制至目标文件,或将多个源文件(批量)复制至目标目录
-a -all 全选
-r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
-t --target-directory 指定目标目录
-i --interactive 覆盖前询问(使前面的 -n 选项失效,与-f相反)
-n --no-clobber 不要覆盖已存在的文件(使前面的 -i 选项失效)
-f --force 强行复制文件或目录,不论目的文件或目录是否已经存在
-u --update 使用这项参数之后,只会在源文件的修改时间较目的文件更新时,或是对应的目的文件并不存在,才复制文件
cat [选项] [文件]
显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示
-A, --show-all 等价于 -vET
-b, --number-nonblank 对非空输出行编号
-e 等价于 -vE
-E, --show-ends 在每行结束处显示 $
-n, --number 对输出的所有行编号,由1开始对所有输出的行数编号
-s, --squeeze-blank 有连续两行以上的空白行,就代换为一行的空白行
-t 与 -vT 等价
-T, --show-tabs 将跳格字符显示为 ^I
-u (被忽略)
-v, --show-nonprinting 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
nl [选项] [文件]
输出的文件内容自动的加上行号,与cat -n略有不同
-b :指定行号指定的方式,主要有两种:
-b a :表示不论是否为空行,也同样列出行号(类似 cat -n)
-b t :如果有空行,空的那一行不要列出行号(默认值)
-n :列出行号表示的方法,主要有三种:
-n ln :行号在萤幕的最左方显示
-n rn :行号在自己栏位的最右方显示,且不加 0
more [-dlfpcsu ] [-num ] [+/ pattern] [+ linenum] [file ... ]
more 命令和 cat 的功能一样都是查看文件里的内容,但有所不同的是more可以按页来查看文件的内容,还支持直接跳转行等功能
+n 从笫n行开始显示
-n 定义屏幕大小为n行
+/pattern 在每个档案显示前搜寻该字串(pattern),然后从该字串前两行之后开始显示
-c 从顶部清屏,然后显示
-d 提示“Press space to continue,’q’ to quit(按空格键继续,按q键退出)”,禁用响铃功能
-l 忽略Ctrl+l(换页)字符
-p 通过清除窗口而不是滚屏来对文件进行换页,与-c选项相似
-s 把连续的多个空行显示为一行
-u 把文件内容中的下画线去掉
操作指令
Enter:向下n行,需要定义。默认为1行
Ctrl+F:向下滚动一屏
空格键:向下滚动一屏
Ctrl+B:返回上一屏
= :输出当前行的行号
:f :输出文件名和当前行的行号
V :调用vi编辑器
!命令 :调用Shell,并执行命令
q :退出more
less [参数] 文件
less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。
-b <缓冲区大小> 设置缓冲区的大小
-e 当文件显示结束后,自动离开
-f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
-g 只标志最后搜索的关键词
-i 忽略搜索时的大小写
-m 显示类似more命令的百分比
-N 显示每行的行号
-o <文件名> 将less 输出的内容在指定文件中保存起来
-Q 不使用警告音
-s 显示连续空行为一行
-S 行过长时间将超出部分舍弃
-x <数字> 将“tab”键显示为规定的数字空格
操作命令
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
b 向后翻一页
d 向后翻半页
h 显示帮助界面
Q 退出less 命令
u 向前滚动半页
y 向前滚动一行
空格键 滚动一行
回车键 滚动一页
[pagedown]: 向下翻动一页
[pageup]: 向上翻动一页
head [参数] [文件]
head 用来显示档案的开头至标准输出中,默认 head 命令打印其相应文件的开头 10 行。
-q 隐藏文件名
-v 显示文件名
-c<字节> 显示字节数
-n<行数> 显示的行数
tail [必要参数] [选择参数] [文件]
显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件
-f 循环读取
-q 不显示处理信息
-v 显示详细的处理信息
-c<数目> 显示的字节数
-n<行数> 显示行数
--pid=PID 与-f合用,表示在进程ID,PID死掉之后结束.
-q, --quiet, --silent 从不输出给出文件名的首部
-s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒
文件查找
which 可执行文件名称
在PATH变量指定的路径中,搜索某个系统命令在文件系统中的位置
例如:which pwd
whereis [-bmsu] [BMS 目录名 -f ] 文件名
定位可执行文件、源代码文件、帮助文件在文件系统中的位置
-b 定位可执行文件
-m 定位帮助文件
-s 定位源代码文件
-u 搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件
-B 指定搜索可执行文件的路径
-M 指定搜索帮助文件的路径
-S 指定搜索源代码文件的路径
locate [参数] [样式]
快速的搜寻文件系统内是否有指定的文件
-e 将排除在寻找的范围之外。
-1 如果 是 1.则启动安全模式。在安全模式下,使用者不会看到权限无法看到 的档案。这会始速度减慢,因为 locate 必须至实际的档案系统中取得档案的 权限资料。
-f 将特定的档案系统排除在外,例如我们没有到理要把 proc 档案系统中的档案 放在资料库中。
-q 安静模式,不会显示任何错误讯息。
-n 至多显示 n个输出。
-r 使用正规运算式 做寻找的条件。
-o 指定资料库存的名称。
-d 指定资料库的路径
find [目录路径] [选项] [表达式]
find命令将目录下符合表达式的文件路径输出
-print find 命令将匹配的文件输出到标准输出
-exec find 命令对匹配的文件执行该参数所给出的
shell 命令
-name 按照文件名查找文件
-type 查找某一类型的文件
文件压缩与上传
tar [必要参数] [选择参数] [文件]
压缩和解压文件,tar本身不具有压缩功能,他是调用压缩功能实现的
必要参数:
-A 新增压缩文件到已存在的压缩
-B 设置区块大小
-c 建立新的压缩文件
-d 记录文件的差别
-r 添加文件到已经压缩的文件
-u 添加改变了和现有的文件到已经存在的压缩文件
-x 从压缩的文件中提取文件
-t 显示压缩文件的内容
-z 支持gzip解压文件
-j 支持bzip2解压文件
-Z 支持compress解压文件
-v 显示操作过程
-l 文件系统边界设置
-k 保留原有文件不覆盖
-m 保留文件不被覆盖
-W 确认压缩文件的正确性
可选参数:
-b 设置区块数目
-C 切换到指定目录
-f 指定压缩文件
--help 显示帮助信息
--version 显示版本信息
例 将文件打全部打包成tar包
tar -cvf test.tar test.log # 仅打包,不压缩!
tar -zcvf test.tar.gz test.log # 打包后,以 gzip 压缩
tar -zcvf test.tar.bz2 test.log # 打包后,以 bzip2 压缩
将 tar 包解压缩
tar -zxvf test.tar.gz
gzip [参数] [文件或者目录]
文件经它压缩过后,其名称后面会多出".gz"的扩展名
-a或--ascii 使用ASCII文字模式。
-c或--stdout或--to-stdout 把压缩后的文件输出到标准输出设备,不去更动原始文件。
-d或--decompress或----uncompress 解开压缩文件。
-f或--force 强行压缩文件。不理会文件名称或硬连接是否存在以及该文件是否为符号连接。
-h或--help 在线帮助
例:压缩所有
gzip *
磁盘系统
df [选项] [磁盘名]
显示指定磁盘文件的可用空间
-a 全部文件系统列表
-h 方便阅读方式显示
-H 等于“-h”,但是计算式,1K=1000,而不是1K=1024
-i 显示inode信息
-k 区块为1024字节
-l 只显示本地文件系统
-m 区块为1048576字节
--no-sync 忽略 sync 命令
-P 输出格式为POSIX
--sync 在取得磁盘信息前,先执行sync命令
-T 文件系统类型
--block-size=<区块大小> 指定区块大小
-t<文件系统类型> 只显示选定文件系统的磁盘信息
-x<文件系统类型> 不显示选定文件系统的磁盘信息
--help 显示帮助信息
--version 显示版本信息
du [选项] [文件]
显示每个文件和目录的磁盘使用空间
-a或-all 显示目录中个别文件的大小。
-b或-bytes 显示目录或文件大小时,以byte为单位。
-- -c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
-k或--kilobytes 以KB(1024bytes)为单位输出。
-m或--megabytes 以MB为单位输出。
-s或--summarize 仅显示总计,只列出最后加总的值。
-h或--human-readable 以K,M,G为单位,提高信息的可读性。
-x或--one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
-L<符号链接>或--dereference<符号链接> 显示选项中所指定符号链接的源文件大小。
-S或--separate-dirs 显示个别目录的大小时,并不含其子目录的大小。
-X<文件>或--exclude-from=<文件> 在<文件>指定目录或文件。
--exclude=<目录或文件> 略过指定的目录或文件。
-D或--dereference-args 显示指定符号链接的源文件大小。
-H或--si 与-h参数相同,但是K,M,G是以1000为换算单位。
-l或--count-links 重复计算硬件链接的文件。
参考文章及致谢
45个常用Linux命令,让你轻松玩转Linux!
Linux命令大全|菜鸟教程
本文及参考文章仅供学习交流使用,禁止用于非法或商业用途,如有侵权请联系作者。