0%

Linux Tweaks

1 删除残余的配置文件

通常Debian/Ubuntu删除软件包可以用两条命令

1
2
sudo apt-get remove <package-name>
sudo apt-get purge <package-name>

remove将会删除软件包,但会保留配置文件.purge会将软件包以及配置文件都删除.
找出系统上哪些软件包留下了残余的配置文件

1
dpkg --list | grep "^rc"
1
dpkg --list | grep "^rc" | cut -d " " -f 3 | xargs sudo dpkg --purge

2 清理下载的缓存包

sudo apt-get install安装软件时,其下载的包都缓存在/var/cache/apt/archives/目录中。如果要清理掉这些已下载的缓存包,那么可以执行命令0

1
2
$ sudo apt-get autoclean
$ sudo apt-get clean

3 清理孤立的库文件

有时候,你用apt-get安装一个软件包时会自动安装其他的依赖.当你删除掉这个软件包时,这些依赖也就没有用处了.这些没有用的依赖包叫做孤儿软件包,可以用下面的命令删除

1
$ sudo apt-get autoremove

不过apt-get autoremove只会删除经apt-get自动安装的依赖包,而你自己手动安装的依赖包则不会被删除,这时我们可以用deborphan来彻底删除.

1
2
3
4
5
6
7
$ sudo apt-get install deborphan
# 列出孤儿软件包
$ deborphan
gstreamer0.10-pocketsphinx:amd64
gstreamer0.10-dvswitch:amd64
# 删除它们
$ deborphan | xargs sudo apt-get purge -y

4 删除多余的映像

Ubuntu Linux内核升级频繁,如果不删除旧的内核,将会占用大量磁盘空间,而且开机启动有诸多选项(这点,可以通过vim /boot/grub/menu.lst手工修改,即删除多余启动项)。这些操作成为释放空间的主要来源,删除一个内核映射约可以释放100M空间:-)

4.1 查看已安装内核映像

查看已安装内核映像:

1
2
3
4
5
6
$ sudo dpkg --get-selections  | grep linux-image
linux-image-2.6.32-25-generic install /*linux-xx.xx.xx-xx(-generic)是升级的内核版本,可以删除*/
linux-image-2.6.32-26-generic install
linux-image-2.6.32-27-generic install
linux-image-2.6.32-31-generic install
linux-image-generic install /*Linux发布版完整内核映像,不可删除*/

4.2 查看当前内核版本

查看当前内核版本

1
2
$ uname -r
2.6.32-31-generic

4.3 删除多余内核映像

删除旧的内核映像(只须保留linux-image-generic即可,和当前内核版本即可)。

1
$ sudo apt-get purge linux-image-2.6.32-26-generic

5 删除旧的编译库

5.1 查看已有的编译库

查看已有的内核C编译库,即头文件库:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$ sudo dpkg --get-selections  | grep linux-headers
linux-headers-2.6.28-19 install /*内核C编译库,即头文件库*/
linux-headers-2.6.28-19-generic install
linux-headers-2.6.32-24 install
linux-headers-2.6.32-24-generic install
linux-headers-2.6.32-25 install
linux-headers-2.6.32-25-generic install
linux-headers-2.6.32-26 install
linux-headers-2.6.32-26-generic install
linux-headers-2.6.32-27 install
linux-headers-2.6.32-27-generic install
linux-headers-2.6.32-30 install
linux-headers-2.6.32-30-generic install
linux-headers-2.6.32-31 install
linux-headers-2.6.32-31-generic install
linux-headers-generic install /*Linux发布版的C编译库,不可删除*/

5.2 删除旧的编译库

编译库与内核版本一一样对应,只须保留与当前内核版本相对应的编译库,如此例的linux-headers-2.6.32-31-generic,其他的皆可删除。

1
$ sudo apt-get purge linux-headers-2.6.28-19

Auto Login

Terminator

1
2
3
:~$ systemctl get-default
graphical.target
:~$ systemctl set-default multi-user.target

autologin

1
2
3
4
5
6
7
:~$ systemctl edit [email protected]
[Service]
ExecStart=
ExecStart=-/sbin/agetty --autologin root --noclear %I 38400 linux
:~$ systemctl daemon-reload
:~$ systemctl restart [email protected]
:~$ reboot

only start 1 tty

1
:~$ sed -i 's|^NAutoVTs=\n|NAutoVTs=1|' /etc/systemd/logind.conf

Graphical

1
2
3
:~$ systemctl get-default
multi-user.target
:~$ systemctl set-default graphical.target

GNOME

/etc/gdm3/daemon.conf

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
# GDM configuration storage - modified by kali-root-login
#
# See /usr/share/gdm/gdm.schemas for a list of available options.

[daemon]
# Uncomment the line below to force the login screen to use Xorg
WaylandEnable=false
# Enabling automatic login
AutomaticLoginEnable = true
AutomaticLogin = root

# Enabling timed login
# TimedLoginEnable = true
# TimedLogin = user1
# TimedLoginDelay = 10

# Reserving more VTs for test consoles (default is 7)
# FirstVT = 9

[security]
AllowRoot = false

[xdmcp]

[greeter]
# Only include selected logins in the greeter
# IncludeAll = false
# Include = user1,user2

[chooser]

[debug]
# More verbose logs
# Additionally lets the X server dump core if it crashes
# Enable = true

开机后直接进入Terminator

1
2
3
4
# auto login Terminator
set mult-users.target as default
# auto login GUI
set graphic-users.target as default

魔法键组合 reisub - force reboot linux

原文

如果某一天你的 Linux 死机了,键盘不听使唤了,Ctrl+Alt+F1 已经没有任何反应,该怎么办呢?
使用“魔法键”:Alt+SysRq + r,e,i,s,u,b

说具体一点, 是一种系统请求, 直接交给内核处理。
键盘上一般都有一个键SysRq, 和PrintScreen(截屏)在一个键位上,这就是系统请求的键。
这个方法可以在死机的情况下安全地重启计算机, 数据不会丢失。

这里解释下:
其实 SysRq是一种叫做系统请求的东西, 按住 Alt-Print 的时候就相当于按住了SysRq键,这个时候输入的一切都会直接由 Linux 内核来处理,它可以进行许多低级操作。

这个时候 reisub 中的每一个字母都是一个独立操作,分别表示:

  • r : unRaw 将键盘控制从 X Server 那里抢回来
  • e : tErminate 给所有进程发送 SIGTERM 信号,让它们自己解决善后
  • i : kIll 给所有进程发送 SIGKILL 信号,强制他们马上关闭
  • s : Sync 将所有数据同步至磁盘
  • u : Unmount 将所有分区挂载为只读模式
  • b : reBoot 重启

操作步骤(亲测)

究竟该怎么按这些按钮才会有效?

首先,你的系统要支持这个功能,查看和开启的方法大家应该很熟悉了,网上也有很多说明,而且最幸运的是:Ubuntu 默认已经开启了这个功能。

接下来就是操作:马上你就会发现,同时按下+压根儿行不通!只会蹦出来一个屏幕截图窗口。所以,真正的做法应该是:

  1. 伸出你的左手,同时按住<Ctrl>+<Alt>键,别松开
  2. 右手先按一下<SysRq>,左手别松开,等1秒
  3. 右手按一下 R,左手别松开,等1秒
  4. 右手按一下 E,左手别松开。这时包括桌面在内,所有程序都会终止,你会看到一个黑乎乎的屏幕,稍微等一段时间
  5. 右手依次按下 I,S,U,B,左手别松开。每按一次都等那么几秒种,你会发现每按一次,屏幕上信息都会有所变化。最后按下B时,屏幕显示reset,这时你的左手可以松开了,等几秒钟,计算机就会安全重启。

Disable IPv6

Use Sysctl

1
2
3
sudo sysctl -w net.ipv6.conf.all.disable_ipv6=1
sudo sysctl -w net.ipv6.conf.default.disable_ipv6=1
sudo sysctl -w net.ipv6.conf.lo.disable_ipv6=1

However, this only temporarily disables IPv6. The next time your system boots, IPv6 will be enabled again.

One method to make this option persist is modifying /etc/sysctl.conf.

1
2
3
4
5
6
:~$ cat >> /etc/sysctl.conf <<EOF
net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.default.disable_ipv6=1
net.ipv6.conf.lo.disable_ipv6=1
EOF
:~$ sudo sysctl -p

Disable IPv6 using GRUB

An alternative method is to configure GRUB to pass kernel parameters at boot time. You’ll have to edit /etc/default/grub. Once again, make sure you have administrator privileges:

1
2
3
4
5
6
:~$ grep GRUB_CMDLINE_LINUX /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
GRUB_CMDLINE_LINUX=""
:~$ sed -i 's/GRUB_CMDLINE_LINUX_DEFAULT="quiet"/GRUB_CMDLINE_LINUX_DEFAULT="quiet ipv6.disable=1"/' /etc/default/grub
:~$ sed -i 's/GRUB_CMDLINE_LINUX=""/GRUB_CMDLINE_LINUX="ipv6.disable=1"/' /etc/default/grub
:~$ update-grub
---- The End Thanks ----
Donate if you like the article.