Linux 笔记
装机必备
立刻关机
sudo shutdown -t now
设置fish为默认shell
chsh -s /usr/bin/fish
安装ssh服务
sudo apt install sshd
让你的sudo输错密码的时候嘲讽你
1sudo visudo
2然后在配置中加入如下一行:
3Defaults insults
安装ss-qt5
1sudo add-apt-repository ppa:hzwhuang/ss-qt5
2sudo apt install shadowsocks-qt5
vim简单配置
1set number "显示行号
2filetype on
3set history=1000
4syntax on "打开语法高亮显示
5set autoindent "自动对齐,使用上一行的对齐方式
6set smartindent "智能对齐方式
7set tabstop=4
8set shiftwidth=4
9set showmatch "设置匹配模式
10set ruler "在编辑过程中,在右下角显示光标位置的状态行
11autocmd Insertleave * se nocul "浅色高亮当前行
12autocmd InsertEnter * se cul "浅色高亮当前行
13set mouse=a
14set encoding=utf-8
15hi Normal ctermbg=Black ctermfg=white "修改背景色
consolas字体安装配置
下载:https://code.google.com/archive/p/uigroupcode/downloads
将上面下载的字体包解压,并按如下操作:
1sudo mkdir -p /usr/share/fonts/consolas
2sudo cp YaHei.Consolas.1.12.ttf /usr/share/fonts/consolas/
3sudo chmod 644 /usr/share/fonts/consolas/YaHei.Consolas.1.12.ttf
4cd /usr/share/fonts/consolas
5sudo mkfontscale && sudo mkfontdir && sudo fc-cache -fv
修改dns
进入 /etc/network/interfaces
在它的最后增加一句:
1dns-nameservers 8.8.8.8 (或者别的啥)
临时修改就在 /etc/resolv.conf
中加入
1nameserver 8.8.8.8
2nameserver 8.8.4.4 (之类的)
常用操作
刷新dns
1sudo apt install nscd (如果没有装的话)
2/etc/init.d/nscd restart
运行新版网易云音乐
sudo netease-cloud-music
解压缩tar.gz包
tar -xzvf ***.tar.gz
查看不与terminal有关的所有process
ps -a
进程树
pstree
系统进程动态视图
top
查找进程
pgrep ***
按照进程名杀进程
pkill ***
查看系统负载详细信息
sudo atop
查看当前系统路径
pwd
查看帮助
man ***
查看当前tty窗口号
tty
后台运行任务
nohup *** &
查看所有可用字体名
fc-list
字符串正则匹配
grep match_pattern file_name
解决Xauthority的问题
1sudo rm ~/.Xauthority-*
2sudo touch ~/.Xauthority ; sudo chown $LOGNAME ~/.Xauthority ; chmod 775 ~/.Xauthority
监视某命令运行结果 : watch
命令格式: watch[参数][命令]
命令参数:
-n或--interval 缺省每2秒运行一下程序,可以用-n或-interval来指定间隔的时间。
-d或--differences 会高亮显示变化的区域。 而-d=cumulative选项会把变动过的地方(不管最近的那次有没有变动)都高亮显示出来。
-t 或-no-title 会关闭watch命令在顶部的时间间隔,命令,当前时间的输出。
-h, --help 查看帮助文档。
有趣的骚操作
watch实例-命令行时钟
watch -t -n1 "date +%T|toilet"
增强版时钟
watch -t -n1 "date +%T|toilet -fbigmono12"
录制终端操作 : script & scriptreplay
1# 录制命令:
2script -t 2>example.time -a example.txt
3# 播放命令:
4scriptreplay example.time example.txt
两个文件可以随便命名 例如timing.log和output.session
解释:
- -t是把时间数据输出到标准错误(standard error),这里使用 2>example.time 把数据重定向到example.time这个文件当中.
- -a 选项则指定输出录制的文件.
- 在录制过程中,使用 exit 结束录制过程.
黑客帝国终端
1sudo apt install cmatrix
2# 选项
3# -a :异步滚动(默认)
4# -b :随机粗体
5# -B :全部粗体
6# -h :获得帮助信息
7# -n :不使用粗体(默认)
8# -s :屏保模式 任意键退出
9# -u :刷新频率,0-9,也就是滚动的快慢
10# -C :显示的颜色,支持green(默认),
11# red,blue,white,yellow,cyan,magenta,black
12# 在运行的状态下直接按q 即可退出程序
高端显示linux系统信息
screenfetch
小火车
sl 或者 LS
艺术字
toilet 一些文本
分解质因数
factor ***
输出无穷字符
yes ***
显示火
aafire
跟着鼠标的猫
oneko
硬件相关
刷bios
flashrom
查看系统信息(代替cpu-z)
cpu-g https://sourceforge.net/projects/cpug/
i-nex https://sourceforge.net/projects/i-nex/ 或者:
1sudo add-apt-repository ppa:gambas-team/gambas3 && \
2sudo add-apt-repository ppa:i-nex-development-team/stable && \
3sudo apt-get update
4
5sudo apt-get install \
6debhelper devscripts pkg-config dpkg-dev \
7lsb-release gambas3-dev gambas3-gb-image gambas3-gb-qt5 gambas3-gb-form gambas3-gb-desktop \
8gambas3-gb-form-stock git
9
10sudo apt-get install i-nex
详细开机信息(内核 硬件等)
dmesg
详细内存信息
cat /proc/meminfo
详细cpu信息
cat /proc/cpuifo
cpu信息 仅频率
cat /proc/cpuinfo |grep MHz|uniq
proc硬件信息整合
sudo lshw (-short)
操作系统相关信息
uname -a
硬件信息(DMI)
1dmidecode # 显示全部dmi信息
2dmidecode -q # (–quite) 只显示必要的信息
3dmidecode -t TYPE # 指定信息类型 例如memory bios processor
硬件信息
hardinfo
cpu实时信息
i7z
每个逻辑cpu的频率
sudo cpupower monitor
查看各种传感器数据
1sensors-detect
2sensors
一个控制台UI的cpu监测工具s-tui
1sudo apt install gcc python-dev python-pip
2(可选:sudo apt install stress)
3sudo pip install s-tui
4sudo s-tui
tty优化相关
支持中文的命令行zhcon
sudo zhcon --utf8
远程桌面vnc : tigervnc
https://bintray.com/tigervnc/stable/tigervnc/1.8.0#files
启动: vncserver
帮助: vncserver -help
列出进程: vncserver -list
杀进程: vncserver -kill :* (* 为桌面号)
端口: 5900+* (* 为对应桌面号)
内网穿透 : frp
https://github.com/fatedier/frp/releases
配置文档:https://github.com/fatedier/frp/blob/master/README_zh.md
任务开机启动
sudo vim /etc/systemd/system/***.service
新建此文件,并写入以下内容
1[Unit]
2Description=*** daemon
3# 下面两行意味着网络准备好以后才会启动命令
4# After=syslog.target network.target
5# Wants=network.target
6
7[Service]
8Type=simple
9ExecStart= *** # 启动指令
10Restart= always
11RestartSec=1min
12
13[Install]
14WantedBy=multi-user.target
15
16然后设为开机自启动:
17sudo systemctl start ***
18sudo systemctl enable ***
支持中文的console:fbterm
配置
1sudo apt install fbterm
2sudo fbterm 或者 sudo fbterm fish 运行
3然后修改~/.fbtermrc
4font-names=YaHei Consolas Hybrid
5font-size=18
6font-width=-2
7font-height=-4
8color-foreground=0
9color-background=7
10text-encodings=zh_CN.UTF-8
11
12获得纯白的方法:
13echo -en "\e]P7ffffff"
14clear
15
16如果要支持中文输入法的话,安装fcitx-frontend-fbterm,然后运行:
17sudo setcap 'cap_sys_tty_config+ep' /usr/bin/fbterm
18并且在.fbtermrc里设置input-method=fcitx-fbterm
开机自动运行的脚本
1创建一个脚本文件: *** .sh
2编写内容,开头一定要是
3#!/bin/sh 或者 #!/usr/bin/fish 等
4表示在哪个shell下执行命令
5
6然后下面必须有LSB描述信息:
7## BEGIN INIT INFO
8# Provides: *** .sh
9# Required-Start: $syslog $remote_fs $network
10# Required-Stop: $syslog $remote_fs $network
11# Default-Start: 2 3 4 5
12# Default-Stop: 0 1 6
13# Short-Description: starts the *** .sh daemon
14# Description: starts *** .sh using start-stop-daemon
15## END INIT INFO
16
17执行如下指令:sudo chmod 755 *** .sh
18让脚本具备可执行权限
19
20将 *** .sh移动到/etc/init.d路径下,可以直接拷贝
21
22执行:
23cd /etc/init.d/
24sudo update-rc.d *** .sh defaults 90
25在这里90表明一个优先级,越高表示执行的越晚
26
27如果要移除脚本:
28sudo update-rc.d -f *** .sh remove
29
30获取sudo的方式:
31echo PASSWORD | sudo -S ls
方法二:将后缀为 .service
的 unit configuration file
放置在 /lib/systemd/system
或者 /etc/systemd/system
下。(以 frps.service 为例)
1[Unit]
2Description=frpc daemon
3After=syslog.target network.target
4Wants=network.target
5
6[Service]
7Type=simple
8ExecStart=/usr/sbin/frp/frpc -c /etc/frp/frpc.ini
9Restart= always
10RestartSec=1min
11ExecStop=/usr/bin/killall frpc
12
13[Install]
14WantedBy=multi-user.target
systemctl 可用操作:
自启动服务 sudo systemctl enable yourservice.service
停止自启动 disable
启动 start
停止 stop
重启 restart
重载配置 reload
日志 status
enable指令相当于在 /etc/systemd/system
目录添加一个符号链接,指向 /lib/systemd/system
里面的 ****.service
文件。
这是因为开机时,Systemd
只执行 /etc/systemd/system
目录里面的配置文件。这也意味着,如果把修改后的配置文件放在该目录,就可以达到覆盖原始配置的效果。
修改配置文件后需要重新加载:sudo systemctl daemon-reload
fish启动加载脚本位置
~/.config/fish/config.fish
fish shell判断是否是tty命令行还是图形界面命令行来启动fbterm
脚本位于~/.config/fish/config.fish
内容如下:
if tty | grep tty
nohup vncserver :1 &
echo PASSWORD | sudo -S ls
fcitx-fbterm-helper -l # 如果要开机启动输入法 那就用这句
# sudo fbterm fish # 如果不要输入法 就用这句
如果想要开机登录到root用户,这段可以这样:
sudo fcitx
sudo fcitx-fbterm-helper
sudo fbterm fish
如果想在fbterm里exit以后直接退出登录,那么再加:
echo PASSWORD | sudo -S ls
sudo kill %self
else
sudo echo -en "\e]P7ffffff"
clear
end
这段脚本的运行逻辑:
每次登录到一个tty进入fish的时候先试着启动vnc
然后往下运行到sudo fbterm fish,递归下一层
进入fbterm发现tty得到的不是tty而是pts
于是执行刷新白色的操作
等到这个fbterm最后exit的时候就回溯到kill %self,
直接把上一层的依赖fish给杀掉,于是退出当前这个tty的登录
依赖关系为: login - fish - sudo - fbterm - fish
注意,如果最开始登录的那个tty退出的话,vnc会跟着退出。
因为vnc是依赖于tty运行的,一直运行着的那个vnc:1自然是依赖于最早启动的tty
一旦最早登录的那个tty被退出,vnc:1自然就会被杀掉。
#tech notes
本文总字数 2896
本文阅读量
本站访客量