类Unix系统常用Tips

基础概念

POSIX 标准

文件系统

常用命令

查询

  • grep -rn “strings” [file]

    在file指定的文件中查找包含“strings”字符的文件,并打印出行号

  • find [path] -name “filename”

    在path指定的目录下查找文件名为filename的文件

  • awk

    awk是一种编程语言,用于在linux/unix下对文本和数据进行处理。

    awk 'BEGIN{ print "start" } pattern{ commands } END{ print "end" }' file

    echo -e "A line 1nA line 2" | awk 'BEGIN{ print "Start" } { print } END{ print "End" }'

    awk 'BEGIN{ print "Start" } { print } END{ print "End" }' /log.txt

常用工具

Python

Tmux

参考连接

命令行的典型使用方式是,打开一个终端窗口(terminal window,以下简称”窗口”),在里面输入命令。用户与计算机的这种临时的交互,称为一次”会话”(session)

会话的一个重要特点是,窗口与其中启动的进程是连在一起的。打开窗口,会话开始;关闭窗口,会话结束,会话内部的进程也会随之终止,不管有没有运行完。

一个典型的例子就是,SSH 登录远程计算机,打开一个远程窗口执行命令。这时,网络突然断线,再次登录的时候,是找不回上一次执行的命令的。因为上一次 SSH 会话已经终止了,里面的进程也随之消失了。

为了解决这个问题,会话与窗口可以”解绑”:窗口关闭时,会话并不终止,而是继续运行,等到以后需要的时候,再让会话”绑定”其他窗口。

基础操作

  1. 安装

    • sudo apt-get install tmux
      
      1
      2
      3
      4
      5

      2. 新建session

      - ```bash
      tmux new -s <session name>
  2. 窗口分离

    • tmux detach
      
      1
      2
      3
      4
      5

      4. 查看已有session

      - ```bash
      tmux ls
  3. 恢复session

    • tmux attach -t <session id>
      tumx attach -t <session name>
      
      1
      2
      3
      4
      5
      6
      7

      6. 退出tmux

      - ```bash
      exit
      tmux kill-session -t <session id>
      tmux kill-session -t <session name>

进阶操作

  1. session切换

    • tmux switch -t <session id>
      
      1
      2
      3

      - ```bash
      tmux switch -t <session name>

Putty

  • SSH免输入密码登录
    参考链接

  • 颜色配置,Winodw->Colours->Adjust the precise colours PuTTY displays , 保存到Session中才能一致保存

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    ; Default Foreground
    "Colour0"="217,216,216"
    ; Default Bold Foreground
    "Colour1"="217,216,216"
    ; Default Background
    "Colour2"="28,28,28"
    ; Default Background
    "Colour3"="28,63,149"
    ; Cursor Text
    "Colour4"="28,28,28"
    ; Cursor Color
    "Colour5"="231,231,232"
    ; ANSI Black
    "Colour6"="115,113,113"
    ; ANSI Black Bold
    "Colour7"="115,113,113"
    ; ANSI Red
    "Colour8"="251,38,8"
    ; ANSI Red Bold
    "Colour9"="251,38,8"
    ; ANSI Green
    "Colour10"="167,226,46"
    ; ANSI Green Bold
    "Colour11"="167,226,46"
    ; ANSI Yellow
    "Colour12"="102,217,238"
    ; ANSI Yellow Bold
    "Colour13"="102,217,238"
    ; ANSI Blue
    "Colour14"="0,157,220"
    ; ANSI Blue Bold
    "Colour15"="0,157,220"
    ; ANSI Magenta
    "Colour16"="255,85,255"
    ; ANSI Magenta Bold
    "Colour17"="255,85,255"
    ; ANSI Cyan
    "Colour18"="255,210,4"
    ; ANSI Cyan Bold
    "Colour19"="255,210,4"
    ; ANSI White
    "Colour20"="217,216,216"
    ; ANSI White Bold
    "Colour21"="255,255,255"

Shell

  • 显示git的分支名称

    ~/.bashrc 文件末尾添加如下代码

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    136 # enable git branch name showing
    137 git_branch()
    138 {
    139 branch=`git rev-parse --abbrev-ref HEAD 2>/dev/null`
    140 if [ "${branch}" != "" ]
    141 then
    142 if [ "${branch}" = "(no branch)" ]
    143 then
    144 branch="(`git rev-parse --short HEAD`...)"
    145 fi
    146 echo "($branch)"
    147 fi
    148 }
    149
    150 PS1='\u@\h \[\033[0;36m\]\w\[\033[0m\]\[\033[0;31m\]$(git_branch)\[\033[0m\] \$ '
  • 显示git的分支名称 2

    • 安装bash完整版

      1
      sudo apt-get install bash-completion
    • ~/.bashrc 文件末尾添加如下代码

      1
      PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[0;35m\]$(__git_ps1 "[%s]")\[\033[00m\]\$ '

lftp

【Linux】lftp客户端使用详解_高胜寒-CSDN博客

lftp 是一个功能强大的下载工具,它支持访问文件的协议: ftp, ftps, http, https, hftp, fish.(其中ftps和https需要在编译的时候包含openssl库)。lftp的界面非常想一个shell: 有命令补全,历史记录,允许多个后台任务执行等功能,使用起来非常方便。它还有书签、排队、镜像、断点续传、多进程下载等功能。

命令 作用
ls 显示远端文件列表(!ls 显示本地文件列表)。
cd 切换远端目录(lcd 切换本地目录)。
get 下载远端文件。
mget 下载远端文件(可以用通配符也就是 *)。
pget 使用多个线程来下载远端文件, 预设为五个。
mirror 下载/上传(mirror -R)/同步 整个目录。
put 上传文件。
mput 上传多个文件(支持通配符)。
mv 移动远端文件(远端文件改名)。
rm 删除远端文件。
mrm 删除多个远端文件(支持通配符)。
mkdir 建立远端目录。
rmdir 删除远端目录。
pwd 显示目前远端所在目录(lpwd 显示本地目录)。
du 计算远端目录的大小
! 执行本地 shell的命令(由于lftp 没有 lls, 故可用 !ls 来替代)
lcd 切换本地目录
lpwd 显示本地目录
alias 定义别名
bookmark 设定书签。
exit 退出ftp

unzip

ubuntu 下解压缩 .zip 文件

1
2
$ unzip -h # manual
$ unzip a.zip -d a_zip # unpack a.zip file to folder a_zip

系统设置

代理设置

  • cntlm

    • 生成密码 -d 声明domain -u声明用户名

      1
      cntlm -H -d de -u abc1fg
    • 修改配置 /etc/cntlm.conf

    • settings/network/proxy 设置 localhost:3128

    • 启动cntlm

      重新加载配置

      1
      sudo systemctl reload cntlm

      重新启动服务

      1
      sudo systemctl restart cntlm

镜像下载

软件源

  • 清华源
  • 阿里源