ArchLinux安装完后的小技巧 (简体中文)

From ArchWiki

Jump to: navigation, search


i18n
English
Español
Italiano
Ελληνικά
简体中文
Türkçe

作为一名Arch新手,在安装完系统后还有一些工作要做。这份文档包含一些对新手有用的tips。

Contents

硬件

自动识别

  • lshwd是一个硬件自动识别工作。它可以告诉你需要加载的模块及相关设置。
  • 或者你也可以使用hwdetect。根据作者的经验,它可以识别更多的硬件,并且比lshwd快。更多信息请参考hwdetect

加快LILO启动速度

  • /etc/lilo.conf中加入下面一行(记得重新安装LILO,译者注):
 compact

改善硬盘性能

  • 使用hdparm提高硬盘性能。在/etc/rc.sysinit中加入类似下面的代码(作者自己的参数):
    • -a1024 = sets read_ahead buffer to 1024 bytes
    • -c3 = sets I/O support to 32-bit with sync
    • -d1 = turn on DMA
    • -m16 = sets multiple-buffer count to 16 (作者硬盘的最大值。用hdparm -i命令可以查看自己硬盘的值)

例如:

 hdparm -a1024 -c3 -d1 -m16 /dev/hda

(注意:如果程序提示/dev/hda未找到,请把上面的语句放到文件末尾,等待udev加载后再执行hdparm参数) (现在好像使用sdparm了,译者注)

在启动过程的最后暂停

  • 要在启动过程的最后、登录提示符出现之前暂停系统(通常用来调试启动信息), 在/etc/rc.local的末尾添加下面一行:
 read KEY

或者也可以删除/etc/issue中的第一个字符(该字符表示清屏的意思)

美化命令提示符-PS1

在自己的~/.bashrc中加入以下几行可以使你的命令提示符更漂亮:

BLUE=`tput setf 1`
GREEN=`tput setf 2`
CYAN=`tput setf 3`
RED=`tput setf 4`
MAGENTA=`tput setf 5`
YELLOW=`tput setf 6`
WHITE=`tput setf 7`
PS1='\[$GREEN\]\u@\h \[$BLUE\]\w\[$GREEN\] \$\[$WHITE\] '

符号\[和\]是必需的,它可以避免文字过多时换行错误的问题。

PS1变量中不同转义符“\x”代表的意思如下(来自man bash):

提示符
      在交互式执行时,bash在等待命令的时候会显示主提示符PS1,在等待更多输入来完成命令时显示次级提示符PS2。bash支持自定义的提示符,在里面可以通过一些"\"打头的转义符:
               \a     ASCII响铃字符 (07)
             \d     “周 月 日”格式的日期
               \D{format}
                    参数format被传递给strftime(3)来构造自定格式的时间并插入提示符中;该参数为空时根据本地化设置自动生成格式。
                       The braces are required
             \e     ASCII转义字符(ESC) (033)
             \h     主机名在第一个点号前的内容
               \H     完全主机名
               \j     shell当前管理的任务数
               \l     shell终端设备的基本名称
               \n     新行
               \r     回车
               \s     shell的名称,$0的基本名称
               \t     当前时间(24小时) HH:MM:SS
             \T     当前时间(12小时) HH:MM:SS
             \@     当前时间(12小时) am/pm
             \A     当前时间(24小时) HH:MM
             \u     当前用户名称
               \v     bash版本(如"2.00")
             \V     bash版本+补丁号(如"2.00.0")
             \w     当前工作目录
               \W     当前工作目录的基本名称
               \!     该命令的历史数(在历史文件中的位置)
               \#     该命令的命令数(当前shell中执行的序列位置)
               \$     根用户为"#",其它用户为"$"
             \nnn   8进制数
               \\     反斜杠
               \[     表示跟在后面的是非打印字符,可用于shell的颜色控制
               \]     表示非打印字符结束

现在根据自己的心情来心情地修改吧 :)

让manpage显示颜色

如果你是linux新手,你需要阅读大量的manpage来学习新的知识。彩色的manpage可以更好的表达内容,有利于理解。想要看彩色的manpage可以安装most软件:

pacman -S most

这个程序与less/more等程序的功能类似,但是它支持彩色输出。编辑/etc/man.conf,按照下面的内容进行修改:

PAGER           /usr/bin/most -s
BROWSER         /usr/bin/most -s

现在查看一个manpage:

man whatever_man_page

可以看到已经显示彩色了。

如果你想修改颜色,编辑~/.mostrc file(如果它不存在就新建一个)或者/etc/most.conf,加入下面的内容:

例子(~/.mostrc):

% Color settings

color normal lightgray black
color status yellow blue
color underline yellow black
color overstrike brightblue black

另一个例子,修改most的按键,使它用起来和less一样(用'J'来跳转到某一行):

% less-like keybindings

unsetkey "^K"
unsetkey "g"
unsetkey "G"
unsetkey ":"

setkey next_file ":n"
setkey find_file ":e"
setkey next_file ":p"
setkey toggle_options ":o"
setkey toggle_case ":c"
setkey delete_file ":d"
setkey exit ":q"

setkey bob "g"
setkey eob "G"
setkey down "e"
setkey down "E"
setkey down "j"
setkey down "^N"
setkey up "y"
setkey up "^Y"
setkey up "k"
setkey up "^P"
setkey up "^K"
setkey page_down "f"
setkey page_down "^F"
setkey page_up "b"
setkey page_up "^B"
setkey other_window "z"
setkey other_window "w"
setkey search_backward "?"
setkey bob "p"
setkey goto_mark "'"
setkey find_file "E"
setkey edit "v"

利用"Yaourt"无缝访问AUR

最流行的可以搜索AUR的第三方软件是yaourt。这个程序可以同时搜索AUR和AUR软件包页面的repo、prune注释(它们有时会包含有用的信息),并用漂亮的彩色显示出来,并可以让你自动的下载、

安装这些软件包。虽然如此,这只是一个tip,并不详细介绍它的用法。

使用这个程序可以节约掉打开浏览器、进入AUR、搜索、下载、解压、makepkg、pacman -A等等的时间,并且为pacman添加了彩色输出。

你可以在AUR中找到yaourt,可能不久它就会进入到[community]。

开启shell自动完成功能!

安装bash-completion:

pacman -S bash-completion

在~/.bashrc中加入下面的内容:

if [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
fi

然后运行:

source ~/.bashrc。

开启控制台鼠标支持(gpm)

  • 安装gpm:
pacman -S gpm
  • 如果可以看到鼠标光标在冷却,但是却无法正常工作,修改一下/etc/conf.d/gpm,按照以下内容修改对应的变量:

PS/2鼠标:

GPM_ARGS="-m /dev/psaux -t ps2"

USB鼠标:

GPM_ARGS="-m /dev/input/mice -t imps2"
  • 如果已经正常工作,把gpm加到DAEMONS数组中,让它开机自动运行。
  • 控制台的鼠标支持是非常有用的,特别是使用links等类似程序的时候。

启动系统后直接进入X

启动后自动激活数字键

创建自己的内核

  • 如果想手动创建自己的内核(参考Kernel Compilation),下列选项必须编译进内核(而不是模块):
      • Code maturity level options
      • Prompt for development and/or incomplete code/drivers = on
      • Device Drivers
      • File systems
      • Pseudo file systems
      • /dev file system support = on
      • Automatically mount at boot = on
    • 为了能利用hdparam提升硬盘性能:
      • Device Drivers
      • ATA/ATAPI/MFM/RLL support = on
      • Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support = on
      • Generic PCI bus-master DMA support = on
      • Intel PIIXn chipsets support = on
      • <and your IDE hdw...> = on
  • 为了加快内核加载速度,把所有硬件相关的驱动模块(通过/etc/modprobe.conf或者其它形式加载的)直接编译进内核。

利用ABS创建自己的软件包

  • 如果你使用 ABS 来创建你自己的软件包,记得先要拷贝你的目的包目录到/var/abs/local/<pkgname> 来避免你的文件和配置在下次ABS升级的时候被覆盖掉...

优化你的软件包

  • 优化使用makepkg来创建的软件包 (内核就是一个好例子), 在 /etc/makepkg.conf中设置你的gcc配置:
 (例如 athlon cpu)
 export CFLAGS="-march=athlon -O2 -pipe -fomit-frame-pointer"
 export CXXFLAGS="-march=athlon -O2 -pipe -fomit-frame-pointer"

参考 Makepkg.conf 来获得更多信息。

升级内核

  • 如果你使用的是lilo,每次内核升级或变更后都记住要执行lilo
    • 如果你忘记了执行,就需要通过光盘进行拯救恢复,步骤如下:
 modprobe xfs
 mount -t xfs /dev/discs/discX/partY /mnt
 mount -t xfs /dev/discs/discV/partW /mnt/boot (if you have it)
 mount -t devfs none /mnt/dev
 mount -t proc none /mnt/proc
 chroot /mnt /sbin/lilo

省时的命令行别名

  • 你可以在<homedir>/.bashrc/etc/profile里创建自己的命令行别名。两者都可以用来定义你自己的:别名
 #alias ls="ls --color=auto" not necessary in Arch Linux
 alias p="pacman" #timesaving!!
 alias p="yaourt" #even more timesaving :))
 alias ll="ls -lh"
 alias la="ls -a"
 alias exit="clear; exit"
 alias x="startx"
 alias pacsearch="pacman -Sl | cut -d' ' -f2 | grep " #lets you search through all available packages simply using 'pacsearch packagename'
 alias pacup="sudo pacman -Syu" # sudo pacman -Syu by typing pacup (sudo must be installed and configured first ;) )
 alias pac="sudo pacman -S" # sudo pacman -S by typing pac (sudo must be installed and configured first ;) )

带颜色的pacman -Ss搜索输出:

# colorized pacman output with pacs alias:
alias pacs="pacsearch"
pacsearch () {
       echo -e "$(pacman -Ss $@ | sed \
              -e 's#core/.*#\\033[1;31m&\\033[0;37m#g' \
                     -e 's#extra/.*#\\033[0;32m&\\033[0;37m#g' \
                            -e 's#community/.*#\\033[1;35m&\\033[0;37m#g' \
                                   -e 's#^.*/.* [0-9].*#\\033[0;36m&\\033[0;37m#g' )"
                                   }

缩短关机等待时间

  • 如要缩短关机时系统的等待时间,你可以修改/etc/rc.shutdown/etc/rc.single中的sleep参数。例如:
# Terminate all processes
stat_busy "Sending SIGTERM To Processes"
/sbin/killall5 -15 &> /dev/null
/bin/sleep 3
stat_done

stat_busy "Sending SIGKILL To Processes"
/sbin/killall5 -9 &> /dev/null
/bin/sleep 1
stat_done

设置时区

  • 要设置你的时区(这样本地时间才能显示正常)可以在/usr/share/zoneinfo/ 查看你的时区,然后在/etc/rc.conf里修改TIMEZONE变量:
TIMEZONE=Asia/Shanghai

屏蔽IPv6模块

除非IPv6大面积普及,否则可以通过屏蔽IPv6模块获得性能上提高。

PDF文件阅读器(kghostview)

  • 要修正PDF文件阅读器(kghostview),可以安装Ghostscript:
pacman -S ghostscript
  • 然后修改<homedir>/.kde/share/config/kghostviewrc中的Ghostscript段为:
  Antialiasing arguments=-sDEVICE=x11 -dTextAlphaBits=4 -dGraphicsAlphaBits=<2 -dMaxBitmap=10000000
  GS Version=
  Interpreter=/usr/bin/gs
  Non-antialiasing arguments=-sDEVICE=x11
  Redetection Counter=2 

一些有用的命令和程序

grep

根据内容查找文件。例如:grep -i syslog /etc/*将在/etc中查找所有包含单词"syslog"的文件,其中-i参数表示乎略大小写。

killall

杀掉所有指定名字的进程。例如:killall kdm

ps

显示进程的状态。例如:ps -xau将显示所有活动进程。

locate

快速定位你硬盘上的文件(需先以root权限运行updatedb来创建/更新文件数据库...)。例如: locate Xservers 将搜索所有全路经名称中包含Xservers的文件。

Pacman

Pacman是一个管理本地和网上的包的自动化工具。它会自动解决包的依赖性,正如我们所知,一向是Linux包发布头疼的问题。要改善pacman性能,可以经常执行下面指令:

pacman-optimize

makepkg

一个创建软件包的自动化工具 ── 它使得./configure && make && make install的过程真正自动化。它需要使用将要创建软件包所在目录下的PKGBUILD文件。要更多的了解如何使用makepkg,可以查看某个PKGBUILD并且阅读安装文档。

abs

一个可以用来重建任何pacman的软件包的自动化工具(这样你就给可以编译器和链接工具加上自己的参数设置,以获得更好的优化,调试信息等等)。只要执行了abs,它就会从CVS仓库里同步你所有的PKGBUILD脚本到/var/abs下。

一些重要文件的描述

  • <homedir>/.xinitrc - 控制启动时X11要加载哪些程序;最后一行必须是你要使用的窗口管理器,并且以exec来执行。
  • /etc/profile - 系统profile文件;加载环境配置(内核必须支持profiling)
  • /etc/rc.conf - 主配置文件,有点象DOS下的config.sys。
  • /etc/rc.sysinit - 有点象autoexec.bat文件,负责处理加载和设置系统
  • /etc/rc.single - 单用户系统级的脚本文件
  • /etc/rc.multi - 多用户系统级的脚本文件
  • /etc/rc.local - 本地多用户系统级的脚本文件
  • /etc/rc.shutdown - 关机系统级的脚本文件
  • /etc/rc.d/* -系统的守护进程脚本所在目录
  • /etc/conf.d/* - 系统的守护进程配置文件所在目录

解压各种类型文件

 file.tar : tar xvf file.tar
 file.tgz : tar xvzf file.tgz
 file.tar.gz : tar xvzf file.tar.gz
 file.bz : bzip -cd file.bz | tar xvf -
 file.bz2 : tar xvjf file.tar.bz2 OR bzip2 -cd file.bz2 | tar xvf -
 file.zip : unzip file.zip
 file.rar : unrar x file.rar

WikiMigration & Rewrite--dlanor 15:36, 23 Jul 2005 (EDT)

Personal tools