配置 命令 小技巧

· 798 word(s) · 2 minute(s) to read

Aliases 🔗

  • 快捷命令别名,将配置内容放置在~/.bash_aliases中,bash会自动加载。
    alias df='df -h'
    alias du='du -h -d 2'
    alias ft='figlet -f digital'
    alias ping='ping -n 10'
    alias pstree='pstree -chpst'
    alias tree='tree -L 2'
    

Inputrc 🔗

  • Bash输入时忽略大小写进行Tab补全,配置文件放置于~/.inputrc
    set completion-ignore-case on
    

Git configuration 🔗

  • git相关配置,配置文件放置于~/.gitconfig
    [user]
        name = User Name
        email = User E-mail
    [color]
        ui = auto
    [core]
        quotepath = false
        symlinks = true
    [alias]
        bl = blame
        br = branch
        ci = commit
        cl = clone
        co = checkout
        df = diff
        dt = difftool
        ft = fetch
        lg = log --pretty=format:"%C(auto) %h | %ai | %an | %s%d" --graph
        pl = pull -v --progress
        ps = push -v --progress
        sm = submodule
        st = status
    [filter "lfs"]
        clean = git-lfs clean -- %f
        smudge = git-lfs smudge -- %f
        process = git-lfs filter-process
        required = true
    

转换文件中的换行符 🔗

  • 使用perl命令替换文件中的换行符
    perl -pi -e 's/\r\n|\n|\r/\r\n/g' file-to-convert  # Convert to DOS
    perl -pi -e 's/\r\n|\n|\r/\n/g'   file-to-convert  # Convert to UNIX
    
  • 使用dos2unix命令完成替换

    dos2unix

递归转换文件中的Tabs为Spaces 🔗

  • Install sponge

    sudo apt-get install moreutils  # Debian-like
    brew install sponge             # macOS
    
  • The complete one-liner

    find ./ -iname '*.java' -type f -exec bash -c 'expand -t 4 "0" | sponge "0"' {} \;
    
  • Explanation

    ./              需要替换的文件夹
    -iname          需要替换的文件名(文件名不区分大小写,例如*.java and .JAVA)
    type -f         只替换文件(不包含文件夹,二进制文件,文件链接
    -exec bash -c   在子Shell中为每个匹配的文件执行命令
    expand -t 4     将Tab拓展为4个空格
    sponge          接收来自expand的标准输入并写会同一个文件
    
  • Note

    • A simple file redirection (> “$0”) won’t work here because it would overwrite the file too soon.
    • Advantage: All original file permissions are retained and no intermediate tmp files are used.

从git仓库中删除文件或文件夹 🔗

不同于git rm删除文件后再提交一次记录,此方法将文件或文件夹从仓库中永久删除(包括本地.git存储库、工作区、以及remote)。

  • 删除文件或文件夹

    git filter-branch --force --index-filter 'git rm --cached -rf --ignore-unmatch /PATH/TO/RM' --prune-empty --tag-name-filter cat -- --all
    
  • 在本地永久删除

    rm -rf .git/refs/original/
    git reflog expire --expire=now --all
    git gc --prune=now
    git gc --aggressive --prune=now
    
  • 推送到remote

    git push origin master:master --tags --force
    
  • 清理remote

    git remote prune origin
    

Windows 11右键菜单配置 🔗

  • 平铺

    reg add "HKCU\Software\Classes\CLSID{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32" /f /ve
    taskkill /f /im explorer.exe & start explorer.exe
    
  • 折叠

    reg delete "HKCU\Software\Classes\CLSID{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}" /f
    taskkill /f /im explorer.exe & start explorer.exe
    

显示Windows照片查看器 🔗

将以下内容放置在reg文件中(例如、EnablePhotoViewer.reg)并运行。

Windows Registry Editor Version 5.00

; Change Extension's File Type
[HKEY_CURRENT_USER\Software\Classes\.jpg]
@="PhotoViewer.FileAssoc.Tiff"

; Change Extension's File Type
[HKEY_CURRENT_USER\Software\Classes\.jpeg]
@="PhotoViewer.FileAssoc.Tiff"

; Change Extension's File Type
[HKEY_CURRENT_USER\Software\Classes\.gif]
@="PhotoViewer.FileAssoc.Tiff"

; Change Extension's File Type
[HKEY_CURRENT_USER\Software\Classes\.png]
@="PhotoViewer.FileAssoc.Tiff"

; Change Extension's File Type
[HKEY_CURRENT_USER\Software\Classes\.bmp]
@="PhotoViewer.FileAssoc.Tiff"

; Change Extension's File Type
[HKEY_CURRENT_USER\Software\Classes\.tiff]
@="PhotoViewer.FileAssoc.Tiff"

; Change Extension's File Type
[HKEY_CURRENT_USER\Software\Classes\.ico]
@="PhotoViewer.FileAssoc.Tiff"