1. linux关机/重启命令区别
(1)shutdown:安全地关闭系统。Shutdown执行的工作时发送信号signal给init进程,要求它改变runlevel。要求它改变runlevel。Runlevel 0被用来停机〔halt,runlevel 6是用来重新激活〔reboot〕系统﹐而runlevel 1则是被用来让系统进入管理工作可以进行的状态。
[-t] 在改变到其它runlevel之前﹐告诉init多久以后关机。
[-r] 重启计算器。
[-k] 并不真正关机﹐只是送警告信号给每位登录者〔login〕。
[-h] 关机后关闭电源〔halt〕。
[-n] 不用init﹐而是自己来关机。不鼓励使用这个选项﹐而且该选项所产生的后果往往不总是你所预期得到的。
[-c] cancel current process取消目前正在执行的关机程序。所以这个选项当然没有时间参数﹐但是可以输入一个用来解释的讯息﹐而这信息将会送到每位使用者。
[-f] 在重启计算器〔reboot〕时忽略fsck。
[-F] 在重启计算器〔reboot〕时强迫fsck。
[-time] 设定关机〔shutdown〕前的时间。
(2)halt 调用shutdown –h,杀死应用进程。
(3)reboot 工作过程和halt差不多,不过它引发了主机重启。
(4)init是所有进程的祖先。它的进程号始终为1﹐所以发送TERM信号给init会终止所有的用户进程﹑守护进程等。
2. linux下装载,卸载设备
装载:mount –t 文件系统类型设备名 装载目录
软盘 /dev/fd01
硬盘 /dev/hda1
装载windows所在的C盘:mount –t vfat /dev/hda1 /mnt/c
卸载:umount /mnt/floppy
3. 查看所有进程
ps
-e 列出所有进程
-u 选择有效的用户id
-p 选择指定终端下的进程
-f 列出所有详细信息
-l 长格式列出
4. 查看登录用户
who –u
5. linux的启动过程
PC的引导加载程序由BIOS和位于硬盘MBR处的OS bootloader一起组成。
阶段1:BIOS完成硬件检测和资源分配后,将硬盘MBR处的bootloader读取到系统的RAM之中,然后将控制权交给OS bootloader
阶段2:bootloader将内核映像从硬盘读取到RAM之中,然后跳转到内核的入口处运行,即启动操作系统
常见的bootloader: lilo grub blob uboot redboot
6. 创建进程的方法
fork创建一个新进程,次进程是当前进程的一个完全拷贝
exec 在进程中用另外的程序替换掉当前进程运行的程序
vfork(写时拷贝),子进程直接运行在父进程的地址空间,直到要访问父进程的地址空间,才会复制内存给父进程
clone是有参数的,前两者是无参数的,clone可以将父进程的资源有选择的复制给子进程
7. 微内核和单内核
微内核只负责进程管理,内存管理等,文件系统,网络协议运行在用户空间 可扩展性好 不同层次之间消息传递开销大
代表:WIN NT MACH MINIX
单内核是一个大程序,包括操作系统所有部分。所有模块继承在一起,系统速度性能较好,可扩展性和维护性相对差。
代表: Linux ,unix ,dos
8. ls 显示当前目录下的文件
-a 显示隐藏文件
-l 长格式列出
-r 逆序排列
-R 递归列出所有子目录内容
-S 按文件大小排序
-t 按修改时间排序
文件常用颜色:
灰黑色: 普通文件
蓝色: 目录
绿色: 可执行文件
红色: 压缩文件
浅蓝色: 链接文件
8. cp 拷贝文件
-f 强制拷贝
-i 若目标文件存在,提示用户
-r 目录拷贝
9. ln 建立链接文件
建立一个链接文件,该链接文件指向指定的目标文件。默认建立硬链接。(硬链接是为已经存在的文件创建了附加的指针,而非创建原来文件的副本。硬链接只能在同一文件系统内创建。)
-i 目标文件存在,提示用户如下操作
-f 强制建立
-s 建立符号链接 (类似于快捷方式,符号链接可以跨越不同的文件系统)
10. find 搜索文件
-name 按照指定字符串匹配文件。
例子:查找/home目录及其子目录中包含hello字符串的5天前访问的文件,并强制删除。
Find /home –name “hello” –atime+5 –rm –f {} \;
-atime +5 5天前
-atime -5 最近5天访问
11. 创建目录 mkdir
-p 当需要创建上级目录时也创建
12. 统计数据 wc
-c 统计字节数
-m 统计字符个数
-l 统计行数
-w 统计单词个数
13. gcc命令
-o 指定输出文件名 默认a.out 完成编译和链接
-E 只进行预处理
-S 编译到汇编语言
-c 只编译到二进制目标文件,不进行链接
-g 可执行文件中包含标准调试信息
-ggdb 包含gdb调试信息
-Wall 尽可能多的警告
-Werror 错误当做警告
-w 禁止所有警告
-IPATH 设置头文件路径
-LPATH 设置库文件路径
-static 静态链接,编译后不依赖库文件
-ON 优化编译 O取1,2,3 3为最高的优化等级,优化增加代码体积
14.用户管理
useradd chen 增加
userdel chen 删除
/etc/passwd 用户账户信息
/etc/shadow 用户密码信息
15.VFS的作用
VFS的作用是采用标准的UNIX系统调用读写位于不同物理介质上的不同文件系统。VFS是一个可以让open(),read()等系统调用不用关心底层存储介质和文件系统类型就可以工作的粘合层。
16.unix2dos工具
该工具可以将linux文件转为mac格式或者windows格式。
使用:unix2dos1.txt
17.压缩和解压缩
bzip2:压缩文件 bunzip2:解压用bzip2压缩的文件
gzip : 压缩文件 gunzip:解压用gzip压缩的文件
18.打包文件tar
tar 打包和解包归档文件
-c 创建归档
--v 包含详细信息
-f 从一个文件进行读写
Tips:
(1)使用tar创建归档文件,会增加额外的开销,因此常用bzip2,gzip压缩tar文件。
Tar+bzip : 后缀名tar.bz2或.tbz
Tar+gzip: 后缀名 .tz或.tar.gz
(2)解包tar和gzip压缩的文件分成两步
gunzip mak
tar –xvf mak
19.which和where
which:在设定的搜索路径下按序搜索目录,which只报告搜索到的第一个程序并且运行。
Whereis:在标准路径下搜索而与设定路径无关,显示所有搜索到得文件。
Tips:二者都不能搜索到shell内置命令,可以用type检测某命令是否是内置命令。
20.隐藏文件
以句点开始的文件名称为隐藏文件。每一个目录都存在两个不可见的特殊项。
. 工作目录 ..工作目录父目录
21.交换空间swap:
当系统要用完实际内存时,内核将内存页面从RAM写到磁盘上的交换空间上去。当正在运行的程序需要这些页面时,这些页面又被调回RAM.
22.cron和at
cron守护进程定期执行预定的命令。
cron进程从crontab文件读取它要执行的命令
at用来在将来某一个时间运行某一个作业,at只会将该作业运行一次。
23. vi
命令模式(输入冒号)某行模式
末行模式(输入回车)命令模式
命令模式(插入,追加)输入模式
输入模式(ESC)命令模式
(1) 命令模式下,h(向左),l(向右),j(向下),k(向上)。
(2) 命令模式下,:q(文件未作修改退出),:q!(强制退出,不保存),wq(保存修改退出),:w(保存),:w file(保存到file)
(3) 命令模式下(输入i转为输入模式,在光标之前插入)(输入a,在光标之后追加)(输入o,在新行上面一行插入)
(4) 命令模式下
x :删除光标所在处的字符
dw: 删除光标右侧的一个单词
db: 删除光标左侧的一个单词
dd: 删除光标所在行
p: 粘贴到光标后
P:粘贴到光标前
yy: 复制当前行
nyy: 复制n行
24.shell命令
$n 第n个参数
$# 命令行参数个数
$0 当前运行的脚本文件名
$? Shell运行的前一个命令返回码
$* 所有参数字符串 相连
$@ 所有参数字符串 分割
$! Shell运行前一个pid
Tips: {} 大括号中的命令在父shell中执行
()中命令在子shell中执行,命令执行完后返回父shell