Linux学习笔记
时间:2007-01-30 来源:zw_ren
使用文件作为交换区
在安装Linux系统时,你可能已经物意地设置了一个分区作为交换区。但你可以使用一个
文件替代原先设置的交换分区,这样可以释放原先交换分区的空间。
一般情况下,使用文件作为交换分区可能使系统性能有所下降,虽然下降的幅度很小。但
当你需要增加交换区时,此方法将会十分有用。使用如下的命令创建文件交换区。
dd if=/dev/zero of=/swap bs=1024 count=16416
此命令创建了一个大小为16MB(16416 blocks)的文件交换区(文件名叫作swap)。
接下来使用下面的命令物理地创建文件交换区:
mkswap /swap 16416
交换区的块数应该和上面相同。最后,使用如下的命令打开交换区:
swapon /swap
如查你想移去文件交换区而使用磁盘交换分区,则使用如下的命令:
swapoff /swap
然后再用rm命令删除文件。
设置系统名
/etc/hostname中修改,重启后生效。
或者使用hostname命令:hostname newname
设置登录信息
可以使用/etc/motd文件显示系统信息。此文件的内容在每个用户登录时都将显示。
查看目录所占磁盘容量
语法:du[-s] 目录
例:
du dir1 显示目录dir1的总容量及其子目录的容量(KB)。
du -s dir1 显示目录dir1的总容量。
文件权限的设定
chmod [-R] mode name
chown [-R] 用户名 name
文件中字符串的查寻
语法:grep string file
例如:grep abc file1 录找文件file1中包含字符串abc所在行的文本内容。
查寻文件或命令和路径
语法:whereis command 显示命令的路径
语法:which command 显示命令的路径,及使用者所定义的别名。
语法:whatis command 显示命令功能的摘要。
语法:find search-path -name filename -print 搜寻指定路径下某文件的路径。
后台执行进程的方式
语法:命令&
例如:
cc file1.c & 将编译file1.c文件的工作置于后台执行。
语法:按下Ctrl+Z键,暂停正在执行的进程。键入bg命令,将暂停的进程置于后台继续
执行。
查看正在后台中执行的进程
语法:jobs
结束或终止后台的进程
语法:kill %n
n:利用jobs命令查看出的后台作业号。
例如:
kill % 终止在后台中的第一个进程
kill %2 终止在后台中的第二个进程
Linux系统初始化过程简介
当PC启动时,Intel系统的CPU首先进入的是实模式,并开始执行位于地址0xFFFF0处的代
码,也就是ROM-BIOS起始位置的代码。BIOS先进行一系列的系统自检,然后初始化位于地
址0的中断向量表。最后BIOS将启动盘的第一个扇区装入到0x7C00,并开始执行此处的代
码。这就是对内核初始化过程的一个最简单的描述。
最初,Linux的最开始部分是用8086汇编语言编写的。当开始运行时,核心将自己装入到
绝对地址0x90000,再将其后的2k字节装入到地址0x90200处,最后将核心的其余部分装入
到0x10000。当系统装入时,会显示Loading...信息。装入完成后,控制转向另一个实模式
下的汇编语言代码boot/Setup.S。
Setup部分首先设置一些系统的硬件设备,然后将核心从0x10000处移至0x1000处。这时系
统转入保护模式,开始执行位于0x1000处的代码。
接下来是内核的解压缩。0x1000处的代码来自于文件zBoot/head.S,它用来初始化寄存器
和调用decompress_kernel()程序。decompress_kernel()程序由zBoot/inflate.c,zBoot/
unzip.c和zBoot/misc.c组成。解压缩后的数据被装入到了0x100000处,这也是Linux不能在
内存小于2M的环境下运行的主要原因。
解压后的代码在0x1010000处开始执行,紧接着所有的32位的设置都将完成:IDT、GDT和
LDT将被装入,处理器初始化完毕。设置好内存页面,最终调用start_kernel过程。这大概
是整个内核中最为复杂的部分。
start_kernel()程序用于初始化系统内核的各个部分,包括:
*设置内存边界,设用paging_init()初始化内存页面。
*初始化陷阱,中断通道和调度。
*对命令行进行语法分析。
*初始化设备驱动程序和磁盘缓冲区。
*校对延迟循环。
最后系统核心转向move_to_user_mode(),以便创建初始化进程(init)。此后,进程0开始
进入无限循环。
在安装Linux系统时,你可能已经物意地设置了一个分区作为交换区。但你可以使用一个
文件替代原先设置的交换分区,这样可以释放原先交换分区的空间。
一般情况下,使用文件作为交换分区可能使系统性能有所下降,虽然下降的幅度很小。但
当你需要增加交换区时,此方法将会十分有用。使用如下的命令创建文件交换区。
dd if=/dev/zero of=/swap bs=1024 count=16416
此命令创建了一个大小为16MB(16416 blocks)的文件交换区(文件名叫作swap)。
接下来使用下面的命令物理地创建文件交换区:
mkswap /swap 16416
交换区的块数应该和上面相同。最后,使用如下的命令打开交换区:
swapon /swap
如查你想移去文件交换区而使用磁盘交换分区,则使用如下的命令:
swapoff /swap
然后再用rm命令删除文件。
设置系统名
/etc/hostname中修改,重启后生效。
或者使用hostname命令:hostname newname
设置登录信息
可以使用/etc/motd文件显示系统信息。此文件的内容在每个用户登录时都将显示。
查看目录所占磁盘容量
语法:du[-s] 目录
例:
du dir1 显示目录dir1的总容量及其子目录的容量(KB)。
du -s dir1 显示目录dir1的总容量。
文件权限的设定
chmod [-R] mode name
chown [-R] 用户名 name
文件中字符串的查寻
语法:grep string file
例如:grep abc file1 录找文件file1中包含字符串abc所在行的文本内容。
查寻文件或命令和路径
语法:whereis command 显示命令的路径
语法:which command 显示命令的路径,及使用者所定义的别名。
语法:whatis command 显示命令功能的摘要。
语法:find search-path -name filename -print 搜寻指定路径下某文件的路径。
后台执行进程的方式
语法:命令&
例如:
cc file1.c & 将编译file1.c文件的工作置于后台执行。
语法:按下Ctrl+Z键,暂停正在执行的进程。键入bg命令,将暂停的进程置于后台继续
执行。
查看正在后台中执行的进程
语法:jobs
结束或终止后台的进程
语法:kill %n
n:利用jobs命令查看出的后台作业号。
例如:
kill % 终止在后台中的第一个进程
kill %2 终止在后台中的第二个进程
Linux系统初始化过程简介
当PC启动时,Intel系统的CPU首先进入的是实模式,并开始执行位于地址0xFFFF0处的代
码,也就是ROM-BIOS起始位置的代码。BIOS先进行一系列的系统自检,然后初始化位于地
址0的中断向量表。最后BIOS将启动盘的第一个扇区装入到0x7C00,并开始执行此处的代
码。这就是对内核初始化过程的一个最简单的描述。
最初,Linux的最开始部分是用8086汇编语言编写的。当开始运行时,核心将自己装入到
绝对地址0x90000,再将其后的2k字节装入到地址0x90200处,最后将核心的其余部分装入
到0x10000。当系统装入时,会显示Loading...信息。装入完成后,控制转向另一个实模式
下的汇编语言代码boot/Setup.S。
Setup部分首先设置一些系统的硬件设备,然后将核心从0x10000处移至0x1000处。这时系
统转入保护模式,开始执行位于0x1000处的代码。
接下来是内核的解压缩。0x1000处的代码来自于文件zBoot/head.S,它用来初始化寄存器
和调用decompress_kernel()程序。decompress_kernel()程序由zBoot/inflate.c,zBoot/
unzip.c和zBoot/misc.c组成。解压缩后的数据被装入到了0x100000处,这也是Linux不能在
内存小于2M的环境下运行的主要原因。
解压后的代码在0x1010000处开始执行,紧接着所有的32位的设置都将完成:IDT、GDT和
LDT将被装入,处理器初始化完毕。设置好内存页面,最终调用start_kernel过程。这大概
是整个内核中最为复杂的部分。
start_kernel()程序用于初始化系统内核的各个部分,包括:
*设置内存边界,设用paging_init()初始化内存页面。
*初始化陷阱,中断通道和调度。
*对命令行进行语法分析。
*初始化设备驱动程序和磁盘缓冲区。
*校对延迟循环。
最后系统核心转向move_to_user_mode(),以便创建初始化进程(init)。此后,进程0开始
进入无限循环。
相关阅读 更多 +