-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Linux 命令行终端操作积累 #27
Comments
❖ Bash/ZSH 命令后里修改前缀 (隐藏用户@主机,添加Git分支名称)
1. Bash的修改方法其实特简单,还是在 $ vim ~/.bash_profile
# Shows Git branch name in prompt.
parse_git_branch() {
git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
}
export PS1="\u@\h \W\[\033[32m\]\$(parse_git_branch)\[\033[00m\] $ "
# Or hide User @ Name (still with git branch name)
# export PS1="\W\[\033[32m\]\$(parse_git_branch)\[\033[00m\] $ " 效果如下: 2. Zsh的修改方法类似于Bash,在 当然,我这里的Git分支还配上了图标和颜色等,这都需要给终端(这里是Mac Terminal.app)安装相应配色方案,我用的是著名的 Zsh中将全路径缩短为当前文件夹名有时候经常嫌一层一层目录实在太长太占地方,而且截屏时也不方便把全路径显示出来。所以需要隐藏起来会比较方便,需要看全路径的话一句 修改后效果: Zsh中,配置文件 |
❖ Mac 终端配色方案 Color schemes要想配置出这种好看的方案,标配就是: 1. 安装Solarized显示方案 (仅用于本地客户端应用)显示方案主要负责修饰命令行前缀,隐藏user@host,识别git文件夹,添加图标,命令高亮等。
2. 安装字体 (仅用于本地客户端应用)Solarized配色包需要 3. 设定Agnoster配色主题不同于如Solarized显示方案,配色主题单纯负责颜色问题。 最后,我在Mac终端上显示效果如下: 好像颜色哪里差了点,是因为它原生在iTerm终端才能发挥完全效果。效果如下: iTerm的配置方法和Terminal.app非常相似,自己在偏好设置中采用类似的操作即可。 |
终端里添加快捷路径
|
Zsh 常用插件
zsh插件安装方法各种插件的安装方法各异,有的直接将插件文件夹拷贝到
|
Mac终端里用Sublime Text或其他应用程序打开文件Mac下的Sublime Text的位置是
然后就可以直接命令行里打开编辑器了:
执行后会弹出Sublime Text编辑器,并打开readme.txt文件。 同理,换成其它编辑器,或在其它系统里,也是这样修改流程 |
❖ ffmpeg 超强视频处理程序 [DRAFT]
Installation
以最低CPU优先率执行命令
mp4 to mp3#
$ ffmpeg -i <FILE> -vn <OUT> .webm to .mp4
Split Video
调整音频与视频匹配不上的问题方法1
方法2: 一开始就分开截取音频视频 然后再合并
ffmpeg的参数顺序很重要, 不同的顺序造成截然不同的结果 切割视频
|
cd命令常用技巧
|
rm 删除文件和文件夹
|
修改终端默认的shell之前说过了,一般终端的默认Shell只要在终端应用如Terminal.app,iTerm2等的系统设置里直接改就好了。 我的默认有这些,可以看到zsh位于
即可达到修改默认终端的效果。如果是ssh连接服务器的话,需要重连才能看到效果。 |
Mac在终端上的快捷键
|
Bash里读取Json数据查看Stackovervlow, 发现答案,既可以使用 echo '{"hostname":"test","domainname":"example.com"}' | python -c 'import json,sys;obj=json.load(sys.stdin);print obj[0]["hostname"]' 由于*nix都原生带有python,所以这么执行是没问题的。而且一般也不用考虑到执行速度问题。 |
Bash键盘快捷键
|
Linux 创建多级目录 | 多层次文件夹
|
❖ 命令行读取和写入剪切板图像数据目前剪切板的操作原生支持还不是很完善,windows/mac/linux的工具都不一样,而且如果不是自己写脚本的话很难原生支持剪切板里的图片读取和写入。 Mac 自带pbcopy和pbpaste# 写入剪切板
$ echo 'hihihi' | pbcopy
#或
$ pbcopy < echo 'hello'
# 读取剪切板
$ pbpaste
# 保存剪切板内容到文件
$ pbpaste > ~/test.txt Mac处理剪切板图像目前没有原生支持剪切板的文字之外的类型。所以必须要下载第三方应用。 "pngpaste" 最简单的剪切板图像转文件工具mac上直接 但是:
Linux上的"xclip"原本是在linux常用的剪切板操控工具,后来可能流行起来在mac也支持了。但是mac上安装要麻烦点,必须要先安装依赖工具: |
|
❖ Linux/Mac 创建Ram Disk内存盘把内存空间转换为本地使用的硬盘,加速文件读取。适用于处理高并发任务。 如果只是作为临时缓存的话,连数据库存储也可以放到Ram Disk中进行。(但是如果自己手动这样操作,还不如直接用Redis) 所以,参考Redis,内存盘在开发中还有各种的可能性可以供你去创造。 Mac创建Ram Disk参考:How to Create a 4GB/s RAM Disk in Mac OS X Mac上,需要用到 $ diskutil erasevolume HFS+ 'RAM Disk' `hdiutil attach -nomount ram://204800` 其中 尝试拷贝个文件后发现:100MB的文件拷贝进去只是一瞬间,连进度条都没有出现! 删除内存盘: hdiutil detach disk5 如果报busy,那么就用各种方法关闭相关的文件夹、终端shell等,再来执行。 Ubuntu创建Ram Disk参考:How to use a ramdisk on Linux mkdir ~/ramdisk
# 分配/挂载内存盘
sudo mount -t tmpfs -o size=200M tmpfs ~/ramdisk
# 卸载/删除内存盘
sudo umount ~/ramdisk 其中 Linux分配内存盘实在太方便了。 开机自动挂载Ram Disk直接修改
定期备份内存盘直接在 |
❖ Linux/Unix 编译安装软件源代码的最佳实践 [DRAFT]
*nix下编译安装开源软件是新手的一大痛。鉴于我胆小怕事、在正式学习前不随便使用新东西的心态,用了Linux很多年后现在才开始正式学习怎么编译一个新版本的开源软件。因为迫于跟不上新版本、包管理器不支持某些硬件平台等原因,现在已经到了不编译不行的地步,所以扛不住了,开始学习! 理解软件编译源代码下载的话,基本上都是到Github直接下载zip或tar包即可。 常用的需要编译的开源软件主要指C或C++开发的软件。 一般编译这些软件主要有这几步:
Dependency Hell软件编译的最大问题就是
|
编译安装FFmpeg [DRAFT]参考官方:Compile FFmpeg for Ubuntu, Debian, or Mint 编译安装FFmpeg不光是需要编译它本身,还需要编译安装一系列的视频处理器。
注意: # Download
cd /tmp
wget https://github.com/FFmpeg/FFmpeg/archive/n4.1.tar.gz
tar -xzvf n4.1.tar.gz
cd n4.1*
# Build
./configure --prefix=/opt/ffmpeg-4.1 && echo OK.
make && echo OK.
sudo make install && echo OK. MacOS编译问题Error: nasm/yasm not found or too old.查看了下本机的yasm版本 $ brew instlal yasm 得到的版本是1.3.0.1。 |
|
❖ Mac安装包管理器MacPorts:从入门到放弃安装MacPorts的pkg安装包经常遇到的问题是:卡住不动。不用想也知道是网络问题。 不过经过多次尝试,最好的做法还是直接自己编译: # Download
cd /tmp
sudo curl -O https://distfiles.macports.org/MacPorts/MacPorts-2.5.4.tar.bz2
sudo tar xf MacPorts-2.5.4.tar.bz2
# Build
cd MacPorts-2.5.4/
./configure --prefix=/opt/macports-2.5.4 && echo "[ OK ]"
make && echo "[ OK ]"
sudo make install && echo "[ OK ]"
# Export Path or Create symlink
echo "export PATH=/opt/local/bin:/opt/local/sbin:$PATH" >> ~/.bash_profile
# or
ln -s /opt/local/bin/port /usr/local/bin/port 更新: sudo port selfupdate 安装: sudo port install ffmpeg 体积在都还没装什么软件的时候(只装了一个ffmpeg),整个macports的目录就高达3.5GB,这个在MBA笔记本上来说实在是太重了!而且编译一个ffmpeg,用了半个小时还没完成,这实在是匪夷所思。 想着,既然安装一个都这么费劲,还不如自己compile。 |
Apt包管理器常用命令
显示已安装的某包具体信息: $ apt-cache show 包名 显示已用 $ dpkg -S 包名 |
❖ Linux 压缩包 [DRAFT].zip解压:unzip FileName.zip 解压多个文件到各自独立目录: for i in *.zip; do unzip "$i" -d "${i%%.zip}"; done ——————————————— .tar解包:tar xvf FileName.tar .gz解压1:gunzip FileName.gz .tar.gz 和 .tgz解压:tar xzvf FileName.tar.gz .bz2解压1:bzip2 -d FileName.bz2 .tar.bz2解压:tar xjvf FileName.tar.bz2 .bz解压1:bzip2 -d FileName.bz .tar.bz解压:tar xjvf FileName.tar.bz .xz解压1:xz -d FileName.xz ——————————————— .tar.xz解压1:xz -d FileName.tar.xz && tar -xvf FileName.tar ——————————————— .Z解压:uncompress FileName.Z 解压:tar xZvf FileName.tar.Z .rar解压:rar x FileName.rar .lha解压:lha -e FileName.lha .rpm解包:rpm2cpio FileName.rpm | cpio -div .deb解包:ar p FileName.deb data.tar.gz | tar zxf - .tar .tgz .tar.gz .tar.Z .tar.bz .tar.bz2 .zip .cpio .rpm .deb .slp .arj .rar .ace .lha .lzh .lzx .lzs .arc .sda .sfx .lnx .zoo .cab .kar .cpt .pit .sit .sea解压:sEx x FileName.* |
Linux进程管理 [DRAFT]查看进程# 常用:
ps aux
# 直接根据进程名查看进程ID:
pgrep zsh 关闭进程# 关闭单个进程
kill <进程ID>
# 关闭所有进程
pkill <进程名>
# 或
killall <进程名>
# 或
pgrep <进程名> |xargs kill |
❖ CLI命令行模糊搜索的超强大工具:fzf参考官方:junegunn/fzf 无需复杂配置,非常简单就能使用: git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf
~/.fzf/install 安装过程,只是简单的分别在 # 将可执行文件加入PATH
if [[ ! "$PATH" == *~/.fzf/bin* ]]; then export PATH="$PATH:$HOME/.fzf/bin"; fi
# 引入shell中的"**"符号自动补全
[[ $- == *i* ]] && source "$HOME/.fzf/shell/completion.zsh" 2> /dev/null # Auto-completion
# 引入shell中的快捷键设置
source "$HOME/.fzf/shell/key-bindings.zsh" # Key bindings
# 外观设置(高亮、预览、高度)
export FZF_DEFAULT_OPTS="--height 40% --layout=reverse --preview '(highlight -O ansi {} || cat {}) 2> /dev/null | head -500'" 安装好后,直接调用 为了更方便,我们应该在zsh或bash的配置文件中加入 输入fzf命令后,自动会显示出搜索框。基本操作命令如下:
使用命令
我们当然不能拿字符串来做什么。所以还是要配合各种文字编辑、shell命令等来使用。 用VIM编辑搜索到的结果文件: $ vim $(fzf)
# 可以将alias设置为:
alias vfzf="vim $(fzf)" 切换到某个目录,可以完成切换到当前以下任意目录的效果: $ cd $(find * -type d | fzf)
# 建议alias设置:
alias dfzf="cd $(find * -type d | fzf)" 每次移动光标,可以快速看到文件预览: $ fzf --preview 'head -100 {}' 配置如果要更方便的使用fzf,而不输入那么多命令,那就直接在shell的配置里加一个环境变量即可。 这个环境变量名叫
由于fzf安装时候会自动在你的 # Setup fzf Searching tool {
# Import binary execution to PATH
if [[ ! "$PATH" == *~/.fzf/bin* ]]; then export PATH="$PATH:$HOME/.fzf/bin"; fi
# Import key bindings for auto completion
[[ $- == *i* ]] && source "$HOME/.fzf/shell/completion.zsh" 2> /dev/null
# Import specific key bindings
source "$HOME/.fzf/shell/key-bindings.zsh"
# Setup appearence (Highlighting, scale, preview...)
export FZF_DEFAULT_OPTS="--height 40% --layout=reverse --preview '(highlight -O ansi {} || cat {}) 2> /dev/null | head -500'"
# } 搜索语法 |
❖ Linux 搜索工具 [DRAFT]文件搜索程序候选列表
Mac安装: brew install fd Ubuntu安装: sudo apt-get install fd-find 文本搜索候选列表
测试——在整个Linux内核源码中执行搜索效率: 文件搜索:
|
Linux 查看CPU温度每种设备查看温度的方式都不同。 树莓派无需安装工具即可查看: cat /sys/class/thermal/thermal_zone0/temp
>>> 62838
# 或者直接以度为单位显示
echo $[$(cat /sys/class/thermal/thermal_zone0/temp)/1000]°
>>> 63 显示数字为千分之一度。所以说,除以1000就是当前温度值。 可以设置watch实时观看: watch -n 0.1 echo CPU: $[$(cat /sys/class/thermal/thermal_zone0/temp)/1000]° PC直接查看: # 查看第一个核心
$ cat /proc/acpi/thermal_zone/TZS0/temperature
# 查看第二个核心
$ cat /proc/acpi/thermal_zone/TZS1/temperature lm_sensorsUbuntu: # 安装
sudo apt-get install lm-sensors -y
yes | sudo sensors-detect
# 运行
sensors |
|
ZSH安装超酷的powerlevel9k主题网上看到别人的命令行右面竟然有个漂亮的时间戳,非常好奇。搜了下发现竟然是zsh的主题,叫 参考Github官方文档:https://github.com/bhilburn/powerlevel9k 安装有了Oh my zsh的话就安装非常简单,
$ git clone https://github.com/bhilburn/powerlevel9k.git ~/.oh-my-zsh/custom/themes/powerlevel9k
ZSH_THEME="powerlevel9k/powerlevel9k" 色彩问题可以找它建议的,直接在 export TERM="xterm-256color" 常用配置默认配置参考官方说明:https://github.com/bhilburn/powerlevel9k/wiki/Stylizing-Your-Prompt # ==== Theme Settings ====
# PowerLevel9k
# 左侧栏目显示的要素(指定的关键字参考官网)
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(os_icon context dir vcs)
# 右侧栏目显示的要素
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(status root_indicator background_jobs time virtualenv)
#新起一行显示命令 (推荐!极其方便)
POWERLEVEL9K_PROMPT_ON_NEWLINE=true
#右侧状态栏与命令在同一行
POWERLEVEL9K_RPROMPT_ON_NEWLINE=true
#缩短目录层级
POWERLEVEL9K_SHORTEN_DIR_LENGTH=1
#缩短目录策略:隐藏上层目录中间的字
#POWERLEVEL9K_SHORTEN_STRATEGY="truncate_middle"
#添加连接上下连接箭头更方便查看
POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX="↱"
POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX="↳ "
# 新的命令与上面的命令隔开一行
#POWERLEVEL9K_PROMPT_ADD_NEWLINE=true
# Git仓库状态的色彩指定
POWERLEVEL9K_VCS_CLEAN_FOREGROUND='blue'
POWERLEVEL9K_VCS_CLEAN_BACKGROUND='black'
POWERLEVEL9K_VCS_UNTRACKED_FOREGROUND='yellow'
POWERLEVEL9K_VCS_UNTRACKED_BACKGROUND='black'
POWERLEVEL9K_VCS_MODIFIED_FOREGROUND='red'
POWERLEVEL9K_VCS_MODIFIED_BACKGROUND='black' Python的Virtualenv和Pipenv虚拟环境显示问题一般命令行里,进入虚拟环境的shell时会显示如 方法是: POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(os_icon context dir vcs virtualenv) 但是也有不能正常显示的时候,而且还会报错: $ pipenv shell
Shell for UNKNOWN_VIRTUAL_ENVIRONMENT already activated.
No action taken to avoid nested environments. 这个不是主题的问题,测试后发现换了主题还是这样显示,所以这是ZSH的问题。 只要关闭当前的终端窗口,重新打开就好了。 显示主机型号图标问题像这种显示当前主机(如Mac)图标和Git图标的问题,是需要字体支持的。 默认是不开启的,必须要在 #字体设定 (注意,字体设定必须放在主题之前)
POWERLEVEL9K_MODE='nerdfont-complete'
#主题设定
ZSH_THEME="powerlevel9k/powerlevel9k" 上面的字体模式可选的有:
根据你的情况来尝试,因为不是每个都能完美无乱码显示出来。 |
ZSH不支持
|
Linux查看某个文件或命令的
|
Busybox的安装包管理器opkg [DRAFT]
使用方法: # 更新
$ opkg update
# 查看已安装软件
$ opkg list-installed
$ opkg list
# 安装指定软件
$ opkg install 包名 但是,opkg目前只支持少量的软件。如果要查看当前支持哪些软件安装,可以查看这个目录下的各个文件。其中每个文件代表一个提供源: $ cat /var/opkg-lists/barrier_breaker
$ cat /var/opkg-lists/openwrtio 更改安装源
常用的软件安装: $ opkg install tcpdump |
Ranger:帅气强大的命令行文件管理器 [DRAFT]
参考:Installing and Using Ranger, a Terminal File Manager, on a Ubuntu VPS 为什么要用
Mac安装: $ brew install ranger Ubuntu安装: $ sudo apt-get install ranger 运行: $ ranger 刚刚安装好后,颜色都是默认的: 基本使用通用快捷键:
移动键:
文件夹操作:
文件操作:
Tab标签窗口:
在Shell中cd进入Ranger选中的文件夹路径:
基本配置首先需要“生成配置文件“: $ ranger --copy-config=all 然后ranger就会把系统级的配置文件保存的当前用户文件夹下的
色彩配置如同Vim一样,可以直接按 设置颜色主题的命令和vim一样: 自定义的主题放在 去哪找主题? 安装第三方主题方法: 推荐一款主题: 安装方法: mkdir -p ~/.config/ranger/colorschemes/
wget https://raw.githubusercontent.com/RougarouTheme/ranger/master/rougarou.py -P ~/.config/ranger/colorschemes/ 然后在 插件安装使用Ranger可以有很多种在命令行下预览图片等文件的方法,这都需要安装第三方程序才行。 Ubuntu上,可以安装这些插件进行预览: $ sudo apt-get install caca-utils # img2txt 图片
$ sudo apt-get install highlight # 代码高亮
$ sudo apt-get install atool # 存档预览
$ sudo apt-get install w3m # html页面预览
$ sudo apt-get install poppler # pdf预览
$ sudo apt-get install mediainfo # 多媒体文件预览
$ sudo apt-get install catdoc # doc预览
$ sudo apt-get install docx2txt # docx预览
$ sudo apt-get install xlsx2csv # xlsx预览 图片预览 [DRAFT]全真彩色图片的预览,需要第三方的支持:
添加文件图标:ranger_devicons插件参考官方:alexanderjeurissen/ranger_devicons 添加插件方法: cd /tmp
git clone https://github.com/alexanderjeurissen/ranger_devicons.git
cd ranger_devicons/
make install && echo [ OK ]
# UNINSTALL
# make uninstall 体验: 只有一个问题,比如Vim中嵌入了Ranger插件,那么图标就会显示乱码。 |
W3M:超酷的命令行浏览器! [DRAFT]超酷不是说这个网页浏览器显示效果多酷,而是在命令行终端里浏览网页这件事非常酷! 试想一下: 当然,既然是命令行里的,也不要对排版有太大期待。可以说,所有的CSS和JS都是失效的,只是简化版的HTML展示。 Mac安装: $ brew install w3m Ubuntu安装: $ sudo apt-get install w3m 安装包才2M+,轻量到让我惊讶的地步。 浏览某个网页的方法: $ w3m google.com 默认的情况下,是不会展示网页中图片和视频的,需要我们额外进行配置。 基本操作浏览网页图片修改浏览器属性有时候我们访问网页,不想让网站知道我们是在用w3m浏览器,而是想让人知道我用的是Chrome浏览器。那么就需要修改 修改方法是在
然后用 |
Homebrew 备份所有brew安装过的程序为什么需要备份?
新版Homebrew已经可以很方便的备份所有用Homebrew安装过的程序了。 参考: 备份: # 先安装
brew bundle dump
# 再运行一遍执行
brew bundle dump 这时候,会在当前目录生产一个 大概内容如下:
把它保存在自己备份文件的地方。 恢复安装的时候,只需要进入 $ brew bundle |
❖
|
❖ Linux下「发送」邮件的命令行应用
先说明下:不管是什么邮件客户端,都是可以直接发邮件的。但是,因为默认的话,发件人是很随便地设置成你本机地名字。并且**100%**会被邮箱当成垃圾邮件处理。如果你去垃圾箱里找,还是可以看到的。这就是为什么,我们还是需要配置它,让它登录某个邮箱来使用它的身份发邮件了,比如gmail邮箱或阿里云邮箱。(国内的163和qq邮箱都已经屏蔽第三方客户端登录了)
「Mail」和「Sendmail」
「Mutt」
注意:这里不介绍Mutt作为邮件客户端的界面操作,而是直接作为命令行的命令来操作。
安装其中 # Linux
$ sudo apt-get install mutt msmtp
# 或Mac
$ brew install mutt msmtp 配置你需要配置两个文件,一个是 配置 account Aliyun
host smtp.aliyun.com
from [email protected]
auth login
user [email protected]
password abcde123123123
account default : Aliyun
logfile ~/.msmtp.log 然后必须修改 chmod 600 ~/.msmtprc 配置 set sendmail="/usr/bin/msmtp"
set use_from=yes
set realname="Jason"
set from="[email protected]"
set envelope_from=yes
set editor="vim -nw" 注意:第一条 发送邮件命令格式注意:收件人的地址前一定要明确指定参数名 # 常用格式如下 -s “标题” -c 抄送 -a 附件
$ echo “HELLO WORLD” | mutt -s “TITLE” -- [email protected]
# 发送HTML格式漂亮的邮件
$ mutt -- [email protected] -e 'set content_type="text/html"' -s "TITLE" < out.html
# 发送给多人,抄送,添加附件
$ echo "hello" | mutt -s "TITLE" [email protected], [email protected] -c [email protected] -a /home/pi/pic.jpg address="[email protected]"
# 发送邮件时设置邮件的文本类型为:html格式,邮件的等级为:重要
$ echo $content | mutt -s "${subject}" -e 'set content_type="text/html"' -e 'send-hook . "my_hdr X-Priority: 1"' $address Mutt发送HTML漂亮富文本邮件默认语法是: $ mutt -- [email protected] -e 'set content_type="text/html"' -s "TITLE" < out.html 但是,值得注意的是,语法虽然简单,可一旦你本机的 邮箱配置
|
❖ 正式的介绍「Mutt」:命令行的邮件大师 (一文详解)为什么要用Mutt? Mutt的可配置性,强如Vim。配置起来也和Vim差不多,有专门的 需要理解的是:Mutt本身是一个框架而已。收件、发件、编辑邮件等功能,是要通过搭配不同的程序来做到的。 Mutt的模块搭配方案就像穿衣搭配一样,收件发件过滤邮件转发邮件各种功能都有很多种程序可以用,mutt怎么搭配呢?
参考邮件代理(功能分类):Email agent (infrastructure) - Wikipedia 一般搭配是:
但是maildrop不支持Mac,而procmail比较通用一点。所以这里我们用: 安装: # Mac
$ brew install mutt fetchmail msmtp procmail
# Ubuntu
$ sudo apt-get install mutt fetchmail msmtp procmail -y Mutt或各个写协作程序在配置前都是不能使用的,学习曲线还是比较陡峭的,所以要做好准备去花好一段去了解和学习各个部件。 大概的配置流程是:
注意:初学过程中,不要一上来就配置mutt。最好是先从各个部件开始: 配置参考: 收件:配置Fetchmail
Fetchmail是一个非常简单的收件程序,而且是 注意:fetchmail只负责收件,而不负责存储!所以它是要调用另一个程序如 fetchmail的配置文件为 参考:Using Fetchmail to Retrieve Email 比如我们要设置多个邮箱账户同时收取,那么配置如下:
其中,
配置完成后,可以运行 一般收取的命令如下: # 只收取未读邮件
$ fetchmai
# 收取所有邮件
$ fetchmail -a
# (重要)收取新邮件,但不在服务器端删除已经收取的邮件
$ fetchmail -k 但是fetchmail只负责收取,不负责“下载”部分,你找不到邮件存在哪了。
你必须自己手动执行,或者用Crontab定期收取,或者设为Daemon守护进程,还可以在Mutt中设置快捷键执行Shell命令。 设置Mutt快捷键收取邮件的方法是在
这样的话,你就可以在index邮件列表中按 邮件过滤:配置ProcmailProcmail是单纯负责邮件的存储、过滤和分类的,一般配合 在Pipline中,fetchmail把收到的邮件全部传送到Procmail进行过滤筛选处理,然后Procmail就会把邮件存到本地形成文件,然后给邮件分类为工作、生活、重要、垃圾等。 当然,分类规则是自己可以指定的。可以根据发信人、主题、长度以及关键字 等对邮件进行排序、分类、整理。 Procmail 的配置文件是 基本配置:
其中, 配置好后,我们再测试一下,假设邮箱里有一封未读邮件,就会看到: $ fetchmail
1 message for [email protected] at pop3.aliyun.com (7833 octets).
reading message [email protected]@pop3.aliyun.com:1 of 1 (7833 octets) flushed
$ tree ~/Mail
/Users/Jason/Mail
└── inbox
├── cur
├── new
│ └── 1549706227.89809_0.Jason-mba.lan
└── tmp 可以看到,一封新邮件保存到了 这个实际上就是邮件的真面目:MIME格式(协议)的邮件源码。就像HTML一样,展示给我们的和背后的源码不一样。 那么怎么把这个类似HTML的MIME格式邮件解析为我们人能读懂的内容呢? 但是这里我们先不讲邮件阅读的问题,把它留在最后。 发件:配置msmtp
基本配置:
其中注意,关于
主界面:配置MuttMutt的配置文件为
基本配置:
极简配置综合上面的四大配置文件,下面是我的四个文件的极简配置: 另外可参考网友的极简配置:https://gist.github.com/iharsuvorau/45a078ecb597eb916fdf 现在我的目的是先让收发件运行起来,至于界面美化、快捷键设定等,我们以后再说,里面很有学问。 确认邮箱服务器有没有问题即使上面配置一切OK,也不一定能正常收发邮件。因为你用的Gmail、QQ、网易、阿里云等等,后台都有一系列的第三方收取设置。这是各不相同的。 比如QQ和网易,现在几乎已经不能用了(2019),为什么?因为它们完全阻止了第三方客户端收发件。即使你去后台设置面板,可以通过手机短信验证之类设置,但是会发现实际上总是验证不了总是通过不了。所以本质上,他们只允许自己的官方客户端不允许任何别的手机、PC客户端(流氓行径) Gmail在国内用不了众所周知。现在比较好用的只有阿里云和微软的Outlook了。 除了第三方客户端的允许,我们还要设置POP。最好放开全部邮件或者最近30天,然后禁止客户端删信。这是什么意思呢?POP默认客户端在收件后,服务器上的邮件就自动删除了!这个不太合适,所以必须要禁止 例如阿里云邮箱: Mutt主界面的基本操作参考:How to Use the Fast and Powerful Mutt Email Client with Gmail 邮件列表操作:
在邮件中的操作:
使用命令操作Mutt如同Vim一样,不光可以把命令绑定为快捷键,还能直接输入 比如sidebar侧边栏的移动,命令是: 参考:https://gitlab.com/muttmua/mutt/wikis/MuttFaq/Action Mutt乱码问题一般分为:
无论 这个时候,先在mutt中输入命令查看软件当前的charset设置: 但是为什么muttrc中设置charset没用呢? 测试了下,在MacOS、Ubuntu中同时设置一样的配置,Ubuntu正常显示中文,MacOS却不能。 问题就变成了:为什么muttrc中的charset不生效?
而Ubuntu中的确是:
也许问题就出在这里:Shell的设置出了问题,而不是mutt的设置! 解决方法很简单: $ export LANG=en_US.UTF-8 然后再输入 但是直接这样export是临时的,需要把这个加入到 HTML网页格式邮件的浏览参考:https://debian-administration.org/article/75/Reading_HTML_email_with_Mutt 大概两步:
普通的邮件,内容只是单纯的 渲染的问题涉及到两个问题需要解决:
HTML源码翻译成文字非常好解决,只要利用 常用的HTML渲染为Text的方式有:
常用的图片显示方法有:
w3m渲染用 然后我们需要配置两个mutt配置文件。
然后重新打开mutt,再打开一个html格式的邮件就发现,内容已经很好的转换成人可读的text格式了。 关于mutt图片渲染的问题,我们留到另一篇专门说明。 |
Mac上用Homebrew管理服务(守护进程) [DRAFT]Mac上的后台服务或守护进程和Linux上有很大不同,为了减少学习曲线,我们可以直接Homebrew帮忙轻松设置服务。
常用命令:
理解brew servicesMacOS管理开机启动的服务,是采用系统内置的 我们可以输入 参考:使用 brew services 管理后台服务(MacOS) MacOS设置服务的方法,实际上是在 如果不想了解手动的配置方法,就直接使用 手动的方法就是用launchctl程序指定plist文件位置控制,如 参考:使用 Homebrew 管理 Mac 的后台服务.md 安装常用的程序常用程序有:
|
Mutt美化指南 [DRAFT]Mutt配置主题Mutt主题配置非常简单:下载主题文件,然后在 例如,我们用著名的Gruvbox主题:https://github.com/altercation/mutt-colors-solarized 下载各种文件后,挑一个dark或light主题,比如
重新打开mutt即可看到效果。 Sidebar 侧边栏设置侧边栏可以在 比如:
然后就会显示出类似这种效果: 侧边栏的操作:这个没有默认的快捷键,需要自己手动设置才能有。 示例:
这样设置的话, 邮件列表美化列表的排序,默认是
效果如下: |
❖ 终端录屏程序
|
Apt-get 的
|
Linux创建相对软链接Refer to: https://unix.stackexchange.com/questions/10370/make-a-symbolic-link-to-a-relative-pathname/10371 如果用比较新的linux版本,就可以使用 $ ln --help | grep relative 创建软链接方式: $ ln -rs /tmp/test/to /tmp/test/from |
Tmux 为每个Pane设置个Title (好看) [DRAFT]#tmux.conf
set -g pane-border-status top
# set -g pane-border-format " #P: #T #{pane_current_command} #{pane_name}"
set -g pane-border-format " [#P] #T " 默认的这个 $ alias panetitle="printf '\033]2;%s\033\\'"
$ panetitle 'this is my new title' |
How to pass multiple Environment variables in One String to the commandSupport we have a script to read environment variables: # demo.sh
echo Name is: $NAME
echo Age is: $AGE $ envvars=( NAME=Jason AGE=18 )
$ env "${envvars[@]}" ./demo.sh
Name is: Jason
Age is: 18 |
积累终端命令行相关经验,包括Shell中的bash,zsh,终端中的Terminal, Mac Terminal.app,iTerm等
注意:这里说linux,linux之类的,其实在mac中也ok。只不过说起来和搜索起来方便而已。
涉及领域
The text was updated successfully, but these errors were encountered: