diff --git a/docs/SUMMARY.md b/docs/SUMMARY.md index c4a1067..1de292b 100644 --- a/docs/SUMMARY.md +++ b/docs/SUMMARY.md @@ -9,7 +9,7 @@ ## Shell -* [Shell 快速指南](shell/shell-quickstart.md) +* [Shell 快速指南](shell.md) ## Vim diff --git a/docs/commands/linux-cmd-compress.md b/docs/commands/linux-cmd-compress.md new file mode 100644 index 0000000..e324acc --- /dev/null +++ b/docs/commands/linux-cmd-compress.md @@ -0,0 +1,255 @@ +# Linux 常用命令-压缩 + +## zip + +> zip 命令用于压缩文件。 +> +> zip 是个使用广泛的压缩程序,文件经它压缩后会另外产生具有".zip"扩展名的压缩文件。 + +### 语法 + +``` +zip [-AcdDfFghjJKlLmoqrSTuvVwXyz$][-b <工作目录>][-ll][-n <字尾字符串>][-t <日期时间>][-<压缩效率>][压缩文件][文件...][-i <范本样式>][-x <范本样式>] +``` + +**参数**: + +- -A 调整可执行的自动解压缩文件。 +- -b<工作目录> 指定暂时存放文件的目录。 +- -c 替每个被压缩的文件加上注释。 +- -d 从压缩文件内删除指定的文件。 +- -D 压缩文件内不建立目录名称。 +- -f 此参数的效果和指定"-u"参数类似,但不仅更新既有文件,如果某些文件原本不存在于压缩文件内,使用本参数会一并将其加入压缩文件中。 +- -F 尝试修复已损坏的压缩文件。 +- -g 将文件压缩后附加在既有的压缩文件之后,而非另行建立新的压缩文件。 +- -h 在线帮助。 +- -i<范本样式> 只压缩符合条件的文件。 +- -j 只保存文件名称及其内容,而不存放任何目录名称。 +- -J 删除压缩文件前面不必要的数据。 +- -k 使用MS-DOS兼容格式的文件名称。 +- -l 压缩文件时,把LF字符置换成LF+CR字符。 +- -ll 压缩文件时,把LF+CR字符置换成LF字符。 +- -L 显示版权信息。 +- -m 将文件压缩并加入压缩文件后,删除原始文件,即把文件移到压缩文件中。 +- -n<字尾字符串> 不压缩具有特定字尾字符串的文件。 +- -o 以压缩文件内拥有最新更改时间的文件为准,将压缩文件的更改时间设成和该文件相同。 +- -q 不显示指令执行过程。 +- -r 递归处理,将指定目录下的所有文件和子目录一并处理。 +- -S 包含系统和隐藏文件。 +- -t<日期时间> 把压缩文件的日期设成指定的日期。 +- -T 检查备份文件内的每个文件是否正确无误。 +- -u 更换较新的文件到压缩文件内。 +- -v 显示指令执行过程或显示版本信息。 +- -V 保存VMS操作系统的文件属性。 +- -w 在文件名称里假如版本编号,本参数仅在VMS操作系统下有效。 +- -x<范本样式> 压缩时排除符合条件的文件。 +- -X 不保存额外的文件属性。 +- -y 直接保存符号连接,而非该连接所指向的文件,本参数仅在UNIX之类的系统下有效。 +- -z 替压缩文件加上注释。 +- -$ 保存第一个被压缩文件所在磁盘的卷册名称。 +- -<压缩效率> 压缩效率是一个介于1-9的数值。 + +### 实例 + +将 /home/html/ 这个目录下所有文件和文件夹打包为当前目录下的 html.zip: + +``` +zip -q -r html.zip /home/html +``` + +如果在我们在 /home/html 目录下,可以执行以下命令: + +``` +zip -q -r html.zip * +``` + +从压缩文件 cp.zip 中删除文件 a.c + +``` +zip -dv cp.zip a.c +``` + +## unzip + +> unzip 命令用于解压缩 zip 文件 +> +> unzip 为 .zip 压缩文件的解压缩程序。 + +### 语法 + +``` +unzip [-cflptuvz][-agCjLMnoqsVX][-P <密码>][.zip文件][文件][-d <目录>][-x <文件>] 或 unzip [-Z] +``` + +**参数**: + +- -c 将解压缩的结果显示到屏幕上,并对字符做适当的转换。 +- -f 更新现有的文件。 +- -l 显示压缩文件内所包含的文件。 +- -p 与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换。 +- -t 检查压缩文件是否正确。 +- -u 与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中。 +- -v 执行是时显示详细的信息。 +- -z 仅显示压缩文件的备注文字。 +- -a 对文本文件进行必要的字符转换。 +- -b 不要对文本文件进行字符转换。 +- -C 压缩文件中的文件名称区分大小写。 +- -j 不处理压缩文件中原有的目录路径。 +- -L 将压缩文件中的全部文件名改为小写。 +- -M 将输出结果送到more程序处理。 +- -n 解压缩时不要覆盖原有的文件。 +- -o 不必先询问用户,unzip执行后覆盖原有文件。 +- -P<密码> 使用zip的密码选项。 +- -q 执行时不显示任何信息。 +- -s 将文件名中的空白字符转换为底线字符。 +- -V 保留VMS的文件版本信息。 +- -X 解压缩时同时回存文件原来的UID/GID。 +- [.zip文件] 指定.zip压缩文件。 +- [文件] 指定要处理.zip压缩文件中的哪些文件。 +- -d<目录> 指定文件解压缩后所要存储的目录。 +- -x<文件> 指定不要处理.zip压缩文件中的哪些文件。 +- -Z unzip -Z等于执行zipinfo指令。 + +### 实例 + +查看压缩文件中包含的文件: + +``` +# unzip -l abc.zip +Archive: abc.zip + Length Date Time Name +-------- ---- ---- ---- + 94618 05-21-10 20:44 a11.jpg + 202001 05-21-10 20:44 a22.jpg + 16 05-22-10 15:01 11.txt + 46468 05-23-10 10:30 w456.JPG + 140085 03-14-10 21:49 my.asp +-------- ------- + 483188 5 files +``` + +-v 参数用于查看压缩文件目录信息,但是不解压该文件。 + +``` +# unzip -v abc.zip +Archive: abc.zip +Length Method Size Ratio Date Time CRC-32 Name +-------- ------ ------- ----- ---- ---- ------ ---- + 94618 Defl:N 93353 1% 05-21-10 20:44 9e661437 a11.jpg + 202001 Defl:N 201833 0% 05-21-10 20:44 1da462eb a22.jpg + 16 Stored 16 0% 05-22-10 15:01 ae8a9910 ? +-|¥+-? (11).txt + 46468 Defl:N 39997 14% 05-23-10 10:30 962861f2 w456.JPG + 140085 Defl:N 36765 74% 03-14-10 21:49 836fcc3f my.asp +-------- ------- --- ------- + 483188 371964 23% 5 files +``` + +## tar + +> tar 命令用于备份文件。 +> +> tar 是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件。 + +### 语法 + +``` +tar [-ABcdgGhiklmMoOpPrRsStuUvwWxzZ][-b <区块数目>][-C <目的目录>][-f <备份文件>][-F ][-K <文件>][-L <媒体容量>][-N <日期时间>][-T <范本文件>][-V <卷册名称>][-X <范本文件>][-<设备编号><存储密度>][--after-date=<日期时间>][--atime-preserve][--backuup=<备份方式>][--checkpoint][--concatenate][--confirmation][--delete][--exclude=<范本样式>][--force-local][--group=<群组名称>][--help][--ignore-failed-read][--new-volume-script=][--newer-mtime][--no-recursion][--null][--numeric-owner][--owner=<用户名称>][--posix][--erve][--preserve-order][--preserve-permissions][--record-size=<区块数目>][--recursive-unlink][--remove-files][--rsh-command=<执行指令>][--same-owner][--suffix=<备份字尾字符串>][--totals][--use-compress-program=<执行指令>][--version][--volno-file=<编号文件>][文件或目录...] +``` + +**参数**: + +- -A或--catenate 新增文件到已存在的备份文件。 +- -b<区块数目>或--blocking-factor=<区块数目> 设置每笔记录的区块数目,每个区块大小为12Bytes。 +- -B或--read-full-records 读取数据时重设区块大小。 +- -c或--create 建立新的备份文件。 +- -C<目的目录>或--directory=<目的目录> 切换到指定的目录。 +- -d或--diff或--compare 对比备份文件内和文件系统上的文件的差异。 +- -f<备份文件>或--file=<备份文件> 指定备份文件。 +- -F或--info-script= 每次更换磁带时,就执行指定的Script文件。 +- -g或--listed-incremental 处理GNU格式的大量备份。 +- -G或--incremental 处理旧的GNU格式的大量备份。 +- -h或--dereference 不建立符号连接,直接复制该连接所指向的原始文件。 +- -i或--ignore-zeros 忽略备份文件中的0 Byte区块,也就是EOF。 +- -k或--keep-old-files 解开备份文件时,不覆盖已有的文件。 +- -K<文件>或--starting-file=<文件> 从指定的文件开始还原。 +- -l或--one-file-system 复制的文件或目录存放的文件系统,必须与tar指令执行时所处的文件系统相同,否则不予复制。 +- -L<媒体容量>或-tape-length=<媒体容量> 设置存放每体的容量,单位以1024 Bytes计算。 +- -m或--modification-time 还原文件时,不变更文件的更改时间。 +- -M或--multi-volume 在建立,还原备份文件或列出其中的内容时,采用多卷册模式。 +- -N<日期格式>或--newer=<日期时间> 只将较指定日期更新的文件保存到备份文件里。 +- -o或--old-archive或--portability 将资料写入备份文件时使用V7格式。 +- -O或--stdout 把从备份文件里还原的文件输出到标准输出设备。 +- -p或--same-permissions 用原来的文件权限还原文件。 +- -P或--absolute-names 文件名使用绝对名称,不移除文件名称前的"/"号。 +- -r或--append 新增文件到已存在的备份文件的结尾部分。 +- -R或--block-number 列出每个信息在备份文件中的区块编号。 +- -s或--same-order 还原文件的顺序和备份文件内的存放顺序相同。 +- -S或--sparse 倘若一个文件内含大量的连续0字节,则将此文件存成稀疏文件。 +- -t或--list 列出备份文件的内容。 +- -T<范本文件>或--files-from=<范本文件> 指定范本文件,其内含有一个或多个范本样式,让tar解开或建立符合设置条件的文件。 +- -u或--update 仅置换较备份文件内的文件更新的文件。 +- -U或--unlink-first 解开压缩文件还原文件之前,先解除文件的连接。 +- -v或--verbose 显示指令执行过程。 +- -V<卷册名称>或--label=<卷册名称> 建立使用指定的卷册名称的备份文件。 +- -w或--interactive 遭遇问题时先询问用户。 +- -W或--verify 写入备份文件后,确认文件正确无误。 +- -x或--extract或--get 从备份文件中还原文件。 +- -X<范本文件>或--exclude-from=<范本文件> 指定范本文件,其内含有一个或多个范本样式,让ar排除符合设置条件的文件。 +- -z或--gzip或--ungzip 通过gzip指令处理备份文件。 +- -Z或--compress或--uncompress 通过compress指令处理备份文件。 +- -<设备编号><存储密度> 设置备份用的外围设备编号及存放数据的密度。 +- --after-date=<日期时间> 此参数的效果和指定"-N"参数相同。 +- --atime-preserve 不变更文件的存取时间。 +- --backup=<备份方式>或--backup 移除文件前先进行备份。 +- --checkpoint 读取备份文件时列出目录名称。 +- --concatenate 此参数的效果和指定"-A"参数相同。 +- --confirmation 此参数的效果和指定"-w"参数相同。 +- --delete 从备份文件中删除指定的文件。 +- --exclude=<范本样式> 排除符合范本样式的问家。 +- --group=<群组名称> 把加入设备文件中的文件的所属群组设成指定的群组。 +- --help 在线帮助。 +- --ignore-failed-read 忽略数据读取错误,不中断程序的执行。 +- --new-volume-script= 此参数的效果和指定"-F"参数相同。 +- --newer-mtime 只保存更改过的文件。 +- --no-recursion 不做递归处理,也就是指定目录下的所有文件及子目录不予处理。 +- --null 从null设备读取文件名称。 +- --numeric-owner 以用户识别码及群组识别码取代用户名称和群组名称。 +- --owner=<用户名称> 把加入备份文件中的文件的拥有者设成指定的用户。 +- --posix 将数据写入备份文件时使用POSIX格式。 +- --preserve 此参数的效果和指定"-ps"参数相同。 +- --preserve-order 此参数的效果和指定"-A"参数相同。 +- --preserve-permissions 此参数的效果和指定"-p"参数相同。 +- --record-size=<区块数目> 此参数的效果和指定"-b"参数相同。 +- --recursive-unlink 解开压缩文件还原目录之前,先解除整个目录下所有文件的连接。 +- --remove-files 文件加入备份文件后,就将其删除。 +- --rsh-command=<执行指令> 设置要在远端主机上执行的指令,以取代rsh指令。 +- --same-owner 尝试以相同的文件拥有者还原问家你。 +- --suffix=<备份字尾字符串> 移除文件前先行备份。 +- --totals 备份文件建立后,列出文件大小。 +- --use-compress-program=<执行指令> 通过指定的指令处理备份文件。 +- --version 显示版本信息。 +- --volno-file=<编号文件> 使用指定文件内的编号取代预设的卷册编号。 + +### 实例 + +压缩文件 非打包 + +``` +# touch a.c +# tar -czvf test.tar.gz a.c //压缩 a.c文件为test.tar.gz +a.c +``` + +列出压缩文件内容 + +``` +# tar -tzvf test.tar.gz +-rw-r--r-- root/root 0 2010-05-24 16:51:59 a.c +``` + +解压文件 + +``` +# tar -xzvf test.tar.gz a.c +``` + diff --git a/docs/commands/linux-cmd-file.md b/docs/commands/linux-cmd-file.md new file mode 100644 index 0000000..4ffe04a --- /dev/null +++ b/docs/commands/linux-cmd-file.md @@ -0,0 +1,229 @@ +# Linux 常用命令-文件 + +## chmod + +Linux/Unix 的文件调用权限分为三级 : 文件拥有者、群组、其他。利用 chmod 可以藉以控制文件如何被他人所调用。 + +**使用权限** : 所有使用者 + +### 语法 + +``` +chmod [-cfvR] [--help] [--version] mode file... +``` + +**参数说明** + +mode : 权限设定字串,格式如下 : + +``` +[ugoa...][[+-=][rwxX]...][,...] +``` + +其中: + +- u 表示该文件的拥有者,g 表示与该文件的拥有者属于同一个群体(group)者,o 表示其他以外的人,a 表示这三者皆是。 +- \+ 表示增加权限、- 表示取消权限、= 表示唯一设定权限。 +- r 表示可读取,w 表示可写入,x 表示可执行,X 表示只有当该文件是个子目录或者该文件已经被设定过为可执行。 + +其他参数说明: + +- -c : 若该文件权限确实已经更改,才显示其更改动作 +- -f : 若该文件权限无法被更改也不要显示错误讯息 +- -v : 显示权限变更的详细资料 +- -R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更) +- --help : 显示辅助说明 +- --version : 显示版本 + +### 实例 + +将文件 file1.txt 设为所有人皆可读取 : + +``` +chmod ugo+r file1.txt +``` + +将文件 file1.txt 设为所有人皆可读取 : + +``` +chmod a+r file1.txt +``` + +将文件 file1.txt 与 file2.txt 设为该文件拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 : + +``` +chmod ug+w,o-w file1.txt file2.txt +``` + +将 ex1.py 设定为只有该文件拥有者可以执行 : + +``` +chmod u+x ex1.py +``` + +将目前目录下的所有文件与子目录皆设为任何人可读取 : + +``` +chmod -R a+r * +``` + +此外chmod也可以用数字来表示权限如 : + +``` +chmod 777 file +``` + +语法为: + +``` +chmod abc file +``` + +其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。 + +r=4,w=2,x=1 + +- 若要rwx属性则4+2+1=7; +- 若要rw-属性则4+2=6; +- 若要r-x属性则4+1=5。 + +``` +chmod a=rwx file +``` + +和 + +``` +chmod 777 file +``` + +效果相同 + +``` +chmod ug=rwx,o=x file +``` + +和 + +``` +chmod 771 file +``` + +效果相同 + +若用chmod 4755 filename可使此程序具有root的权限 + +## more + +more 命令类似 cat ,不过会以一页一页的形式显示,更方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi 相似),使用中的说明文件,请按 h 。 + +### 语法 + +``` +more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..] +``` + +**参数**: + +- -num 一次显示的行数 +- -d 提示使用者,在画面下方显示 [Press space to continue, 'q' to quit.] ,如果使用者按错键,则会显示 [Press 'h' for instructions.] 而不是 '哔' 声 +- -l 取消遇见特殊字元 ^L(送纸字元)时会暂停的功能 +- -f 计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上) +- -p 不以卷动的方式显示每一页,而是先清除萤幕后再显示内容 +- -c 跟 -p 相似,不同的是先显示内容再清除其他旧资料 +- -s 当遇到有连续两行以上的空白行,就代换为一行的空白行 +- -u 不显示下引号 (根据环境变数 TERM 指定的 terminal 而有所不同) +- +/pattern 在每个文档显示前搜寻该字串(pattern),然后从该字串之后开始显示 +- +num 从第 num 行开始显示 +- fileNames 欲显示内容的文档,可为复数个数 + +### 实例 + +逐页显示 testfile 文档内容,如有连续两行以上空白行则以一行空白行显示。 + +``` +more -s testfile +``` + +从第 20 行开始显示 testfile 之文档内容。 + +``` +more +20 testfile +``` + +## less + +less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。 + +### 语法 + +``` +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]: 向上翻动一页 + +### 实例 + +1、查看文件 + +``` +less log2013.log +``` + +2、ps查看进程信息并通过less分页显示 + +``` +ps -ef |less +``` + +3、查看命令历史使用记录并通过less分页显示 + +``` +[root@localhost test]# history | less +22 scp -r tomcat6.0.32 root@192.168.120.203:/opt/soft +23 cd .. +24 scp -r web root@192.168.120.203:/opt/ +25 cd soft +26 ls +……省略…… +``` + +4、浏览多个文件 + +``` +less log2013.log log2014.log +``` + +说明: + +输入 :n后,切换到 log2014.log + +输入 :p 后,切换到log2013.log \ No newline at end of file diff --git a/docs/linux.xmind b/docs/linux.xmind index 4520c4e..8a5d1cc 100644 Binary files a/docs/linux.xmind and b/docs/linux.xmind differ diff --git a/docs/resources.md b/docs/resources.md index 48f7453..9e48082 100644 --- a/docs/resources.md +++ b/docs/resources.md @@ -3,6 +3,8 @@ ## Linux * [awesome-linux](https://github.com/aleksandar-todorovic/awesome-linux) +* [awesome-linux-software](https://github.com/LewisVo/Awesome-Linux-Software) +* [linux-tutorial](https://github.com/judasn/Linux-Tutorial) * [菜鸟教程-Linux](http://www.runoob.com/linux/linux-tutorial.html) ## Shell diff --git a/docs/shell/shell-quickstart.md b/docs/shell.md similarity index 99% rename from docs/shell/shell-quickstart.md rename to docs/shell.md index a5e7b3b..5275994 100644 --- a/docs/shell/shell-quickstart.md +++ b/docs/shell.md @@ -1,3 +1,14 @@ +--- +title: Shell 快速指南 +date: 2017-11-20 +categories: +- linux +tags: +- linux +- shell +- bash +--- + # Shell 快速指南 ``` @@ -1165,4 +1176,4 @@ echo "xtrace is turned off again" - [dotfiles.github.io](http://dotfiles.github.io/),上面有bash和其它shell的各种dotfiles集合以及shell框架的链接 - [Runoob Shell 教程](http://www.runoob.com/linux/linux-shell.html) -最后,Stack Overflow上 [bash 标签下](https://stackoverflow.com/questions/tagged/bash)有很多你可以学习的问题,当你遇到问题时,也是一个提问的好地方。 \ No newline at end of file +最后,Stack Overflow上 [bash 标签下](https://stackoverflow.com/questions/tagged/bash)有很多你可以学习的问题,当你遇到问题时,也是一个提问的好地方。 diff --git a/docs/vim.md b/docs/vim.md index 57bd102..53e0e72 100644 --- a/docs/vim.md +++ b/docs/vim.md @@ -1,3 +1,13 @@ +--- +title: Vim 学习笔记 +date: 2017-11-17 +categories: +- linux +tags: +- linux +- vim +--- + # Vim 学习笔记 ## 概念