linux常用命令
1. ls
显示目录文件夹及文件
使用方式: ls -lt
-a 显示目录下所有文件及文件夹包括 . 与 .. -A 显示目录下所有文件及文件夹不包括 . 与 .. -l 显示目录下所有文件及文件夹详细信息 -t 按修改时间排序(倒序) -F 如目录后加/ 如可执行文件后加* -r 按文件名字母排序(倒序) -R 显示目录下所有文件夹及文件(包括子文件夹)2. cat
将文件内容串连后输出
使用方式: cat file1 file2 filen
-n 对所有输出的行数加序号 -b 对所有输出的非空白行数加序号 -s 如连续两行或以上的空行,替代为一行空行3.chmod
更新文件夹或文件权限
使用方式: chmod a+x *.*
ugoa +-= rwx -c 如修改后的权限与之前不同,显示修改讯息 -v 显示修改讯息 -f 隐藏错误 -R 遍历设置权限(子文件夹)4.chown
更新文件夹拥有者与组
使用方式: chown -R root:root *
-R 遍历设置(子文件夹)
5. cp
本地复制文件夹与文件
使用方式: cp -a source dest
-a 保留源文件的权限等讯息 -r 遍历复制(子文件夹) -f 当目标文件与原文件重名,先删除目标文件,再复制6. cut
显示文件内容N-M列的内容
使用方式: cut -c1-6 file
-c 显示每行从头开始的num1到num2的文字
7. rm
删除文件
使用方式: rm -rf file or folder
-i 删除前逐一询问确认 -f 即使文件只读都强制删除,不需要确认 -r 遍历删除(子文件夹)8. rmdir
删除文件夹
使用方式: rmdir folder
-p 如果删除子文件夹后是空文件夹,则一并删除。注意:会一直删除父级目录,直到父级目录不为空。9. unzip
解密
使用方式: unzip -P 123456 -d path o.zip
-P <密码> zip 压缩包的密码 -f 覆盖原有文件 -d <路径> 指定解压路径 -n 解压缩时不覆盖原有文件 -o 不经询问,直接覆盖原有文件 -u 覆盖原有文件,并将压缩文件中的其他文件解压缩到目录中 -l 显示压缩文件内所包含的文件 -t 检查压缩文件是否正确 -Z unzip -Z 等于执行 zipinfo 指令 -j 不处理压缩文件中原有的目录路径 -C 压缩文件中的文件名称区分大小写 -z 显示压缩包注释 -L 将压缩文件中的全部文件名改为小写 -s 将文件名中的空格转换下划线 -X 解压缩时保留文件原来的 UID/GID -q 执行时不显示任何信息 -v 执行是时显示详细的信息 -c 将解压缩的结果显示到屏幕上,并对字符做适当的转换 -p 与-c 参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换 -a 对文本文件进行必要的字符转换 -b 不要对文本文件进行字符转换 -x <表达式> 处理里排除压缩包中的指定文件 -M 将输出结果送到 more 程序处理
10. zip
加密
使用方式: zip -q -r d.zip folder/file
-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的数值。
11. find
查找文件及文件夹使用方式: find path -mtime 3 -type f -exec ls -lt {} \;
-atime N 最后访问时间在N天前 -mtime N 最后更新时间在N天前 -name name 名称包含 -user user 用户名包含 -newer otherfile 比某个文件新 -type 类型 f:文件 d:目录 ! not -a and -o or -print 打印文件名 -mount 不搜索其他问题系统的目录 -maxdepth N 最多搜寻目录的层数 -mindepth N 从N层开始搜寻 -depth 查看目录本身之前先搜寻目录的内容 -empty 文件或目录为空 -exec command {} \; 执行命令 -ok command {} \; 执行命令,每次执行需要用户确认12. grep
匹配
使用方式: grep -c "string" file1 file2
-c 只显示匹配的行数 -i 不区分大小写 -l 只显示文件名 -h 不显示前缀文件名 -v 显示不匹配的行数 -E 扩展模式(使用正则) -n 显示匹配的行在文件中的行数 -x 只打印整行匹配的行 -Ax 显示匹配行后x行 -By 显示匹配行前y行 -Cz 显示匹配行前后z行13. scp
远程复制文件夹与文件
使用方式:
scp localfile username@ip:remotefolder
scp username@ip:remotefile localfolder
scp -r localfolder username@ip:remotefolder
scp -r username@ip:remotefolder localfolder
-r 复制目录及所有子目录子文件(遍历)14. df du
df 查看文件系统容量
du 查看文件夹及文件容量
使用方式:
du -h --max-depth=1 folder
df -h
-h 以可读性较好的方式显示尺寸(例如:1K 234M 2G) --max-depth=N N查询的深度15. ln
创建文件或文件夹链接
使用方式:
ln -s 源文件/源文件夹 目标文件
ln -s /home/fdipzone/demo link 在当前目录创建一个文件夹链接link,链接到 /home/fdipzone/demo
说明 : Linux/Unix 档案系统中,有所谓的连结(link),我们可以将其视为档案的别名,而连结又可分为两种 : 硬连结(hard link)与软连结(symbolic link),硬连结的意思是一个档案可以有多个名称,而软连结的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬连结是存在同一个档 案系统中,而软连结却可以跨越不同的档案系统。
ln source dist 是产生一个连结(dist)到 source,至于使用硬连结或软链结则由参数决定。
不论是硬连结或软链结都不会将原本的档案复制一份,只会占用非常少量的磁碟空间。
-f : 链结时先将与 dist 同档名的档案删除 -d : 允许系统管理者硬链结自己的目录 -i : 在删除与 dist 同档名的档案时先进行询问 -n : 在进行软连结时,将 dist 视为一般的档案 -s : 进行软链结(symbolic link) -v : 在连结之前显示其档名 -b : 将在链结时会被覆写或删除的档案进行备份 -S SUFFIX : 将备份的档案都加上 SUFFIX 的字尾 -V METHOD : 指定备份的方式 --help : 显示辅助说明 --version : 显示版本16. locate
locate 让使用者可以很快速的搜寻档案系统内是否有指定的档案。其方法是先建立一个包括系统内所有档案名称及路径的资料库,之后当寻找时就只需查询这个资料库,而不必实际深入档案系统之中了。在一般的 distribution 之中,资料库的建立都被放在 contab 中自动执行。
使用方式:
locate filename
locate [-q] [-d ] [--database=]
locate [-r ] [--regexp=]
locate [-qv] [-o ] [--output=]
locate [-e ] [-f ] <[-l ] [-c] <[-U ] [-u]>
locate [-Vh] [--version] [--help]
locate chdrv:寻找所有叫 chdrv 的档案
locate -n 100 a.out:寻找所有叫 a.out 的档案,但最多只显示 100 个
locate -u:建立资料库
-u -U 建立资料库,-u 会由根目录开始,-U 则可以指定开始的位置。 -e 将排除在寻找的范围之外。 -l 如果 是 1.则启动安全模式。在安全模式下,使用者不会看到权限无法看到的档案。这会始速度减慢,因为 locate 必须至实际的档案系统中取得档案的权限资料。 -f 将特定的档案系统排除在外,例如我们没有到理要把 proc 档案系统中的档案放在资料库中。 -q 安静模式,不会显示任何错误讯息。 -n 至多显示n个输出。 -r 使用正规运算式 做寻找的条件。 -o 指定资料库存的名称。 -d 指定资料库的路径 -h 显示辅助讯息 -v 显示更多的讯息 -V 显示程式的版本讯息17. wc
使用方式:wc [option] file1 file2
wc -l file
可以组合使用 wc -lcw file1 file2
- c 统计字节数 - l 统计行数 - w 统计字数18. wget
使用方式:wget [options] [URL]
wget -O test.zip http://www.fdipzone.com/test.zip
启动: -V, --version 显示wget的版本后退出 -h, --help 打印语法帮助 -b, --background 启动后转入后台执行 -e, --execute=COMMAND 执行`.wgetrc'格式的命令,wgetrc格式参见/etc/wgetrc或~/.wgetrc wget默认会根据网站的robots.txt进行操作 使用-e robots=off参数即可绕过该限制 记录和输入文件: -o, --output-file=FILE 把记录写到FILE文件中 -a, --append-output=FILE 把记录追加到FILE文件中 -d, --debug 打印调试输出 -q, --quiet 安静模式(没有输出) -v, --verbose 冗长模式(这是缺省设置) -nv, --non-verbose 关掉冗长模式,但不是安静模式 -i, --input-file=FILE 下载在FILE文件中出现的URLs -F, --force-html 把输入文件当作HTML格式文件对待 -B, --base=URL 将URL作为在-F -i参数指定的文件中出现的相对链接的前缀 --sslcertfile=FILE 可选客户端证书 --sslcertkey=KEYFILE 可选客户端证书的KEYFILE --egd-file=FILE 指定EGD socket的文件名 下载: --bind-address=ADDRESS 指定本地使用地址(主机名或IP,当本地有多个IP或名字时使用) -t, --tries=NUMBER 设定最大尝试链接次数(0 表示无限制). -O --output-document=FILE 把文档写到FILE文件中 -nc, --no-clobber 不要覆盖存在的文件或使用.#前缀 -c, --continue 接着下载没下载完的文件 --progress=TYPE 设定进程条标记 -N, --timestamping 不要重新下载文件除非比本地文件新 -S, --server-response 打印服务器的回应 --spider 不下载任何东西 -T, --timeout=SECONDS 设定响应超时的秒数 -w, --wait=SECONDS 两次尝试之间间隔SECONDS秒 --waitretry=SECONDS 在重新链接之间等待1...SECONDS秒 --random-wait 在下载之间等待0...2*WAIT秒 -Y, --proxy=on/off 打开或关闭代理 -Q, --quota=NUMBER 设置下载的容量限制 --limit-rate=RATE 限定下载输率 目录: -nd --no-directories 不创建目录 -x, --force-directories 强制创建目录 -nH, --no-host-directories 不创建主机目录 -P, --directory-prefix=PREFIX 将文件保存到目录 PREFIX/... --cut-dirs=NUMBER 忽略 NUMBER层远程目录 HTTP 选项: --http-user=USER 设定HTTP用户名为 USER. --http-passwd=PASS 设定http密码为 PASS. -C, --cache=on/off 允许/不允许服务器端的数据缓存 (一般情况下允许). -E, --html-extension 将所有text/html文档以.html扩展名保存 --ignore-length 忽略 `Content-Length'头域 --header=STRING 在headers中插入字符串 STRING --proxy-user=USER 设定代理的用户名为 USER --proxy-passwd=PASS 设定代理的密码为 PASS --referer=URL 在HTTP请求中包含 `Referer: URL'头 -s, --save-headers 保存HTTP头到文件 -U, --user-agent=AGENT 设定代理的名称为 AGENT而不是 Wget/VERSION. --no-http-keep-alive 关闭 HTTP活动链接 (永远链接). --cookies=off 不使用 cookies. --load-cookies=FILE 在开始会话前从文件 FILE中加载cookie --save-cookies=FILE 在会话结束后将 cookies保存到 FILE文件中 FTP 选项: -nr, --dont-remove-listing 不移走 `.listing'文件 -g, --glob=on/off 打开或关闭文件名的 globbing机制 --passive-ftp 使用被动传输模式 (缺省值). --active-ftp 使用主动传输模式 --retr-symlinks 在递归的时候,将链接指向文件(而不是目录) 递归下载: -r, --recursive 递归下载--慎用! -l, --level=NUMBER 最大递归深度 (inf 或 0 代表无穷). --delete-after 在现在完毕后局部删除文件 -k, --convert-links 转换非相对链接为相对链接 -K, --backup-converted 在转换文件X之前,将之备份为 X.orig -m, --mirror 等价于 -r -N -l inf -nr. -p, --page-requisites 下载显示HTML文件的所有图片 递归下载中的包含和不包含(accept/reject): -A, --accept=LIST 分号分隔的被接受扩展名的列表 -R, --reject=LIST 分号分隔的不被接受的扩展名的列表 -D, --domains=LIST 分号分隔的被接受域的列表 --exclude-domains=LIST 分号分隔的不被接受的域的列表 --follow-ftp 跟踪HTML文档中的FTP链接 --follow-tags=LIST 分号分隔的被跟踪的HTML标签的列表 -G, --ignore-tags=LIST 分号分隔的被忽略的HTML标签的列表 -H, --span-hosts 当递归时转到外部主机 -L, --relative 仅仅跟踪相对链接 -I, --include-directories=LIST 允许目录的列表 -X, --exclude-directories=LIST 不被包含目录的列表 -np, --no-parent 不要追溯到父目录19.tar
使用方式:tar [-cxtzjvfpPN] 文件与目录
tar -xzvf test.tar.gz
-c :建立一个压缩文件的参数指令(create 的意思); -x :解开一个压缩文件的参数指令! -t :查看 tarfile 里面的文件! 特别注意,在参数的下达中, c/x/t 仅能存在一个!不可同时存在! 因为不可能同时压缩与解压缩。 -z :是否同时具有 gzip 的属性?亦即是否需要用 gzip 压缩? -j :是否同时具有 bzip2 的属性?亦即是否需要用 bzip2 压缩? -v :压缩的过程中显示文件!这个常用,但不建议用在背景执行过程! -f :使用档名,请留意,在 f 之后要立即接档名喔!不要再加参数! 例如使用『 tar -zcvfP tfile sfile』就是错误的写法,要写成 『 tar -zcvPf tfile sfile』才对 -p :使用原文件的原来属性(属性不会依据使用者而变) -P :可以使用绝对路径来压缩! -N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中! --exclude FILE:在压缩的过程中,不要将 FILE 打包!
20.tail
使用方式:tail [-fqvcn] 文件
tail -f test.log
-f 循环读取 -q 不显示处理信息 -v 显示详细的处理信息 -c<数目> 显示的字节数 -n<行数> 显示行数 --pid=PID 与-f合用,表示在进程ID,PID死掉之后结束. -q, --quiet, --silent 从不输出给出文件名的首部 -s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒注意 -f 是 --follow[=HOW]的缩写,可以一直读文件末尾的字符并打印出来。
[=HOW]有两个写法,=descriptor 和 =name 默认使用descriptor,如果你跟踪的文件被移动或者改名后,还想继续tail,可以使用这个选项。
但如果在tail 一个log文件时,这个文件很可能是被删除或被覆盖,文件覆盖后,tail -f命令就会失效,这种情况需要使用tail -F命令
-F 是 --follow=name -retry的缩写,--follow=name是按文件名跟踪文件,可以定期去重新打开文件检查文件是否被其它程序删除并重新建立,-retry这个参数,保证文件重新建立后,可以继续被跟踪。
--follow=descriptor 例子
1.sh
#!/bin/bash while : do echo $(date +%Y-%m-%d' '%H:%M:%S) >> '1.log' sleep 1 done exit 02.sh
#!/bin/bash while : do echo $(date +%Y-%m-%d' '%H:%M:%S) >> '2.log' sleep 1 done exit 01.在窗口1 执行 ./1.sh
2.在窗口2 执行 tail -f 1.log,这时会看到有输出
3.中止1.sh
4.执行mv 1.log 2.log 改名
5.执行 ./2.sh 这时会看到窗口2的tail会输出2.log的内容。
--follow=name 例子
1.在窗口1执行./1.sh
2.在窗口2执行 tail -f 1.log,这时会看到有输出
3.执行rm 1.log ,这时tail不再输出任何内容
而使用 tail -F 1.log,则在执行rm 1.log 之后,当1.log创建时,tail会继续输出1.log的内容。因为 ./1.sh是循环执行,当1.log不存在时会创建