0%

Linux/Shell技巧

  • 临时起一个HTTP服务,可用来把当前目录作下载目录
    1
    2
    xiaomao@jp-vps:~$python -m SimpleHTTPServer 9090
    Serving HTTP on 0.0.0.0 port 9090 ...
  • 快速回退目录

    1
    2
    3
    4
    xiaomao@jp-vps:~$tail -n 3 ~/.bashrc
    alias cd1="cd .."
    alias cd2="cd ../.."
    alias cd3="cd ../../.."
  • - 等同$OLDPWD

    1
    xiaomao@jp-vps:~/test$cd -
  • 以root权限执行上一条命令

    1
    sudo !!
  • 创建并进入目录

    1
    2
    xiaomao@jp-vps:/tmp/test$tail -n 1 ~/.bashrc
    function mkcdir () { mkdir -p "$@" && cd "$_"; }

$a 所有参数
$_ 前一命令的最后1个参数

  • 快速copy

    1
    xiaomao@jp-vps:~$cp /tmp/test/{hello,hello.bak}
  • 批量替换文件后缀
    把所有.doc文件修改为.word

    1
    xiaomao@jp-vps:~/test$rename.ul .doc .word *.doc -v

    or(文件名包含两个.不行)

    1
    xiaomao@jp-vps:~/test$ls *.word | awk -F'.' '{ print $1 }' | xargs -I {} mv {}.word {}.doc
  • 修改上一命令的部分字符串 ^old^new

    1
    2
    3
    4
    5
    xiaomao@jp-vps:~$echo 'hello word'
    hello word
    xiaomao@jp-vps:~$^word^world
    echo 'hello world'
    hello world
  • 普通用户(需有sudo权限)保存只有root才可以编辑的文件(一般保存时才发现…)

    1
    :w !sudo tee %

    !{cmd} 执行外部命令
    % 在执行外部命令时代表文件自身

  • ssh隧道科学上网

    1
    ssh -D 36000 root@vps

    参考

  • nc测试端口是否开放

    1
    nc 127.0.0.1 1111 -v
  • nc临时开放某端口供对方测试

    1
    nc -l 1111
  • 时间戳转时间

    1
    2
    xiaomao@jp-vps:~$date -d @1574251915
    Wed Nov 20 12:11:55 UTC 2019
  • 命令不记录history(以空格开始)

    1
    root@jp-vps:~$ ifconfig
  • 快速切到指定python库的目录

    1
    function pycd () { pushd `python -c "import os.path, $1; print(os.path.dirname($1.__file__))"`; }
  • 每隔N行合并为一行

    1
    awk '{if (NR%8 == 0) { print $0 } else { printf "%s\t",$0 }}' /tmp/testfile