命令行常用命令
基础命令
ls
-a
:显示所有文件及目录(开头的隐藏文件也会列出)-l
:除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出-r
:将文件以相反次序显示(原定依英文字母次序)-t
:将文件依建立时间之先后次序列出-A
:同 -a ,但不列出.
(目前目录)及..
(父目录)-F
:在列出的文件名称后加一符号,例如可执行档则加*
, 目录则加/
-R
:若目录下有文件,则以下之文件亦皆依序列出-h(–human-readable)
:以容易理解的格式列出文件大小,例如 1K、234M、2G-t
:按时间从近到远排序,-tr
:按时间从远到近排序--color
:加上后搭配less
、grep
等命令颜色显示如果要忽略某些文件可以使用
grep -v
来实现,例如:1
ls -lAFh | grep -v ".DS_Store" | grep -v ".localized"
cp
-r
:复制目录-p
:连带文件属性复制-d
:若源文件是链接文件,则复制链接属性-a
:相当于 `-pdr-i
:交互式将指定文件复制到当前目录下:
1
cp ../ray/homework/assign .
所有目标文件指定的目录必须是己经存在的,cp 命令不能创建目录。如果没有文件复制的权限,则系统会显示出错信息。
将文件
file
复制到目录/usr/men/tmp
下,并改名为file1
:1
cp file /usr/men/tmp/file1
将目录
/usr/men
下的所有文件及其子目录复制到目录/usr/zh
中:1
cp -r /usr/men /usr/zh
交互式地将目录
/usr/men
中的以m
打头的所有.c
文件复制到目录/usr/zh
中:1
cp -i /usr/men m*.c /usr/zh
cp
时取消提示信息,直接覆盖,不需要用户再敲击y
进行交互,这在脚本执行时很重要。- 方法一:将别名禁掉
注释掉alias cp='cp -i'
- 方法二:
cp
前加\
1
\cp 1.txt /back/1.txt
- 方法一:将别名禁掉
mv
移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后:
1
mv -t /opt/soft/test/test4/ log1.txt log2.txt log3.tx
如果目录
dir2
不存在,将目录dir1
改名为dir2
,否则将dir1
移动到dir2
中:1
mv dir1 dir2
移动当前文件夹下的所有文件到上一级目录:
1
mv * ../
文件被覆盖前做简单备份,前面加参数
-b
:1
mv log1.txt -b log2.txt
mkdir
-p
确保目录名称存在,不存在的就建一个1
mkdir [-p] dirName
ln
软链接和硬连接的区别:https://www.jianshu.com/p/dde6a01c4094
-b
:删除,覆盖以前建立的链接-d
:允许超级用户制作目录的硬链接-f
:强制执行-i
:交互模式,文件存在则提示用户是否覆盖-n
:把符号链接视为一般目录-s
:软链接(符号链接)-v
:显示详细的处理过程
less
/serchContent
:使用一个模式进行搜索,并定位到下一个匹配的文本n
:向前查找下一个匹配的文本N
:向后查找前一个匹配的文本
tail
-f
:循环读取-q
:不显示处理信息-v
:显示详细的处理信息-c<数目>
:显示字节数内容-n<行数>
:显示文件的尾部 n 行内容
示例:
显示 notes.log 文件的最后 10行:
1
tail notes.log # 默认显示最后10行
跟踪 notes.log 文件的增长情况:
1
tail -f notes.log
此命令显示 notes.log 文件的最后 10 行。当将某些行添加至 notes.log 文件时,tail 命令会继续显示这些行。显示一直继续,直到您按下(Ctrl-C)组合键停止显示。
显示 notes.log 的内容,从第 20 行至文件末尾:
1
tail -n +20 notes.log
显示 notes.log 的最后 10 个字符:
1
tail -c 10 notes.log
与之相反的一个命令 head
,可以查看日志前面的多少行:
1 | # 查看日志开头100行 |
grep
grep [-param] <search-str> <file-name>
-i
:忽略大小写的不同-n
:顺便输出行号-v
:反向选择,即显示没有 search-str 内容的那一行
curl
在 Linux 中 curl
是一个利用 URL 规则在命令行下工作的文件传输工具,可以说是一款很强大的 http 命令行工具。它支持文件的上传和下载,是综合传输工具,但按传统,习惯称 url 为下载工具。
显示网页 html
1
curl http://www.linux.com
保存访问的网页
1
2
3
4curl http://www.linux.com >> linux.html
curl -o linux.html http://www.linux.com
# 要注意这里后面的url要具体到某个文件,不然抓不下来
curl -O http://www.linux.com/hello.sh测试网页返回值
在脚本中,这是很常见的测试网站是否正常的用法。1
curl -o /dev/null -s -w %{http_code} www.linux.com
wget
使用 wget 下载单个文件
1
wget http://www.minjieren.com/wordpress-3.1-zh_CN.zip
下载并以不同文件名保存
1
wget -O ~/Downloads/wordpress.zip http://www.minjieren.com/wordpress-3.1-zh_CN.zip
wget
默认会以最后一个符合/
后面的字符来命名。限速下载
1
wget --limit-rate=300k http://www.minjieren.com/wordpress-3.1-zh_CN.zip
断点续传
1
wget -c http://www.minjieren.com/wordpress-3.1-zh_CN.zip
使用
wget -c
重新启动下载中断的文件,对于我们下载大文件时突然由于网络等原因中断非常有帮助,我们可以继续接着下载而不是重新下载一个文件。后台下载
1
2
3wget -b http://www.minjieren.com/wordpress-3.1-zh_CN.zip
Continuing in background, pid 1840.
Output will be written to 'wget-log'.对于下载非常大的文件的时候,我们可以使用参数
-b
进行后台下载。
你可以使用以下命令来察看下载进度:1
tail -f wget-log
伪装代理名称下载
1
wget --user-agent="Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/10.0.648.204 Safari/534.16" http://www.minjieren.com/wordpress-3.1-zh_CN.zip
有些网站会根据代理名称不是浏览器而拒绝你的下载请求。不过你可以通过
–user-agent
参数伪装。下载多个文件
首先保存一份下载链接文件,接着使用这个文件和参数-i
下载:1
2
3
4
5
6
7cat > filelist.txt
url1
url2
url3
url4
wget -i filelist.txt
scp
-q
:不显示传输进度条-P
(port):注意是大写的 P,port 是指定数据传输用到的端口号指定端口复制
1
scp -P 4588 remote@www.runoob.com:/usr/local/sin.sh /home/administrator
运维相关命令
df
[[Linux内存和硬盘清理#df]]
du
[[Linux内存和硬盘清理#du]]
系统命令
yum
[[yum]]
apt
[[apt]]
工具命令
lf
[[lf]]
ranger
[[ranger]]
stow
[[stow]]