Linux_经常使用命令

Posted wzjhoutai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 <password> zip 压缩包的password
-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 [email protected]:remotefolder
scp [email protected]:remotefile localfolder
scp -r localfolder [email protected]:remotefolder
scp -r [email protected]: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 可选client证书
--sslcertkey=KEYFILE 可选client证书的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 打印server的回应
--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 设定httppassword为 PASS.
-C, --cache=on/off 同意/不同意server端的数据缓存 (普通情况下同意).
-E, --html-extension 将全部text/html文档以.html扩展名保存
--ignore-length 忽略 `Content-Length‘头域
--header=STRING 在headers中插入字符串 STRING
--proxy-user=USER 设定代理的用户名为 USER
--proxy-passwd=PASS 设定代理的password为 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 0
2.sh
#!/bin/bash
 
while :
do
    echo $(date +%Y-%m-%d‘ ‘%H:%M:%S) >> ‘2.log‘
    sleep 1
done
 
exit 0
1.在窗体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不存在时会创建


21. shuf

作用:把输入行按随机顺序输出到标准输出。

使用方式:

shuf [选项] ... [文件]
shuf -e [选项]... [參数]...
shuf -i LO-HI [选项]...
主要參数:

 -e, --echo                 将每一个參数视为输入行
 -i, --input-range=LO-HI    将LO 到HI 的每一个数字视为输入行
 -n, --head-count=行数      最多输出指定的行数
 -o, --output=文件          将结果输出到指定文件而非标准输出
     --random-source=文件   从指定文件获得随机比特
 -z, --zero-terminated      以0 结束行而非新行
     --help                 显示此帮助信息并退出
     --version              显示版本号信息并退出

样例:

1.将test.txt按随机顺序输出到标准输出

shuf test.txt
2.从test.txt中随机取出一行

shuf -n 1 test.txt
3.将test.txt按随机顺序输出到test1.txt

shuf test.txt -o test1.txt

22.command -v

输入命令路径位置

$ command -v ls
/bin/ls
whereis ls

$ whereis ls
/bin/ls

以上是关于Linux_经常使用命令的主要内容,如果未能解决你的问题,请参考以下文章

[AndroidStudio]_[初级]_[配置自动完成的代码片段]

[AndroidStudio]_[初级]_[配置自动完成的代码片段]

[AndroidStudio]_[初级]_[配置自动完成的代码片段]

13 个非常有用的 Python 代码片段

linux中怎么查看mysql数据库版本

linux打开终端如何启动scala,如何在终端下运行Scala代码片段?