bin
binary缩写,类unix系统的标准子目录,包含可执行程序。cat/mv/cp。
boot
存放启动linux时使用的一些核心文件
主流程:通电》BIOS》主引导记录》操作系统
第一步:加载内核(读/boot下的内核文件)
第二步:/boot》init进程 运行/sbin/init pid=1
第三步:确定运行级别(0-6) 0关机 1单用户模式(维护模式)
6重启 2-5
init进程读取/etc/inittab
/etc/rc(0-6).d
rc.d含义run command 目录 directory
第四步:加载开机启动程序
/etc/init.d下源文件
存放rc.d目录下的文件的 链接 ln -s
第五步:登录用户
dev
device设备 是linux内核的设备管理器
存放都是设备文件
etc
用来存放系统管理所需要的配置文件
home
root
lib
存放内核模块和系统最基本的动态链接库
windows .dll
lost+found 用作损坏文件恢复的目录
fsck命令恢复文件
media 音频和视频
mnt
/mnt/cdrom
proc 一个虚拟目录,是系统内存的映射
可以通过直接访问该目录 来获取系统信息
每个运行的进程目录都在这个下面
sbin
存放管理员的管理程序
var 类unix系统的标准子目录 包含系统在运行过程中的数据文件
文件管理
**查看文件目录
pwd
**
显示当前工作路径
cd
进入到指定工作目录
cd+dirname
cd 不输入 (默认进入用户主目录,即当前登录用户的目录)
cd ~username 进入指定用户的主目录
cd ..进入当前目录的上级目录
ls
查看当前目录的文件和子目录
ls -a 列出所有目录、子目录、文件和隐藏文件
ls -R 列出从当前目录开始的所有的子目录、文件并i企鹅一层层往下显示
ls -F 列出文件、目录名并显示出文件类型
ls -t 以修改时间为时间倒序来列出文件、子目录
ls -l 以长列表格式显示文件、目录的详细信息 和 ll 指令的效果相同
file
显示文件类型
file + filename
回显结果包含: shell脚本 ascii 文本 可执行文件 连接文件 目录等等
删除和创建文件目录
touch filename
创建文件
filename 不存在则创建一个新的空白文件
filename 存在则更新该文件的修改时间
创建目录
mkdir [-p] directory_name
-p 路径目录不存在时可以一同建立目录
删除文件
rm [-i/f] filename(s)
-i 询问是否删除 (反馈键入y选择是否删除为是)
-f 强制删除
删除目录
rmdir directory_name 删除空目录
rm -r[i/f] directory_name 询问或强制删除该目录与目录下所有文件
链接文件
1.Linux文件管理特性
文件都有文件名与数据,在Linux上被分成两个部分:
用户数据 (user data) 与元数据 (metadata)。
用户数据,即文件数据块 (data block),数据块是记录文件真实内容的地方,
元数据则是文件的附加属性,如文件大小、创建时间、所有者等信息。
在Linux中元数据中的inode 号(inode 是文件元数据一部分但其并不包含文件名,inode 号即索引节点号)才是文件的唯一标识而非文件名。文件名仅是为了方便人的记忆和使用,系统或程序通过 inode 号找 正确文件数据块。
2、 为什么会有链接文件
为解决文件的共享使用,Linux 系统引入了链接,链接为Linux 系统解决了文件的共享使用,还带来了隐藏文件路径、增加权限安全及节省存储等好处。创建链接文件可以给文件和目录创建替代名或别名。
分类:
硬链接 (hard link)
软链接(又称符号链接,即 soft link 或 symbolic link)
ln source_file target_file
建立硬链接
ln -s 建立软连接
ln -P 建立硬链接
硬链接和软连接的区别
1.硬链接
若一个 inode 号对应多个文件名,则称这些文件为硬链接。换言之 ,硬链接就是同一个文件使用了多个别名。只能在同一个文件系统来链接文件,源文件和目标文件同一个文件,当有多个硬链接文件时,删除其中一个则是删除了一个文件名而已,硬链接数少1个。
由于硬链接是有着相同 inode 号仅文件名不同的文件,因此硬链接存在以下几点特性:
1)文件有相同的 inode 及 data block;
2)只能对已存在的文件进行创建;
3)不能交叉文件系统进行硬链接的创建;
4)不能对目录进行创建,只可对文件创建;
5)删除一个硬链接文件并不影响其他有相同 inode 号的文件。
2.软链接
若文件用户数据块中存放的内容是另一文件的路径名的指向,则该文件就是软连接。软链接就是一个普通文件,只是数据块内容有点特殊。软链接有着自己的 inode 号以及用户数据块。
可在不同的文件系统来链接文件,源文件和目标文件是不同文件,有不同的大小,是2个文件, 目标文件的内容是源文件的inode号指向源文件,像windows中的快捷方式一样。
建立了软连接后,软连接文件的大小是指向的目标文件的文件名的大小;
1)软链接与硬链接不同,软链接创建与使用没有类似硬链接的诸限制 ;
2)软链接有自己的文件属性及权限等;
3)可对不存在的文件或目录创建软链接;
4)软链接可交叉文件系统;
5)软链接可对文件或目录创建;
6)创建软链接时,链接计数 i_nlink 不会增加;
7)删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接被称为死链接(即 dangling link,若被 指向路径文件被重新创建,死链接可恢复为正常的软链接)。
显示文件内容
1.cat
不分屏显示文本内容;
把小文件连接成大文件;
cat filename(s);
2.more
more filename(s)
spacbebar 向下显示一屏
Enter 向下显示一行
b 向上一屏
f 向下一屏
h 显示帮助菜单
q 退出
/string 查找字符串string
n 查找下一个string
3.head
查找文件的前多少行
head [-n] filename(s)
如: head -5 /etc/passwd
4.tail
查找文件的末尾多少行
tail [-n] filename(s)
如: tail -10 /etc/passwd
拷贝移动文件
cp
拷贝文件
cp [-i] source_file destination_file
cp [-i] source_file(s) destination_directory
-i选项作用:当目标文件存在,会询问是否覆盖,没有-i选项则**查看文件目录
pwd
**
显示当前工作路径
cd
进入到指定工作目录
cd+dirname
cd 不输入 (默认进入用户主目录,即当前登录用户的目录)
cd ~username 进入指定用户的主目录
cd ..进入当前目录的上级目录
ls
查看当前目录的文件和子目录
ls -a 列出所有目录、子目录、文件和隐藏文件
ls -R 列出从当前目录开始的所有的子目录、文件并i企鹅一层层往下显示
ls -F 列出文件、目录名并显示出文件类型
ls -t 以修改时间为时间倒序来列出文件、子目录
ls -l 以长列表格式显示文件、目录的详细信息 和 ll 指令的效果相同
file
显示文件类型
file + filename
回显结果包含: shell脚本 ascii 文本 可执行文件 连接文件 目录等等
删除和创建文件目录
touch filename
创建文件
filename 不存在则创建一个新的空白文件
filename 存在则更新该文件的修改时间
创建目录
mkdir [-p] directory_name
-p 路径目录不存在时可以一同建立目录
删除文件
rm [-i/f] filename(s)
-i 询问是否删除 (反馈键入y选择是否删除为是)
-f 强制删除
删除目录
rmdir directory_name 删除空目录
rm -r[i/f] directory_name 询问或强制删除该目录与目录下所有文件
链接文件
1.Linux文件管理特性
文件都有文件名与数据,在Linux上被分成两个部分:
用户数据 (user data) 与元数据 (metadata)。
用户数据,即文件数据块 (data block),数据块是记录文件真实内容的地方,
元数据则是文件的附加属性,如文件大小、创建时间、所有者等信息。
在Linux中元数据中的inode 号(inode 是文件元数据一部分但其并不包含文件名,inode 号即索引节点号)才是文件的唯一标识而非文件名。文件名仅是为了方便人的记忆和使用,系统或程序通过 inode 号找 正确文件数据块。
2、 为什么会有链接文件
为解决文件的共享使用,Linux 系统引入了链接,链接为Linux 系统解决了文件的共享使用,还带来了隐藏文件路径、增加权限安全及节省存储等好处。创建链接文件可以给文件和目录创建替代名或别名。
分类:
硬链接 (hard link)
软链接(又称符号链接,即 soft link 或 symbolic link)
ln source_file target_file
建立硬链接
ln -s 建立软连接
ln -P 建立硬链接
硬链接和软连接的区别
1.硬链接
若一个 inode 号对应多个文件名,则称这些文件为硬链接。换言之 ,硬链接就是同一个文件使用了多个别名。只能在同一个文件系统来链接文件,源文件和目标文件同一个文件,当有多个硬链接文件时,删除其中一个则是删除了一个文件名而已,硬链接数少1个。
由于硬链接是有着相同 inode 号仅文件名不同的文件,因此硬链接存在以下几点特性:
1)文件有相同的 inode 及 data block;
2)只能对已存在的文件进行创建;
3)不能交叉文件系统进行硬链接的创建;
4)不能对目录进行创建,只可对文件创建;
5)删除一个硬链接文件并不影响其他有相同 inode 号的文件。
2.软链接
若文件用户数据块中存放的内容是另一文件的路径名的指向,则该文件就是软连接。软链接就是一个普通文件,只是数据块内容有点特殊。软链接有着自己的 inode 号以及用户数据块。
可在不同的文件系统来链接文件,源文件和目标文件是不同文件,有不同的大小,是2个文件, 目标文件的内容是源文件的inode号指向源文件,像windows中的快捷方式一样。
建立了软连接后,软连接文件的大小是指向的目标文件的文件名的大小;
1)软链接与硬链接不同,软链接创建与使用没有类似硬链接的诸限制 ;
2)软链接有自己的文件属性及权限等;
3)可对不存在的文件或目录创建软链接;
4)软链接可交叉文件系统;
5)软链接可对文件或目录创建;
6)创建软链接时,链接计数 i_nlink 不会增加;
7)删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接被称为死链接(即 dangling link,若被 指向路径文件被重新创建,死链接可恢复为正常的软链接)。
显示文件内容
1.cat
不分屏显示文本内容;
把小文件连接成大文件;
cat filename(s);
2.more
more filename(s)
spacbebar 向下显示一屏
Enter 向下显示一行
b 向上一屏
f 向下一屏不询问直接覆盖
cp wj.txt wj1.txt : 拷贝wj到wj1
拷贝目录
cp -r source_directory(s) destination_directory(s)
cp -r dir1 dir2 :dir1拷贝到dir2目录下
cp -r dir3 dir4 dir5 :dir3,dir4拷贝到dir5目录下
mv
移动文件目录或重命名文件目录
mv [-i] source_file target_file 重命名源文件为目标文件
mv [-i] source_file target_directory 移动文件到目标目录
mv wj.txt wj1.txt :在本目录下将wj重命名为wj1
mv wj1.txt dir1:将本目录下的wj1移动到dir1目录下(若dir1不存在,则是对源文件进行改名:如 mv userinfo dir6)
文件目录权限
Linux系统中的每个文件和目录都有访问许可权限,用他来确定谁能通过何种方式对文件和目录进行访问和操作。
权限的分类:
r 读权限:可以打开文件、目录读取查看;
w 写权限:对文件、目录可以编写更改;
x 执行权限:对文件可执行(可执行文件)、对目录可查找该目录下的内容;
• 没有权限如 ls -l
• -rwxr-xr-x
权限所属对象:
1.拥有者
生成文件或目录时登陆的当前人,权限最高,用u表示。
2.同组人
系统管理员分配的同组的一个或几个人,用g表示。
3.其他人
除拥有着,同组人以外的人,用o表示。
4.所有人
包括拥有着、同组人及其他人,用a表示。
修改文件目录文件
chmod
修改文件目录的访问权限,修改权限的前提条件是在修改权限时,要注意自己是文件。
1.使用字母表示权限
chmod u=r,g+w,o-x wj.txt :可一次设多种权限
2.使用数字表示权限
使用八进制数字来表示权限
r w x
0 0 0 无权限
1 1 1 有权限
r=4
w=2
x=1
chown
更改某个文件或目录的属主和属组,可用于授权;
例如root用户把自己的一个文件拷贝给用户xu,为了让用户xu能够存取这个文件,root用户应该把这个文件的属主设为xu,否则,用户xu无法存取这个文件。
chown [选项] 用户或组 文件
sudo useradd wj1 :添加用户wj1
sudo passwd wj1 :给wj1用户设置密码
sudo chown wj1 wj.txt :更改wj文件的属主
(sudo命令以系统管理者的身份执行指令)• 1
• 2
• 3
• 4
• 5
chown将指定文件的拥有者改为指定的用户或组。用户能是用户名或用户ID。组能是组名或组ID。
文件是以空格分开的要改动权限的文件列表,支持通配符。
-R 递归式地改动指定目录及其下的所有子目录和文件的拥有者。
-v 显示chown命令所做的工作。
chownwangshiyan.cchownwangshiyan.c chown -R wang users /his
chgrp
改动文件或目录所属的组。
chgrp [选项] group filename
sudo groupadd wj1 :添加组
sudo chgrp wj1 wj.txt :指定文件所属的用户组• 1
• 2
• 3
该命令改动指定指定文件所属的用户组。其中group能是用户组ID,也能是/etc/group文件中用户组的组名。文件名是以空格分开的要改动属组的文件列表,支持通配符。如果用户不是该文件的属主或终极用户,则不能改动该文件的组。
- R 递归式地改动指定目录及其下的所有子目录和文件的属组。
$ chgrp –R book /opt/local /book。
改动/opt/local /book/及其子目录下的所有文件的属组为book。
查找文件
find
file path expression [action] 查找文件和目录
前提条件:要对被查找的目录及其所有子目录有读权限才能查找。
查找选项:通过文件属性来查找
-name 按文件名
-user 按用户(文件属主)
-size 按大小
-mtime 按最后一次修改时间
-atime 按最后一次访问时间
-type 按文件类型 f:file d:directory
-perm 按权限
find / -name b
//找根目录下面名字以b开头的所有文件
find . -mtime 10 -print
//查找当前目录下最后一次修改时间距离今天之前10天的那一天修改的文件和目录,并显示出来
find /etc -user 0 -size +400 -print
//查找根目录下的/etc下的子目录中由用户id=0,创建的文件大小要大于200k的,并把它显出来
find ~ -perm 777 > ~/holes
//在用户住目录下查找权限为777的,即拥有者,同组的,和其他人的的权限都具有读写权限的文件和子目录,并且将查找结果都放在用户主目录下的/holes文件中
find /export/home -type f -atime +365 -exec rm {}\;
//查找/export/home下的文件,最后一次访问时间是距离今天是大于365天的文件,再将找到的文件执行一个进程,并删除这些文件。\;代表转义,即就代表分号本身。
Locate
速度比find快
locate [-d <数据库文件>][–help][–version][keywords]
locate指令用于查找符合条件的文件,它会去保存文件与目录名称的数据库内查找合乎范本样式条件的文件或目录。
-d<数据库文件>或–database=<数据库文件> :设置locate指令使用的数据库。
locate指令预设的数据库位于/var/lib/slocate目录里,文件slocate.db,您可使用这个参数另行指定。
–help 在线帮助。
–version 显示版本信息。
速度快很多,它是通过inode,文件索引来找,它会把文件索引维护在一个数据库里面,它在数据库去找;比较麻烦的是需要更新数据updatedb。
locate -c b :查看当前以bj开头的文件个数
locate —help:查看帮助文档
locate -V:查看版本
过滤与统计
grep
查出包含某些字符串的结果,对文件或输出结果进行过滤,大小写敏感。
grep [option(s)] string filename
-i 忽略大小写
-v 反向匹配(查出不包含字符串的结果)
grep wj /etc/passwd 查看wj下的有关信息• 1
ls -la | grep -i ‘Sep 18’
将结果过滤,查看当前目录下的最后修改时间
为9月18的文件和目录,忽略大小写• 1
• 2
• 3
ls wj*.txt | xargs grep hello
在前面的命令结果中,将wj开头的和.txt结尾的文件
逐一交给grep过滤出包含hello内容的• 1
• 2
• 3
wc
统计文件或输出结果
wc [option(s)] filename(s)
-l 统计多少行
-w 统计多少个单词
-c 统计多少个字符
who | grep wj | wc -l
统计当前linux系统中以wj登录的用户个数。
who是当前系统中的用户。
grep li /etc/passwd | wc -l
统计用户名里面有li的
wc -w wj.txt :统计文件里的单词个数
wc -c wj.txt :统计文件里的字符数
cal > wj1.txt :将日历输出到wj1
wc -c wj.txt:统计文件里的字符数
yum —— 是红帽自动安装软件的工具,默认是交互式的
功能:能够自动帮助我们解决软件安装过程中的依赖关系,无需我们操心
[root@localhost Packages]# rpm -qa |grep yum
PackageKit-yum-0.5.8-21.el6.x86_64
yum-metadata-parser-1.1.2-16.el6.x86_64
yum-plugin-security-1.1.30-14.el6.noarch
yum-utils-1.1.30-14.el6.noarch
yum-rhn-plugin-0.9.1-48.el6.noarch
yum-3.2.29-40.el6.noarch
PackageKit-yum-plugin-0.5.8-21.el6.x86_64
查看本机安装的与yum相关的软件包
一 yum配置
1、 挂载正确的光盘
mount —— 挂载
umount —— 卸载
临时挂载
永久挂载:
/etc/fstab vim进去
/dev/sr0 /test1 iso9660 defaults,ro 0 0
/etc/rc.local 系统启动最后一步执行脚本
它与fatab的区别在于 谁先加载谁后加载
写在fstab下的挂载,先加载的
--如果光盘中,不是我们想要的内容,先卸载光盘,选择正确的光盘之后,再重新挂载<br /> --如果虚拟机右下角光盘形状的图标是灰色的,说明虚拟机的光驱没接电源,右键——>connect
2、yum客户端配置文件
[root@localhost Packages]# vim /etc/yum.repos.d/yum.repo
[Server] —容器的名字,中括号是必须的,不能存在两个相同的容器名
name=server —说明,留给自己看的,最好有意义
baseurl=file:///mnt/iso/Server —yum服务器提供安装包的位置 本地路径。也可以使用网络中http、ftp、nfs的共享资源
enabled=1 —表示该段配置是否可用,0代表不可用;1代表可用;没有该行,代表可用。
gpgcheck=0 —是否对软件进行数字签名验证,0表示不验证
验证配置:
#yum list 用于列出可用包的各种信息。
#yum repolist 生成配置库的列表,默认是列出所有启用的库。
#yum grouplist 查看配置的yum包含的组。
二、yum的使用
—清空yum的所有缓存
[root@localhost iso]# yum clean all
Loaded plugins: product-id, refresh-packagekit, security, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Cleaning repos: InstallMedia HighAvailability LoadBalancer ResilientStorage
: ScalableFileSystem Server
Cleaning up Everything
--每个容器有一个缓存目录<br />[root@localhost iso]# cd /var/cache/yum/x86_64/6Server/<br />[root@localhost 6Server]# ls<br />HighAvailability LoadBalancer ScalableFileSystem<br />InstallMedia ResilientStorage Server
--列出所有的安装文件<br /> [root@localhost 桌面]# yum list
--搜索软件包 只知道包的一部分名字<br /> [root@localhost 桌面]# yum search gcc
--查看软件包信息<br /> [root@localhost 桌面]# yum info gcc
--安装软件包 (可以同时安装多个)<br /> [root@localhost 桌面]# yum install gpm lftp tree -y
--卸载软件包 一般不卸载软件包 remove或者erase<br /> [root@localhost 桌面]# yum erase zsh //会提示
--查看软件包组的列表<br /> [root@localhost 桌面]# yum grouplist<br /> Installed Groups: //已经安装的包组<br /> Installed Language Groups: //已经安装的语言组<br /> Available Groups: //未安装的可用的包组<br /> Available Language Groups: //可用的语言组
—安装软件包组
安装中文支持
[root@localhost 桌面]# yum groupinstall “Chinese Support” -y
—卸载软件包组
[root@localhost 桌面]# yum groupremove “Chinese Support” -y
—查看某个文件或者命令的安装包是哪个
[root@localhost 桌面]# showmount
bash: showmount: command not found
[root@localhost 桌面]# yum provides */showmount
[root@localhost 桌面]# yum install nfs-utils -y
练习:查找wireshark命令是由哪个包安装的 <br /> [root@localhost 桌面]# wireshark <br /> bash: wireshark: command not found<br /> [root@localhost 桌面]# yum provides */wireshark<br /> [root@localhost 桌面]# yum install wireshark* -y//yum install wireshark-gnome<br /> [root@localhost 桌面]# wireshark //命令可以使用了
--当包中丢失某些文件时候,直接重装软件包就行<br /> [root@localhost 桌面]# which wireshark<br /> /usr/sbin/wireshark<br /> [root@localhost 桌面]# mv /usr/sbin/wireshark /tmp/<br /> [root@localhost 桌面]# yum reinstall wireshark-gnome<br /> [root@localhost 桌面]# ls /usr/sbin/wireshark <br /> /usr/bin/wireshark
源码安装:也叫定制安装,也叫自定义安装,需要自己编译源代码的安装方式
步骤:
1、解压源代码包 .tar.gz
2、配置 configure 指定安装路径,做一些其他配置
3、编译 make
4、安装 make install
注意:编辑安装必须要先安装好gcc等其他必须的编译器,否则导致编译安装过程中报错,导致软件不能正常使用
以安装mplayer播放器为例
下载MPlayer-1.1.tar.gz包,放到linux机器里
1、解压软件包
[root@localhost 桌面]# tar zxvf MPlayer-1.1.tar.gz -C /usr/local/src/
2、配置
[root@localhost 桌面]# cd /usr/local/src/MPlayer-1.1/
[root@localhost MPlayer-1.1]# ./configure —prefix=/usr/local/mplayer —yasm=’’
————————————————————————————————————-
错误一:
[root@localhost MPlayer-1.1]# ./configure —prefix=/usr/local/mplayer
Checking for working compiler …
Error: Compiler is not functioning correctly. Check your installation and custom CFLAGS .
Check "config.log" if you do not understand why it failed.<br /> 该错误说明没有安装C语言的编译器<br /> 解决办法:<br /> # yum install gcc* -y<br /> 错误二:<br /> Error: yasm not found, use --yasm='' if you really want to compile without
Check “config.log” if you do not understand why it failed.
解决办法:
# ./configure —prefix=/usr/local/mplayer —yasm=’’
—————————————————————————————————————
光盘开机自动挂载
# vim /etc/rc.local
最后一行添加
mount /dev/cdrom /mnt/cdrom
这样的话,下次系统重启就不需要再手动挂载光盘了。
3、编译
[root@localhost MPlayer-1.1]# make
4、安装
[root@localhost MPlayer-1.1]# make install
——————————————————————————————
其他相关命令
make:出错了
# make clean 清除编译文件
make install:
# make uninstall 卸载
——————————————————————————————