基础命令

ls

  • -a:显示所有文件及目录(开头的隐藏文件也会列出)

  • -l:除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出

  • -r:将文件以相反次序显示(原定依英文字母次序)

  • -t:将文件依建立时间之先后次序列出

  • -A:同 -a ,但不列出 .(目前目录)及 ..(父目录)

  • -F:在列出的文件名称后加一符号,例如可执行档则加 *, 目录则加 /

  • -R:若目录下有文件,则以下之文件亦皆依序列出

  • -h(–human-readable):以容易理解的格式列出文件大小,例如 1K、234M、2G

  • -t:按时间从近到远排序,-tr:按时间从远到近排序

  • --color:加上后搭配 lessgrep 等命令颜色显示

  • 如果要忽略某些文件可以使用 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
2
# 查看日志开头100行
head -n 100 /var/log/xxx.log

grep

grep [-param] <search-str> <file-name>

  • -i:忽略大小写的不同
  • -n:顺便输出行号
  • -v:反向选择,即显示没有 search-str 内容的那一行

curl

更多查看: https://www.cnblogs.com/duhuo/p/5695256.html

在 Linux 中 curl 是一个利用 URL 规则在命令行下工作的文件传输工具,可以说是一款很强大的 http 命令行工具。它支持文件的上传和下载,是综合传输工具,但按传统,习惯称 url 为下载工具。

  • 显示网页 html

    1
    curl http://www.linux.com
  • 保存访问的网页

    1
    2
    3
    4
    curl 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
    3
    wget -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
    7
    cat > 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]]