0%

Ubuntu 备忘笔记

一些bash命令

系统命令

who 查看当前在线的用户

netstat -a 查看当前系统联网状态

haltpoweroffshutdown now 立即关机

rebootshutdown -r now 立即重启

df -h 查看所有分区挂载的目录,df [directory] 查看路径挂载的目录

解压缩命令 unar、zip

1
2
3
4
unar [filename] -o [path] # 指定解压路径
unar -e GBK [filename] # 指定编码 (乱码时可用GB18030编码)
unar -p [password] [filename] # 指定解压密码
zip -r [targetname.zip] [filename1] [filename2] # 创建zip压缩包

文件权限命令 chmod

语法一: chmod [-v,-R] [u,g,o,a] [+,-,=] [r,w,x] [filename]

  • -v:显示权限改变的详细资料

  • -R:对当前目录下的所有文件和子目录进行相同的权限更改

  • u:文件所有者

  • g:与此文件拥有者同属于一个组群的人

  • o:其他人

  • a:包含u、g、o的所有用户

  • +:增加权限

  • -:取消权限

  • =:唯一设置权限

  • r:读取权限

  • w:写入权限

  • x:执行权限

语法二:chmod [-v,-R] [Num] [filename]

  • -v:显示权限改变的详细资料
  • -R:对当前目录下的所有文件和子目录进行相同的权限更改
  • Num:三位数,分别对应u、g、o的权限,单个数字值对应的意义:

三个基本权限:

  • 1:读取权限

  • 2:写入权限

  • 4:执行权限

四个复合权限:

  • 3:读取、写入权限

  • 5:读取、执行权限

  • 6:写入、执行权限

  • 7:读取、写如、执行权限

插网线不能上网的解决方案

解决方案一:

1
ifconfig #查看以太网即网线接口的名称
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 显示结果如下,enp2s0为网线接口
enp2s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.12 netmask 255.255.0.0 broadcast 192.168.255.255
ether b0:25:aa:22:81:2c txqueuelen 1000 (以太网)
RX packets 19599 bytes 20167694 (20.1 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 14906 bytes 2455984 (2.4 MB)
TX errors 1 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (本地环回)
RX packets 34093 bytes 2520064 (2.5 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 34093 bytes 2520064 (2.5 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

修改配置文件

1
sudo gedit /etc/network/interfaces
1
2
3
# 在文本末尾添加
auto enp2s0
iface enp2s0 inet dhcp
1
2
3
# 编辑完毕保存后,重启网络服务
#sudo service network-manager restart
sudo /etc/init.d/networking restart

解决方案二:

有线网络显示:有线连接未托管

1
sudo gedit /etc/NetworkManager/NetworkManager.conf

将文档中的 ifupdown一栏的 managed = false 改成 true,重启网络服务

1
2
#sudo service network-manager restart
sudo /etc/init.d/networking restart

解决方案三:

有线网络显示:有线连接已连接

1
2
3
4
5
6
sudo sysctl net.ipv4.conf.default.rp_filter=0
sudo sysctl net.ipv4.conf.all.rp_filter=0
sudo sysctl net.ipv4.ip_forward=1
sudo sysctl net.ipv6.conf.all.forwarding=1
#重启网络服务
sudo /etc/init.d/networking restart

解决方案四 :

有线网络显示:有线连接 已连接,但方案三无效

将方案二中的配置文件重新改回false, 重启网络服务

Ubuntu 配置 ShadowSocks + SwitchOmega

第一部分:配置shadowsocks

更新源,安装shadowsocks
1
2
3
sudo apt update
sudo apt install python-pip # 或python3-pip
sudo pip install shadowsocks # 或pip3 install
创建shadowcosks配置文件
1
2
3
4
cd /etc
sudo mkdir shadowsocks
cd shadowsocks
sudo touch config.json
编辑配置文件
1
sudo gedit /etc/shadowsocks/config.json
1
2
3
4
5
6
7
8
9
{
"server":"ip",
"server_port":SSR_port, // SSR端口
"local_address":"127.0.0.1",
"local_port":1080,
"password":"password",
"timeout":600,
"method":"encoding_method " // 编码方式,如 "ars-256-cfb"
}

修改openssl1.0.0版本废弃的EVP_CIPHER_CTX_cleanup函数,避免运行报错

1
sudo gedit /usr/local/lib/python2.7/dist-packages/shadowsocks/crypto/openssl.py

找到文本中的 libcrypto.EVP_CIPHER_CTX_cleanup.argtypes = (c_void_p,)libcrypto.EVP_CIPHER_CTX_cleanup(self._ctx),将其中的 cleanup 替换成 reset,保存

运行shadowsocks
1
2
sslocal -c /etc/shadowsocks/config.json # 直接调用配置文件启动方式
sslocal -s 11.22.33.44 -p 50003 -k "123456" -l 1080 -t 600 -m aes-256-cfb #指定配置信息启动

第二部分:配置Chrome代理

安装SwitchOmega插件

方法一:进入google插件商店 https://chrome.google.com/webstore,搜索SwitchOmega安装

方法二:通过github https://github.com/FelisCatus/SwitchyOmega/releases 下载.crx扩展包,手动安装

配置代理信息

在Chome页面中进入SwitchOmega,进行如下操作:

新建情景模式 \(\rightarrow\) 代理服务器(起个名) \(\rightarrow\) 协议勾选SOCKS5 \(\rightarrow\) 代理服务器填config文件的"local_address",代理端口填"local_port" \(\rightarrow\) 应用选项

新建情景模式 \(\rightarrow\) 自动切换模式(A) \(\rightarrow\) 规则列表格式选择AutoProxy \(\rightarrow\) 添加规则列表:https://raw.githubusercontent.com/gfwlist/gfwlist/master/gfwlist.txt \(\rightarrow\) 立即更新情景模式 \(\rightarrow\) 规则列表的情景模式勾选SS \(\rightarrow\) 应用选项

其中第一个操作配置了仅只用shadowsocks作为全局代理的模式,即全局模式,特点如下:

  • 仅当PAC模式能正常工作时可使用

  • 加速访问国外网站,但打开国内网站速度变慢

  • 比较耗流量,国内外网站全部走代理

  • 可访问全球绝大部分网站

第二个操作设置了自动切换模式,即PAC模式,特点如下:

  • 智能分流,根据规则匹配访问的网站,仅加速访问国外网站,访问国内网站不受影响

  • 节省流量,国内网站走本地网络,国外网站走代理

  • 需要自己设定规则

PAC另一规则列表:https://raw.githubusercontent.com/Alvin9999/new-pac/master/pac

创建启动器与软链接的方式

创建启动器:.desktop (此处以sublime_text为例)

创建一个.desktop 启动器文件

1
2
3
cd /usr/share/applications
sudo touch sublime.desktop
sudo vim ./sublime.desktop

编辑内容如下:

1
2
3
4
5
6
7
8
9
10
[Desktop Entry] # 文件头
Encoding=UTF-8 # 编码方式
Name=sublime # 程序名
Comment=sublime IDE # 注释
Exec=/home/lightshaker/sublime_text_3/sublime_text #应用程序路径
Icon=/home/lightshaker/sublime_text_3/Icon/256x256/sublime-text.png #图标路径
Terminal=false #软件打开时是否启动终端
StartupNotify=false # 软件启动是否通知
Type=Application # 启动器类型
Categories=Application;Development; # 应用的类型

编辑完保存,打开终端修改启动器权限:sudo chmod a+x ./sublime.desktop

创建软链接

创建软链接之后就可以在终端中用二进制文件的名称来启动程序了,比如 sublime

1
sudo ln -s /home/lightshaker/sublime_text_3/sublime_text /usr/bin/sublime

桌面 UI美化

本地安装 Gnome-tweak-tool

1
sudo apt install gnome-tweak-tool

Chrome安装 gnome 插件

方法一 : sudo apt install chrome-gnome-shell

方法二:进入 chrome 插件商店 https://chrome.google.com/webstore,搜索 gnome,安装 GNOME shell

ps:进入 gnome 插件的方式:右上角添加插件启动图标,或地址启动 https://extensions.gnome.org

个性化配置

下载主题

进入主题下载网站:https://www.opendesktop.org/s/Gnome下载所需主题的压缩包文件 .tar.xz

将压缩包内程序主题shell主题的文件夹移动到 /usr/share/themes 路径下,图标主题光标主题的文件夹移动到 /usr/share/icons 路径下

设置主题

打开 GNOME Tweak 设置主题

打开 chrome 的插件 GNOME shell,下载系统主题插件 Dash to dock,下载完毕点击配置按键设置dock属性

移动菜单栏位置的办法:

position:TOP/BOTTOM/LEFT/RIGHT

ubuntu18.04:gsettings set org.gnome.shell.extensions.dash-to-dock dock-position + [position]

ubuntu16.04:gsettings set com.canonical.Unity.Launcher launcher-position + [position]

附录:MacOS主题及壁纸网站推荐

app theme : McOS-HS-(transparent) https://www.gnome-look.org/p/1241688 McOS-HS--2-themes.tar.xz

shell theme: Sierra-light https://www.pling.com/p/1241688 Sierra-light.tar.xz

icon theme : McMojave https://www.gnome-look.org/p/1275087 Mojave-dark.tar.xz

wallpaper https://wallhaven.cc || https://wallpaperup.com

Chrome 开发者模式截长图

F12 进入开发者工具,Ctrl+Shift+P 打开命令搜索并执行

  • Capture full size screenshot 整张网页长截图

  • Capture screenshot 截取网页可视区域

  • Capture area screenshot 截取选择部分区域

  • Capture node screenshot 截取手机版网页长图

gnome桌面下gedit首选项消失的解决办法

最直接的方式,让首选项出现:

1
gsettings set org.gnome.settings-daemon.plugins.xsettings overrides '@a{sv} {"Gtk/ShellShowsAppMenu": <int32 0>}'

相关设置命令:gsettings ``set org.gnome.gedit.preferences.editor xxx,按tab查看即可。

这里列举几个:

设置配色方案:需要下载xml文件至/usr/share/gtksourceview-3.0/style路径下才可使用对应方案名称

1
gsettings set org.gnome.gedit.preferences.editor scheme xxx #xxx为配色方案名称

设置显示行号:

1
gsettings set org.gnome.gedit.preferences.editor display-line-numbers true

设置当前行号高亮

1
gsettings set org.gnome.gedit.preferences.editor highlight-current-line true

解压缩Windows下创建的zip包乱码问题

使系统支持中文字符集

1
2
3
4
5
6
7
8
sudo gedit /var/lib/locales/supported.d/local
# 添加中文字符集:
zh_CN.GB18030 GB18030
zh_CN.GBK GBK
zh_CN.UTF-8 UTF-8
zh_CN.GB2312 GB2312
# 更新
sudo locale-gen

使用7-zip解压,convmv文件名转码

1
2
3
4
5
sudo apt-get install convmv p7zip-full
# 解压方式
LANG=C 7z x 你的zip文件名
# 转码
convmv -f gbk -t utf8 -r --notest *

上面只解决了文件名乱码,这里解决vim/gedit打开文件内容乱码的问题

1
2
3
4
5
6
7
# 打开vim配置文件,添加内容,保存退出
sudo gedit /etc/vim/vimrc
set fileencodings=utf-8,gb2312,gbk,gb18030
set termencoding=utf-8
set encoding=prc
# 解决gedit中文乱码
gsettings set org.gnome.gedit.preferences.encodings candidate-encodings "['UTF-8','CURRENT','GB18030','ISO-8859-15','UTF-16']"

ssh登录root用户显示permission denied

  • 情况一:不论使用 ssh 登录什么账户,都显示 could not establish connection to XXX
    • 原因:服务器端(被访问端)未安装ssh
    • 解决方案:sudo apt install openssh-server
      • 重启 ssh 服务:service ssh restart
      • 查看 ssh 服务状态:ps -e | grep sshservice ssh status
  • 情况二:直接在终端使用ssh root@ip 连接出现 permission denied 但使用普通用户可以登录:
    • 原因一:root用户密码为系统给的默认值,没有修改过,自然每次密码错误都是permission denied
      • susudo的区别:su是切换用户,不加参数默认切换到root用户,需要输入root用户的密码才能切换,而sudo指的是可在任意用户下直接使用超级用户权限(root用户的权限)执行命令,这只是一种授权指令,确保执行命令的用户知道自己将用root权限,因此需要的是执行命令的用户的密码,而非root用户的密码;
      • 解决方案:sudo passwd root,更改root用户密码,即可用root用户登录
    • 原因二:服务器端设定了不可用root权限远程登录
      • 解决方案:sudo vim /etc/ssh/sshd_config,将 PermitRootLogin 的值设为 yes,然后重启ssh服务

删除除了A之外的所有文件

grep -v 排除,xargs 传参

1
ls | grep -v "A" | xargs rm -rf

修复F1-F12被强制为功能键

1
2
3
echo options hid_apple fnmode=2 | sudo tee -a /etc/modprobe.d/hid_apple.conf
sudo update-initramfs -u -k all
sudo reboot