文件系统目录
root 根用户目录
home 其他用户目录
bin 用户管理命令 用户层面 cat chmod chown date等常用的指令 可以被root和普通用户使用的
sbin 系统管理命令 系统层面 只有root用户才能使用的指令 其他用户只能读取 放在/sbin底下的开机过程所需要 的 包括开机 修复 还原系统 等 常见指令 包括 fdisk fsck ifconfig init mkfs等
mnt 默认光驱 u盘等外部设备挂载点
boot 引导系统相关文件 核心 开机菜单与开机配置文件 核心为vmlinuz 可能会有grub
etc 系统和软件配置文件目录 账号密码 各种服务的启动文件 普通用户可读 root用户修改
/etc/inittab /etc/init.d/ /etc/modprobe.conf /etc/X11/ /etc/fstab /etc/sysconfig等
/etc/init.d/ 所有服务的预设启动脚本
/etc/xinetd.d/ super daemon 管理的各项服务的配置文件目录
/etc/X11/ X Window 相关的配置 其中xorg.conf较重要
var 存放经常变化的文件 log等
proc 存放linux运行过程中的核心与程序执行的信息 主要显示内存中信息 虚拟文件系统 系统核心 进程 外设 网络状态等 比较重要的档案 /proc/cpuinfo /proc/dma /proc/interrupts /proc/ioports /proc/net/*等
sys 与前一个类似
tmp 临时文件 暂存盘 开机后建议清空
usr 安装软件默认的路径 类似于windows的program文件夹 存放用户的使用的系统命令和应用程序等的信息
/usr/ 发行版自动安装的软件目录
/usr/local/ 本地后期安装的软件目录
/usr/sbin/ 根文件系统不必要的管理命令
lost+found 当系统出现错误时 丢失的片段 通常位于文件系统最顶部
dev 接口设备文件目录 例如hda表示硬盘
lib 系统函数库 开机时会用到的函数库 其他的/bin /sbin下的lib是指令调用的函数库
lib/modules/ 该目录存放核心相关的额模块 例如驱动程序
opt 第三方软件安装的目录 以前通常安装到/usr/local目录下
srv 网络服务启动后取用的数据目录 例如www服务开启后 网页资料就可以放在/srv/www/下面
usr的意义与内容 类似与windows中的c:\windows 和c:\program files\
unix software resource 软件资源
/usr/====~
~/X11R6/ X Window System 重要数据存放
~/bin 存放绝大部分的用户指令 与/bin不同之处就是是否与开机过程有关
~/incluce/ c和c++头文件与include文件 当用tarball安装某些数据时 会用到许多包含的文件
~/lib 软件的函数库 目标文件 不被普通用户常用的执行文件和脚本 如果是64位的系统 可能会 有/usr/lib64/目录产生
~/local/ 管理员安装自己下载的软件 非系统自带 建议安装到此目录
~/sbin/ 非系统必须的指令
~/share/ 共享文件 不区分硬件架构均可读取的数据 均为文本文件 主要有 /man /doc /zoneinfo 等等
~/src/ 源代码放置位置
/var/ 意义和内容 系统云心过后逐渐占用硬盘空间 常态性变动的问及那 包括快取 登陆 以及某些软件运作所产生的 文件
~/cache 程序产生的临时文件
~/lib 程序运行过程汇总用到的数据文件存放的目录 各软件有相应的目录 例如mysql的数据存放 在/var/lib/mysql/中
~/lock 锁定正在运行的资源 同一时间点同一个资源只能有一个应用程序使用 所以需要上锁 例如刻录机
****~/log 日志文件 登陆文件放置的目录 /var/log/messages /var/log/wtmp 记录登入者的信息
~/mail 电子邮件目录 与/var/spool/mail/目录是链接的关系
~/run 进程id号存放的目录 正在运行的服务程序
~/spool 队列数据 使用之后会被删除 举例 邮件数据放~/spool/mail目录之下 如果未发出去就会存放在
~/var/spool/mqueue/中 任务数据 放在/var/spool/cron/目录中

挂载分区时注意 与/目录不能分开的涉及的开机的目录有 /etc /bin /dev /lib /sbin
建议不与根目录放在同一区的目录 有/home /usr /var /tmp
硬件装置在linux中的文件名
ide硬盘 /dev/hd[a-d] a-d为硬盘的序号
sata硬盘 /dev/sd[a-p]
打印机 /dev/lp[0-2]
u盘 /dev/sd[a-p]
软盘 /dev/fd[0-1]
鼠标 usb:/dev/usb/mouse[0-15] 和ps2:/dev/psaux
当前dvd /dev/cdrom
当前鼠标 /dev/mouse
纯文本模式 ctrl +alt+f1---f6 进入tty界面 f7为图形界面
run level3中没有图形界面 f1-f6
run level5中有图形界面 f1-f7 startx 启动图形界面的充分必要条件 tty7未用 已经安装了x window system
并且x-server能够启动 有窗口管理程序 gnome或kde 或 xfce或lxde等
x必须要的服务 例如x font server xfs等
/etc/inittab 中设定
root用户为# 普通用户为$ ~为用户的家目录
exit 注销 或者logout
帮助 文件存放位置 /usr/share/man 可以修改/etc/man.config 文件 改变位置
内部命令 help COMMAND
外部命令 COMMAND --help
常用 man COMMAND
更加详细 info COMMAND
man命令的章节分类
man 章节 命令 例如:man 1 ls 查看第一章节中的ls命令的内容
*1.用户命令 (/bin,/usr/bin,/usr/local/bin) 用户可以在shell环境中才做的指令或文件
2.系统调用 系统核心可以调用的函数和工具
3.库文件 大部分为c函数库
4.特殊文件(设备文件) /dev下的设备
5.文件格式(配置文件的语法)
6.游戏
7.杂项 惯例与协议等 文件系统 网络协议 ascII code等
*8.管理命令 (/sbin,/usr/sbin,/usr/local/sbin) 系统管理员可用的管理指令
9.kernel相关的文件
帮助命令中显示的各项的意义 语法
name 命令名称 及功能简要说明
synopsis 用法说明 语法 包括可用的选项
description 命令功能的详尽说明 包括每个选项的意义
options 说明每个选项的意义
files 次命令相关的配置文件
bugs 缺陷
examples 使用示例 **
see alse 另外参照
[=format] 指定按照某种格式来显示
< > 必须给出的参数
[ ] 可选的参数 可有可无
[ a | b | c ] a,b,c中互斥 如果有,只能有一个
... 前面的内容可以使用多次
{ } 分组 无特殊意义
翻屏:向后 space
向前 b
向前一行 k
向后一行 enter
pageup pagedown 翻页
home end
查找:不区分大小写
/KEYWORD 回车 向后搜索
?KEYWORD 回车 向前搜索
n 下一个
N 前一个
退出:q
格式:理解为变量
%D 显示日期 月 日 年
例子: date +%D
info COMMAND
描述的更加 详细 历史 此为man的补充
特定目录 /usr/share/doc/ 相应的目录中有文档
文件权限
-rwxrwxrwx 其中红色代表 文件所有者的权限 蓝色代表同文件所有者同组的成员的权限 黑色代表其他用户的权限
- 是文件的类型 分为 b 块文件 存储器;c字符文件 串行端口设备;d目录文件;-普通文件;l链接文件
-: 纯文本文档 ascII 文档 可以用cat vi more等读取的文件
二进制文件 binary 可执行文件 例如各种命令
数据格式文件 特殊格式的文件
目录文件
link文件
设备与装置文件 block和character文件
接口文件 sockets 主要用于网络的数据接口 属性为s 通常在/var/run中出现
数据传输文件 fifio 主要用于多个程序同时存取一个文件的冲突问题 第一个属性为p
sockets和fifo文件与进程有关
扩展名:
.sh 脚本或者批处理文件 由shell写成
.Z .tar .tar.gz .zip .tgz 压缩打包的文件 对应软件分别为gunzip tar等
.html .php
安装软件目录 通常遵循FHS 标准 不断变化

可分享和不可分享主要对应于网络上的其他主机 能否挂载
/etc/inittab 文件
init 运行级别
0 关机
1 单用户
2 多用户状态没有网络服务
3 多用户状态有网络服务
4 系统未使用保留给用户
5 图形界面
6 系统重启
修改错误配置的方法
grub引导时 按e键 两次 进入修改界面 最后输入1 代表1号运行级别 因为单用户级别不看inittab文件 并且可以修改 密码。b 进入系统
密码存放文件 /etc/shadow
基础命令
运行程序
设备管理
软件管理
进程管理
网络管理
linux
shutdown -h now 关机
shutdown -r now 重启
reboot 重启
logout 注销
init 0 关机
useradd 用户名 添加用户 useradd -g 组名 用户名 -m 直接设置权限
passwd 用户名 修改密码
userdel 删除用户
userdel -r 删除用户及其主目录
chown 修改文件的所有者 -R 递归
chgrp 修改文件所在的组 -R 递归
usermod -g 组名 用户名
usermod -d 目录名 用户名 改变用户登陆的初始目录
groupadd 添加组
chmod 改变权限 -R 递归 包括目录下的文件
所有者u=rwx 组g=rwx 其他o=rwx 或者u-x g+w 或者chmod 777
umask 目前用户建立文件或目录时的权限默认值 -S 直观显示 symbolic 设定文件为/etc/bashrc
chattr 配置文件的隐藏属性 仅仅支持ext2/3的文件系统 i 和a比较重要
lsattr 显示文件的隐藏属性
目录管理
ls -l 等价于ll a显示隐藏 -ahl 查看文件所在组
a 全部文件 包括隐藏文件 ; A 全部文件 不包括.和.. 的目录;d仅列出目录 ;f不排序 默认是排序;
F列出文件的数据结构 *可执行 /目录 =socket文件 |fifo文件
i inode号 n uid和gid的名称 r排序结果反向输出 -S以文件大小排序 t依据时间 --color=always 显示 颜色 --color=auto系统自行依据设定来判断是否给予颜色
--full-time 显示完整的修改时间
dir 于ls类似
cd 改变目录
pwd 显示当前目录 -P 显示出真实的路径 而非 链接路径 print working directory
mkdir 建立目录 -p递归建立目录 -m配置文件的权限,不使用默认预设
rmdir 删除空目录 -r 递归包括文件 -p 连同上层的空目录一同删除
文件管理
touch 建立空文件 原作用时用来修改文件的时间戳
mtime modification time 内容数据变更时
ctime status time 状态改变时 例如像权限与属性被改变时会更新
atime access time 内容被读取时 例如用cat读取文件时会更新
t 欲修改的时间
m 仅修改mtime
a 修改atime
d 欲修改的日期
c 修改文件的时间 如果文件不存在 则不建立
cp 复制 -r递归 a --archive 类似于-dR --preserve=all 保留文件所有的属性归档复制 主要用于备份
i interactive若目标文件存在 会询问是否覆盖
p连属性一同复制 保留属主 属组 以及时间戳
u如果destination比source旧才会复制 如果参数有多个 则最后一个才是目的文件 其他的都是源文件
d --no-dereference --preserve=link 保持链接文件原样 refer 指向链接文件 no+de等于肯定
cp命令默认是带-L 即dereference 如果选择的是符号链接文件 复制到目的文件夹中的是链接指向的原始文件
-P 选择符号链接复制 则复制过来的是符号链接 而不是原始文件
mv 移动或改名 f强制 i询问 u目标已存在 且source更新 才会执行 t 先写目标 后写源
rm 删除文件 -rf 递归和强制 包括目录和目录中的文件 i为询问是否覆盖
basename 取得文件名
dirname 取得目录名
ln 符号链接 快捷方式
-s 源 目标
文本处理
vi
插入 i
esc 命令模式
保存w
退出q
强制!
cat 查看文件 只读 n 显示行号 E 显示结尾符号 linux中$符号是结尾的符号 windows中$+回车符为结尾符
b列出行号 空白行不标 n打印行号 空白行也有行号 E显示结尾的断行字符$ A列出空白位置的特殊字符
grep 文本中查询
| 管道命令
find 查找文件 需要先制定一个目录 例子:find /root/ -name ***
> 重定向 覆盖写入一个文件
>> 重定向 追加 写入一个文件
tac 从最后一行开始显示
nl 显示时输出行号
-ba 列出行号 空行一样 -bt 空行不列行号
-n ln行号在屏幕的左侧显示 ; -n rn行号在右 不加0 ; -n rz 同上加0
more 按页显示文件
space 向下翻页 enter向下一行 /字符串 向下搜索字符串 :f显示文件名以及目前显示的行数
q离开 b或者ctrl-b 回翻
less 与more类似 可以向前翻页
space向下翻页 pagedown向下翻一页 /字符串 向下搜索 ?向上搜索 n重复前一个搜索
N反向的重复一个搜索 q离开
head 看头几行
n 后面接数字 数字如果是负数 则表示 不显示后面的数字行数
tail 看尾巴几行
n 数字 f 代表follow 持续侦测后面所接的文件
od 以二进制的方式读取文件
t后面使用不同的类型输出包括下面 :a 默认的字符 c ascII字符输出
file 查看文件类型
sort 排序
比较第一个字符的asc码 排序
n 按照数值排序
u 相同行只显示一次
r 降序
t 字符分隔符
f 排序忽略字符大小写
uniq 报告sort中重复的行 注意如果完全一样的行不相邻 则认为是不重复的 否则才认为是重复的行 可以与sort结合使用
d 只显示重复的行
D 显示所有重复的行
c 将所有行都显示出来 并且列出重复次数
wc 统计 默认显示文件的行 单词数 字节数
l 只显示行数
w 只显示单词数
m 只显示字节数 或字符数
L 最长的一行包含的字符数
nano 简单的文本编辑
cut 不会改变原文件的内容
d指定字段分隔符 默认为空格;
f指定要显示的字段 -f 1代表显示的第一个字段 -f 1,3 代表显示1和3的字段 -f 1-3 显示从1到3的这个范围的字段
join
sed
awk
字符处理
tr 转换或删除字符
d 删除
who 查看在线用户
netstat -a 查看网络连接状态
ps -aux 后台程序列表
sync 缓存写入硬盘
LANG 修改语言环境 对应的文件/etc/sysconfig/i18n
uname -r 查看系统核心版本
lsb-release -a 系统的详细信息包括硬件
$PATH 环境变量设置 每个命令会去对应的PATH中的设定的目录去搜索该命令的执行文件
echo $PATH 结果会显示当前用户的PATH设定的目录
例如 用普通用户身份执行 ifconfig eth0
会提示 -bash:ifconfig:command not found 命令未发现的额字样 原因是ifconfig命令会放在/sbin下面 但是 普通用户的PATH变量设置中没有/sbin目录 所以无法执行命令 但是可以通过指出绝对路径的方式执行
/sbin/ifconfig eth0 来执行
install 复制文件并且设置属性 类似于copy用法 注意只能复制文件 不能复制目录 d 创建目录
不带参数复制之后的文件具有可执行的权限导致不安全 所以需要指定权限 m 指定权限
t 先写目标 后写源
which 寻找文件 a 将所有PATH目录中可以找到的指令均列出
type
whereis 寻找特定文件 b二进制 m在manual路径下的文件 s找source来源文件 u找不在之前三个项目中的其 他特殊文件
搜索系统中的文件数据库 而不是直接搜索硬盘 这样比find更快 数据库更新 根据发行版本不同 默认可能一周一次
所以新建的文件在数据库中找不到
locate 定位文件位置 与whereis相同 都是查找系统文件数据库
i忽略大小写 r正则表达式 数据库文件 /var/lib/mlocate 手动更新数据库命令updatedb 根据文件/etc/upd atedb.conf 再搜索硬盘文件名
特殊权限 除了r w x外还有其他的特殊权限 x执行权限 也是目录的打开权限
SUID set uid出现在owner的x位置上
suid权限仅适用于二进制程序 不适用于shell script 当前用户对于该程序有可执行的权限 本权限仅在执行程 序的过程中有效 执行者将具有该程序拥有者的权限 例如/etc/shadow文件
SGID 当s出现在群组中的属性x位置时 同时可以针对文件和目录
针对文件:二进制程序 执行者对于该程序来说需要x的权限 在执行过程中将获得该程序群组的支持
针对目录:用户具有r与x的权限 能够进入此目录 此目录下的有效群组会变成该目录的群组
如果用户在此目录下具有w的权限 则使用者所建立的新文件 该文件群组与此目录的群组相同 适用于项目开发
SBIT sticky bit 只针对目录
当用户对于此目录具有w x权限 就是具有写入的权限时
当用户在该目录下建立文件或目录时 仅有自己与root才有权利删除该文件
配置方式
SUID:4 SGID:2 SBIT:1
在原来的rwx的权限基础上再加上上面的对应数字
例如原来的文件权限为755 想要在此基础上加上suid 的权限 则可以设置为:chmod 4755 filename
*****权限与指令之间的关系
两者的结合 很重要
一、让用户能够进入某目录成为可工作目录的基本权限
可使用的命令:cd等变换工作目录的指令
目录所需权限:用户对这个目录至少有x的可执行的权限 即可以打开进入此目录的权限
额外:如果想利用ls查阅文件名 则用户对此目录还要有r的权限
二、用户在某个目录内读取文件的基本权限
指令:cat more less等
权限:目录有x权限
文件所需权限:使用者有r权限
三、使用者可以修改一个文件
指令:nano 或vi
权限:目录有x权限
文件所需权限:使用者有该文件的w和r的权限
四、使用者建立一个文件的基本权限
指令:用户在该目录要具有w和x的权限 重点在w
五、让用户进入某目录并执行该目录下的某个指令基本权限
目录权限:用户具有该目录的x权限
文件权限:文件至少有x权限
umask默认文件权限为666 目录权限为777
BASH组成和特性
shell分为两类 用户使用计算机时 使用的程序 广义可以分为以下两类
GUI:GNOME KDE XFCE
CLI: sh csh ksh bash tcsh zsh
1命令历史
2管道重定向
3命令别名
4命令行编辑
5命令行展开
6文件名通配
7变量
8编程
命令行编辑:
光标跳转:
ctrl+a 跳到命令行首
ctrl+e 跳到命令行尾
ctrl+u 删除光标至命令行首的内容
ctrl+k 删除光标至命令行尾的内容
ctrl+l 清屏
命令历史:
上下箭头
!n 执行命令历史中的第n条命令
!-n 执行命令历史中的倒数第n条命令
!!n 执行上一条命令
!string 执行命令历史中最近的以string开头的命令
!$ 引用前一个命令的最后一个参数
esc松手 再按. 引用前一个命令的最后一个参数
alt+. 引用前一个命令的最后一个参数
tab 命令补全 一次tab和两次tab的区别
目录补全
history 查看命令历史
-c 清空历史命令 内存中
-d 删除指定位置的命令 加offset参数
-w 保存命令历史至历史文件中
保存命令文件的位置 家目录 .bash_history 追加的方式
环境变量:
PATH:命令搜索路径
HISTSIZE:命令历史大小 条目数
命令别名:只在当前shell生命周期有效 所以当前shell进程关闭后 即失效 想让别名永久有效 需要配置sh文件
alias CMDALIAS='command [options][arguments]'
unalias CMDALIAS 撤销别名
命令替换:***常用的重要
把命令中某个子命令替换为其执行结果的过程
例子 1 #echo $(pwd)
会先运行$(pwd) 将pwd的结果打印到标准输出上 此种方式即为命令替换
例子2 按照时间格式作为文件名创建文件
file-2013-02-28-14-53-31.txt 蓝色部分为当前的时间
#touch ./file-$
文件名通配符
* 任意长度字符
? 任意单个字符
[ ] 匹配指定范围内的任意单个字符
[a-z] [A-Z] [0-9] [a-zA-Z][0-9A-Za-z]
[:space:] 空白字符
[:punct:] 标点符号
[:lower:] 小写字母
[:upper:] 大写字母
[:alpha:] 大小写字母
[:digit:] 数字
[:alnum:] 数字和大小写字母
man 7 glob 此命令可以查看以上所有
举例:[[:alpha:]]*[[:space:]]*[[:alpha:]] 代表字母开头 字母结尾 中间有空白字符的字符串
[^ ] 匹配指定范围之外的任意单个字符