blfs学习笔记-第1页链接:https://www.cnblogs.com/renren-study-notes/p/10214504.html
记录blfs书籍前几个章节的配置内容,使用xshell远程操作。
bash shell启动文件章节
1.切换root用户
su
2.创建/etc/profile文件
cat > /etc/profile << "EOF" # Begin /etc/profile # Written for Beyond Linux From Scratch # by James Robertson <[email protected]> # modifications by Dagmar d'Surreal <[email protected]> # System wide environment variables and startup programs. # System wide aliases and functions should go in /etc/bashrc. Personal # environment variables and startup programs should go into # ~/.bash_profile. Personal aliases and functions should go into # ~/.bashrc. # Functions to help us manage paths. Second argument is the name of the # path variable to be modified (default: PATH) pathremove () { local IFS=':' local NEWPATH local DIR local PATHVARIABLE=${2:-PATH} for DIR in ${!PATHVARIABLE} ; do if [ "$DIR" != "$1" ] ; then NEWPATH=${NEWPATH:+$NEWPATH:}$DIR fi done export $PATHVARIABLE="$NEWPATH" } pathprepend () { pathremove $1 $2 local PATHVARIABLE=${2:-PATH} export $PATHVARIABLE="$1${!PATHVARIABLE:+:${!PATHVARIABLE}}" } pathappend () { pathremove $1 $2 local PATHVARIABLE=${2:-PATH} export $PATHVARIABLE="${!PATHVARIABLE:+${!PATHVARIABLE}:}$1" } export -f pathremove pathprepend pathappend # Set the initial path export PATH=/bin:/usr/bin if [ $EUID -eq 0 ] ; then pathappend /sbin:/usr/sbin unset HISTFILE fi # Setup some environment variables. export HISTSIZE=1000 export HISTIGNORE="&:[bf]g:exit" # Set some defaults for graphical systems export XDG_DATA_DIRS=${XDG_DATA_DIRS:-/usr/share/} export XDG_CONFIG_DIRS=${XDG_CONFIG_DIRS:-/etc/xdg/} export XDG_RUNTIME_DIR=${XDG_RUNTIME_DIR:-/tmp/xdg-$USER} # Setup a red prompt for root and a green one for users. NORMAL="\[\e[0m\]" RED="\[\e[1;31m\]" GREEN="\[\e[1;32m\]" if [[ $EUID == 0 ]] ; then PS1="$RED\u [ $NORMAL\w$RED ]# $NORMAL" else PS1="$GREEN\u [ $NORMAL\w$GREEN ]\$ $NORMAL" fi for script in /etc/profile.d/*.sh ; do if [ -r $script ] ; then . $script fi done unset script RED GREEN NORMAL # End /etc/profile EOF
3.创建/etc/profile.d
放置各个初始化脚本的目录
install --directory --mode=0755 --owner=root --group=root /etc/profile.d
4.创建/etc/profile.d/bash_completion.sh脚本
cat > /etc/profile.d/bash_completion.sh << "EOF" # Begin /etc/profile.d/bash_completion.sh # Import bash completion scripts for script in /etc/bash_completion.d/*.sh ; do if [ -r $script ] ; then . $script fi done # End /etc/profile.d/bash_completion.sh EOF
5.确保该目录存在
install --directory --mode=0755 --owner=root --group=root /etc/bash_completion.d
6.创建/etc/profile.d/dircolors.sh脚本
cat > /etc/profile.d/dircolors.sh << "EOF" # Setup for /bin/ls and /bin/grep to support color, the alias is in /etc/bashrc. if [ -f "/etc/dircolors" ] ; then eval $(dircolors -b /etc/dircolors) fi if [ -f "$HOME/.dircolors" ] ; then eval $(dircolors -b $HOME/.dircolors) fi alias ls='ls --color=auto' alias grep='grep --color=auto' EOF
7.创建/etc/profile.d/extrapaths.sh脚本
cat > /etc/profile.d/extrapaths.sh << "EOF" if [ -d /usr/local/lib/pkgconfig ] ; then pathappend /usr/local/lib/pkgconfig PKG_CONFIG_PATH fi if [ -d /usr/local/bin ]; then pathprepend /usr/local/bin fi if [ -d /usr/local/sbin -a $EUID -eq 0 ]; then pathprepend /usr/local/sbin fi # Set some defaults before other applications add to these paths. pathappend /usr/share/man MANPATH pathappend /usr/share/info INFOPATH EOF
8.创建/etc/profile.d/readline.sh脚本
cat > /etc/profile.d/readline.sh << "EOF" # Setup the INPUTRC environment variable. if [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ] ; then INPUTRC=/etc/inputrc fi export INPUTRC EOF
9.创建/etc/profile.d/umask.sh脚本
cat > /etc/profile.d/umask.sh << "EOF" # By default, the umask should be set. if [ "$(id -gn)" = "$(id -un)" -a $EUID -gt 99 ] ; then umask 002 else umask 022 fi EOF
10.创建用于语言支持的脚本
cat > /etc/profile.d/i18n.sh << "EOF" # Set up i18n variables export LANG=en_US.utf8 EOF
11.创建/etc/bashrc文件
cat > /etc/bashrc << "EOF" # Begin /etc/bashrc # Written for Beyond Linux From Scratch # by James Robertson <[email protected]> # updated by Bruce Dubbs <[email protected]> # System wide aliases and functions. # System wide environment variables and startup programs should go into # /etc/profile. Personal environment variables and startup programs # should go into ~/.bash_profile. Personal aliases and functions should # go into ~/.bashrc # Provides colored /bin/ls and /bin/grep commands. Used in conjunction # with code in /etc/profile. alias ls='ls --color=auto' alias grep='grep --color=auto' # Provides prompt for non-login shells, specifically shells started # in the X environment. [Review the LFS archive thread titled # PS1 Environment Variable for a great case study behind this script # addendum.] NORMAL="\[\e[0m\]" RED="\[\e[1;31m\]" GREEN="\[\e[1;32m\]" if [[ $EUID == 0 ]] ; then PS1="$RED\u [ $NORMAL\w$RED ]# $NORMAL" else PS1="$GREEN\u [ $NORMAL\w$GREEN ]\$ $NORMAL" fi unset RED GREEN NORMAL # End /etc/bashrc EOF
12.创建~/.bash_profile配置文件
cat > ~/.bash_profile << "EOF" # Begin ~/.bash_profile # Written for Beyond Linux From Scratch # by James Robertson <[email protected]> # updated by Bruce Dubbs <[email protected]> # Personal environment variables and startup programs. # Personal aliases and functions should go in ~/.bashrc. System wide # environment variables and startup programs are in /etc/profile. # System wide aliases and functions are in /etc/bashrc. if [ -f "$HOME/.bashrc" ] ; then source $HOME/.bashrc fi if [ -d "$HOME/bin" ] ; then pathprepend $HOME/bin fi # Having . in the PATH is dangerous #if [ $EUID -gt 99 ]; then # pathappend . #fi # End ~/.bash_profile EOF
13.创建~/.profile配置文件
cat > ~/.profile << "EOF" # Begin ~/.profile # Personal environment variables and startup programs. if [ -d "$HOME/bin" ] ; then pathprepend $HOME/bin fi # Set up user specific i18n variables #export LANG=<ll>_<CC>.<charmap><@modifiers> # End ~/.profile EOF
14.创建~/.bashrc文件
cat > ~/.bashrc << "EOF" # Begin ~/.bashrc # Written for Beyond Linux From Scratch # by James Robertson <[email protected]> # Personal aliases and functions. # Personal environment variables and startup programs should go in # ~/.bash_profile. System wide environment variables and startup # programs are in /etc/profile. System wide aliases and functions are # in /etc/bashrc. if [ -f "/etc/bashrc" ] ; then source /etc/bashrc fi # Set up user specific i18n variables #export LANG=<ll>_<CC>.<charmap><@modifiers> # End ~/.bashrc EOF
15.创建~/.bash_logout文件
cat > ~/.bash_logout << "EOF" # Begin ~/.bash_logout # Written for Beyond Linux From Scratch # by James Robertson <[email protected]> # Personal items to perform on logout. # End ~/.bash_logout EOF
16.创建/etc/dircolors文件
dircolors -p > /etc/dircolors
17.返回普通用户创建~/.vimrc文件
vim ~/.vimrc
并添加如下内容
" Begin .vimrc set columns=80 set wrapmargin=8 set ruler " End .vimrc
18.创建/etc/issue文件内容自定义,下面贴出书中反斜杠后每个字符的意义
sudo vim /etc/issue
b 插入当前行的波特率。 d 插入当前日期。 s 插入系统名,操作系统的名称。 l 插入当前tty行名称。 m 插入机器的架构标识符,如i686。 n 插入机器的节点名,也就是主机名。 o 插入机器的域名。 r 插入内核的版本号,例如2.6.11.12。 t 插入当前时间。 u 插入当前登录的用户数量。 U 插入字符串“1 user”或“<n> users”,其中<n>为当前登录的用户数量。 v 插入操作系统的版本,例如,构建日期等。
我的配置文件内容
Welcome to login! \s (\l)
19.安装blfs脚本中的random脚本
make install-random
20.下载lsb_releas包并校验md5
sudo wget https://downloads.sourceforge.net/lsb/lsb-release-1.4.tar.gz md5sum -c md5sums
解压并进入lsb_releas包
#tar -xvf lsb-release-1.4.tar.gz cd lsb-release-1.4
参照书中说明编译安装
sed -i "s|n/a|unavailable|" lsb_release ./help2man -N --include ./lsb_release.examples \ --alt_version_key=program_version ./lsb_release > lsb_release.1 su install -v -m 644 lsb_release.1 /usr/share/man/man1 && install -v -m 755 lsb_release /usr/bin
返回blfs-sources目录并删除解压包目录
cd /sources/blfs-sources/ rm -rf lsb-release-1.4
21.全部配置完重启
reboot