磁盘设备
- hd: IDE硬盘
- sd: SCSI硬盘(U盘)
- hda: 第一块IDE硬盘
- hdb1: 第二块IDE硬盘第一分区
fdisk命令
查看本地硬盘
fdisk -l
虚拟文件系统
mount命令
将设备挂载到一个目录
mount [-t fastype] [-o options] [dev name] [mount point]
- [-t fastype]: 表示文件系统类型, 如果ext3、vfat、iso9660
- [-o options]: 表示挂载时的选项, 如ro、rw、auto、iocharset等
- [dev name]: 表示设备名, 如/dev/sda3、/test.iso等
- [mount point]: 表示挂载点, 即挂载的目录
挂载设备,文件名乱码 - 原因: 可能是U盘中含有中文的文件名或目录名
- 解决: mount -t vfat -o iocharset=cp936 /dev/sdb1 /mnt/usb
umount命令
卸载设备
umount 挂载点/设备名
mkfs命令(格式化硬盘操作)
mkfs用于创建文件系统的命令(硬盘通过fdisk命令分区后,还是不能使用硬盘,需要对分区创建文件系统,再把分区挂载到某挂载点上,才能使用)
mkfs [-V] [-t fstype] [fs -options] filesys [blocks]
- [-V]: mkfs命令版本
- [-t fastype]: 表示文件系统类型
- [fs -options]: 表示创建文件系统的选项
- filesys: 设备名
- [blocks]: 每个分区的大小
把设备/dev/sdb1格式化成ext3格式, 即在/dev/sdb1上创建ext3文件系统
mkfs -t ext3 /dev/sdb1
df命令
报告已安装文件系统的磁盘空间使用情况
df [选项]
- -a: 显示所有文件系统的磁盘使用情况
- -h: 以KB或MB为单位
- -k: 以1024字节为单位
- -i: 显示i节点信息, 而不是磁盘块
- -t type: 指定type类型的文件系统磁盘空间使用情况
- -x type: 指定不是type类型的文件系统磁盘空间使用情况
- -T: 显示文件系统类型
du命令
统计目录或文件所在磁盘空间的大小,du为disk usage的缩写
df [选项/参数] [目录名…]
- -a: 递归显示
- -b: 以字节为单位
- -k: 以1024字节为单位
- -h: 以KB或MB为单位
- -s: 每个目录参数之围出占用的数据块总数
4是4个字节的意思
用户类型
- 超级用户(root): 可以做任何操作
- 普通用户: 没有对系统完全的控制权,用户之间的私人资源可以相互隔离
- 特殊用户: 与linux的进程相关,使系统得以实现的运行
/etc/passwd文件
vincelin : x : 500 : 500 : vincelin : /home/vincelin : /bin/bash
- 用户名: 唯一,不超过8字节
- 密码: x表示一般加密,口令放在/etc/shadow中
- 用户ID
- 用户组ID
- 用户信息: 可以放姓名,电话,地址等
- 用户主目录
- 登陆的shell: 一般用/bin/bash。sbin/nologin表不是能登陆的用户
/etc/shadow文件(root可读)
shutdown : * : 15508 : 0 : 99999 : 7 : : :
- 用户名
- 加密口令
- 上次更新时间: 更新距1970年1月1日的天数
- 允许更新时间: 0,可以随意修改
- 要求更新时间: 99999,不强制
- 取消用户口令警告时间: 7,提前一周通知用户
- 取消和停用之间的时间
- 账户口令的天数: -1或空为不自动取消
- 账户终止时间: 距1970年1月1日的天数,-1或空白表不自动失效用户
- 特殊标志: 预留给将来,一般为空白
useradd命令(添加用户第一步)
添加用户
useradd [选项] [参数] <newusername>
- -d: 指定用户主目录
- -u: 指定用户id
- -g: 指定用户组
- -G: 指定用户组列表(多用户组)
- -mk: 复制其他用户主目录下的文件和配置信息来创建用户
passwd命令(添加用户第二步)
修改密码
passwd [选项] <username>
usermod命令
修改用户属性
usermod [选项] [参数] <username>
- -d: 修改用户主目录
- -e: 修改用户过期日期
- -g: 修改用户组名
- -G: 修改用户组列表
- -s: 修改用户登陆shell
- -u: 修改用户id
userdel命令
删除用户
userdel [选项] <username>
- -r: 删除用户并删除用户主目录
groupadd命令
添加用户组
groupadd [选项] <groupname>
- -g gid: 指定组id为gid
- -r: 添加系统工作组
- -f: 强制添加工作组
groupmod命令
修改工作组属性
groupmod [选项] <groupname>
- -g gid: 设定id为gid
- -o: 允许使用相同的gid
- -n: 修改工作组名称
/etc/group文件
存放用户组信息
root : x : 0 : root
- 组名
- 密码
- 组id
- 组中成员
who命令
显示系统哪些用户在使用
who [选项]
- -s: 简短格式
- -a: 所有用户
- -H: 加上头标志
- -u: 显示用户状态
w命令(who增强版)
显示系统中用户使用情况
w [选项] [user]
- -h: 不显示头标志
- -u: 列出当前进程和CPU忽略的用户名
- -s: 简短格式
- user: 只显示指定用户的情况
id命令
显示用户信息
id [选项]
- -g: 显示工作组信息
- -u: 显示用户信息
su命令
su [选项] [-] [username]
- -: 表示切换用户顺便切换环境变量
- -c <command>: 表示执行完命令command后切换用户
- -m: 切换用户后环境变量不变
- -l: 切换用户同时切换用户主目录
进程类型
- 交互进程: 由shell启动的进程
- 批处理进程: 和终端无关, 是一个进程序列
- 守护进程: 在后台持续运行的进程
进程属性
- PID: 进程ID
- PPID: 父进程ID
- UID: 启动进程的用户的ID
- GID: 启动进程的用户所属组的ID
- 进程状态: 不可中断D, 运行或就绪R, 休眠S, 僵尸Z, 停止或被追踪T, 死掉X, 进入内存交换W(内核2.6无效)
进程关系
父进程和子进程是管理与被管理关系,父进程被杀死,子进程也被杀死。反之不然。
进程的启动
1.手动启动
比如执行updatedb
updatedb : 前台启动,shell进入瘫痪状态,适用于用时短,急于得到结果,启动后shell会等待运行结果。Ctrl+C结束前台进程,返回shell。Ctrl+Z将前台进程搬到后台,返回shell。
updatedb & : 后台启动, shell不处于瘫痪状态,适用于耗时长的任务,启动后shell会提示该进程的pid。使用jobs查看后台进程。
2.调度启动
2.1 at命令(一次性)
在指定时间执行指定的命令序列
at [选项] TIME
- -q queue: 使用指定队列来存储,用户可以同时使用多个queue,编号从a,…,z以及A,…,Z共52个
- -m: 即使程序执行完成后没有输出结果,也要邮件告知使用者
- -f file: 把指令写入file里,执行则读file
- -l: 列出所有作业(可以用atq代替at -l)
- -d: 删除作业(可以用atrm代替at -d)
- -v: 列出所有完成但未删除的作业
3天后下午5点执行/bin/ls命令
at 5pm + 3 days /bin/ls
2个星期后下午5点执行/bin/ls
at 5pm + 2 weeks /bin/ls
明天17:20执行/bin/date
at 17:20 tomorrow /bin/date
2012最后一天最后一分钟打印 ending
at 23:59 12/31/2012 echo ending
2.2 crontab命令(周期性)
周期性调度进程
原理: linux守护进程crond每分钟检查一次用户计划任务表(crontab文件),如果没有用户设置crontab文件,则转入休眠,释放系统资源,命令执行结束,将结果放邮件给文件所有者(或是/etc/crontab文件中MAILTO环境变量中指定的用户)
crontab [-u user] filecrontab
crontab [-u user] { -l | -r | -e }
- -u user: 指定user的时程表,前期是当前用户(比如root)对user有权限,省略则是设置自己
- -l: 列出当前的时程表
- -r: 删除当前的时程表
- -e: 执行文字编辑器来设置时程表,内定的编辑器的vi
crontab文件格式
f1 f2 f3 f4 f5 program
- f1: 分,*表示每分钟,a-b表示a分钟到b分钟内要执行,*/n表示每n分钟执行一次
- f2: 时
- f3: 日
- f4: 月
- f5: 星期
ps命令
显示瞬间进程的动态
ps [选项]
- -e: 显示所有进程
- -f: 采用权格式显示
- -h: 不显示标题
- -l: 采用长格式
- -w: 宽模式
- -a: 显示终端上所有进程,包括其他用户的进程
- -r: 只显示正在运行的进程
- -x: 显示没有控制终端的进程
pstree命令
以树状结构显示系统中的所有进程
pstree [选项] [Pid | User]
- -a: 显示该进程的完整指令及参数
- -p: 显示PID
- Pid: 指定进程号为Pid的进程
- User: 指定某用户的进程
kill命令
结束进程
kill [-signal | -p] [-a] pid …
kill -l [signal]
- -signal: 指定要发出的signal信号。HUB(1)重跑, KILL(9)强制杀掉, TERM(15)结束
- -p: 只显示进程pid,不发出信号
- -l signal: 显示所有可用的信号
top命令
系统监视正在运行的进程以及内存和CPU使用情况,top命令相比ps多出来动态实时更新进程信息
top [选项]
- -d delay: 改变显示更新速度为delay
- -q: 没有延迟的显示速度,如是root,top以最高优先序执行
- -c: 切换显示模式, 一.执行档名称,二.完整路径+名称
- -S: 累计模式, 会将已完成或小时的子进程的CPU time累计起来
- -s: 安全模式
- -i: 不显示任何限制或无用的进程
- -n num: 更新的次数num, 完成后退出top
- -b: 批次档模式,搭配"n"参数,可以用来将top输出到文件
free命令
查看内存
free [选项]
- -b: 以字节为单位显示
- -k: 以KB为单位显示
- -m: 以MB为单位显示