Open zqhong opened 7 years ago
20G 大小硬盘分区
$ sudo fdisk /dev/sdb
Command (m for help): o // 创建空的 DOS 分区表
Command (m for help): n // 创建一个新分区
Command (m for help): Enter // 默认主分区
Command (m for help): Enter // 分区1
Command (m for help): Enter // Fist sector 2048
Command (m for help): +100M // 分区 100M 大小 - 对应 /boot
Command (m for help): n // 创建一个新分区
Command (m for help): Enter // 默认主分区
Command (m for help): Enter // 分区2
Command (m for help): Enter // Fist sector xxx
Command (m for help): +10G // 分区 10G 大小 - 对应 /usr
Command (m for help): n // 创建一个新分区
Command (m for help): Enter // 默认主分区
Command (m for help): Enter // 分区3
Command (m for help): Enter // Fist sector xxx
Command (m for help): Enter // 分区使用剩余空间 - 对应 /
Command (m for help): p // 打印当前分区表
Disk /dev/sdb: 23.6 GB, 23595794432 bytes
255 heads, 63 sectors/track, 2868 cylinders, total 46085536 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x92e79b9c
Device Boot Start End Blocks Id System
/dev/sdb1 2048 206847 102400 83 Linux
/dev/sdb2 206848 21178367 10485760 83 Linux
/dev/sdb3 21178368 46085535 12453584 83 Linux
Command (m for help): w // 确定无误后,向磁盘写入这些改动并退出
参考: Fdisk (简体中文)
// 创建存放软件包源码的目录
mkdir -v $LFS/sources
// 设置目录的写权限和粘滞模式
// 多个用户都有目录的写权限,但只有创建者有删除权限
chmod -v a+wt $LFS/sources
// 从下载列表文件中下载软件包到 $LFS/sources
wget https://linux.cn/lfs/LFS-BOOK-7.7-systemd/wget-list-LFS7.7-systemd-USTC
wget --input-file=wget-list-LFS7.7-systemd-USTC --continue --directory-prefix=$LFS/sources
cat > wget-list-patch << "EOF"
http://www.linuxfromscratch.org/patches/lfs/7.7-systemd/bash-4.3.30-upstream_fixes-1.patch
http://www.linuxfromscratch.org/patches/lfs/7.7-systemd/bc-1.06.95-memory_leak-1.patch
http://www.linuxfromscratch.org/patches/lfs/7.7-systemd/bzip2-1.0.6-install_docs-1.patch
http://www.linuxfromscratch.org/patches/lfs/7.7-systemd/coreutils-8.23-i18n-1.patch
http://www.linuxfromscratch.org/patches/lfs/7.7-systemd/glibc-2.21-fhs-1.patch
http://www.linuxfromscratch.org/patches/lfs/7.7-systemd/kbd-2.0.2-backspace-1.patch
http://www.linuxfromscratch.org/patches/lfs/7.7-systemd/mpfr-3.1.2-upstream_fixes-3.patch
http://www.linuxfromscratch.org/patches/lfs/7.7-systemd/readline-6.3-upstream_fixes-3.patch
http://www.linuxfromscratch.org/patches/lfs/7.7-systemd/systemd-219-compat-1.patch
EOF
wget --input-file=wget-list-patch --continue --directory-prefix=$LFS/sources
mkdir -v $LFS/tools
ln -sv $LFS/tools /
groupadd lfs
useradd -s /bin/bash -g lfs -m -k /dev/null lfs
passwd lfs
chown -v lfs $LFS/tools
chown -v lfs $LFS/sources
su - lfs
cat > ~/.bash_profile << "EOF"
exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash
EOF
cat > ~/.bashrc << "EOF"
set +h
umask 022
LFS=/mnt/lfs
LC_ALL=POSIX
LFS_TGT=$(uname -m)-lfs-linux-gnu
PATH=/tools/bin:/bin:/usr/bin
export LFS LC_ALL LFS_TGT PATH
EOF
source ~/.bash_profile
.tar
解包:tar xvf FileName.tar
打包:tar cvf FileName.tar DirName
(注:tar是打包,不是压缩!)
———————————————
.gz
解压1:gunzip FileName.gz
解压2:gzip -d FileName.gz
压缩:gzip FileName
.tar.gz 和 .tgz
解压:tar zxvf FileName.tar.gz
压缩:tar zcvf FileName.tar.gz DirName
———————————————
.bz2
解压1:bzip2 -d FileName.bz2
解压2:bunzip2 FileName.bz2
压缩: bzip2 -z FileName
.tar.bz2
解压:tar jxvf FileName.tar.bz2
压缩:tar jcvf FileName.tar.bz2 DirName
———————————————
.bz
解压1:bzip2 -d FileName.bz
解压2:bunzip2 FileName.bz
压缩:未知
.tar.bz
解压:tar jxvf FileName.tar.bz
压缩:未知
———————————————
.Z
解压:uncompress FileName.Z
压缩:compress FileName
.tar.Z
解压:tar Zxvf FileName.tar.Z
压缩:tar Zcvf FileName.tar.Z DirName
———————————————
.zip
解压:unzip FileName.zip
压缩:zip FileName.zip DirName
———————————————
.rar
解压:rar x FileName.rar
压缩:rar a FileName.rar DirName
———————————————
.lha
解压:lha -e FileName.lha
压缩:lha -a FileName.lha FileName
———————————————
.rpm
解包:rpm2cpio FileName.rpm | cpio -div
———————————————
.deb
解包:ar p FileName.deb data.tar.gz | tar zxf -
-----
.xz
解包:xz -d ***.tar.xz
// 安装 apt-file
sudo apt-get install apt-file
// 更新 apt-file 本地数据库
sudo apt-file update
// 搜索包含该依赖的库
sudo apt-file search XTest.h
参考:https://www.centos.bz/2013/09/ubuntu-apt-file-intro/
suid:在一个程序或命令上添加 setuid 以后(u+s),这样属主有了s权限,意味着任何用户在执行此程序时,其进程的属主不再是发起者本人,而是这个程序的属主。最典型的一个例子就是passwd这个命令;
chmod u+s /path/to/file
sgid:属组有s权限,意思就是执行此程序时,此进程的属组不再是运行者本人所属的基本组,而是此程序文件的属组。Set gid权限如果给文件设置,是让运行此文件的其它用户具有这个文件的属组特性;给目录设置Set gid权限,任何用户在该目录下创建的文件,则该文件属组都和目录的属组一致。
chmod g+s /path/to/file
3.sticky:粘滞位,附加other的权限上,表现为t。 可以添加和任意修改其他用户的文件,就是不能删除其他用户的文件,自己可以删除自己创建的文件。
chmod o+t /path/to/file
参考:http://taokey.blog.51cto.com/4633273/1329992
让切换目录更方便: pushd,popd,dirs,cd -
cd -
:返回上一目录dirs -v
:查看目录栈详情pushd /path/to
:切换目录,并将目录压入目录栈顶pushd +1
:切换到编号为1的目录,并将该目录作为目录栈顶(备注:编号通过 dirs -v 查看)popd -1
:将编号为1的目录从目录栈中删除dirs -c
:清空目录栈参考:http://blog.csdn.net/lhg803/article/details/4248982
update-alternatives 的几个主要选项:
$ update-alternatives --display sh
sh - auto mode
link currently points to /bin/bash
/bin/bash - priority 100
/bin/dash - priority 80
Current 'best' version is '/bin/bash'.
* install:增加一组新的系统命令链接符
// 语法:update-alternatives --install link name path priority [--slave link name path] // 添加 /bin/bash 到 sh 组,优先级为 100 $ update-alternatives --install /bin/sh sh /bin/bash 100
* remove:删除一个alternative及相关从alternative
// 语法:update-alternatives --remove name path sudo update-alternatives --remove sh /bin/dash
* config:为在现有的命令链接选择一个作为系统默认的
// 语法:update-alternatives --config name $ sudo update-alternatives --config sh There are 2 choices for the alternative sh (providing /bin/sh).
Press enter to keep the current choice[*], or type selection number: 1
参考:http://persevere.iteye.com/blog/1479524
---
## 复制多个文件到一个目录
// 相当于:cp /tmp/file1 /tmp/file2 /path/to cp /tmp/{file1,file2} /path/to
// 相当于:cp /tmp/file1 /tmp/file2 /path/to cp /tmp/file{1,2} /path/to
> 这种用法同样适用于 `mv`、`rm` 等命令。
参考:
[Copying multiple specific files from one folder to another](http://askubuntu.com/questions/327282/copying-multiple-specific-files-from-one-folder-to-another)
(chroot LFS 之后的操作)设置动态库的查找路径: export LD_LIBRARY_PATH=/lib:/lib64:/usr/lib
编译 Coreutils-8.23 出现错误:
GEN man/cp.1
help2man: can't get `--help' info from man/cp.td/cp
Try `--no-discard-stderr' if option outputs to stderr
Makefile:14066: recipe for target 'man/cp.1' failed
make[2]: *** [man/cp.1] Error 127
make[2]: Leaving directory '/sources/coreutils-8.23'
Makefile:11098: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/sources/coreutils-8.23'
Makefile:5765: recipe for target 'all' failed
make: *** [all] Error 2
解决方案: 开启另一个终端,
vi /mnt/lfs/sources/coreutils-8.23/Makefile
#找到行:
run_help2man = $(PERL) -- $(srcdir)/man/help2man
#将上面行修改为:
run_help2man = $(PERL) -- $(srcdir)/man/help2man --no-discard-stderr
// 查看 CPU 个数 grep processor /proc/cpuinfo
export MAKEFLAGS='-j2'
第一章 介绍及环境安装
系统:Ubuntu 14.04