linux学习笔记.docx
- 文档编号:24331857
- 上传时间:2023-05-26
- 格式:DOCX
- 页数:27
- 大小:377KB
linux学习笔记.docx
《linux学习笔记.docx》由会员分享,可在线阅读,更多相关《linux学习笔记.docx(27页珍藏版)》请在冰豆网上搜索。
linux学习笔记
1任何一个档案都具有『User,Group及Others』三个权限。
第一个属性代表这个档案是『目录、档案或连结文件等等』:
当为[d]则是目录,例如上表的第11行;
当为[-]则是档案,例如上表的第5行;
若是[l]则表示为连结档(linkfile);
若是[b]则表示为装置文件里面的可供储存的接口设备;
若是[c]则表示为装置文件里面的串行端口设备,例如键盘、鼠标。
接下来的属性中,三个为一组,且均为『rwx』的三个参数的组合。
其中,[r]代表可读(read)、[w]代表可写(write)、[x]代表可执行(excute):
第一组为『拥有人的权限』,以第5行为例,该档案的拥有人可以读写,但不可执行;
第二组为『同群组的权限』;
第三组为『其它非本群组的权限』。
中文无法显示在文字型态的终端机上面,所以这一栏会成为怪怪的乱码,这个时候,请修改一下/etc/sysconfig/i18n这个档案,里面的『LC_TIME』修改为:
『LC_TIME=en』再储存离开,再登入一次,就可以得到英文字形显示的日期了!
那么如何修改该档案呢?
呵呵!
以root身份用vi修改。
另外,也可以使用『LANG=enls-al』之类的语法来显示。
2改变档案权限
Chgrp改变档案所属群组
注意:
要改变成为的群组名称必须要在/etc/group里面存在的名称才行,否则就会显示错误!
例子
chgrpliningtest将test目录的群组改为lining
Chown改变档案所属人
注意:
使用者必须是已经存在系统中的,也就是在/etc/passwd这个档案中有纪录的使用者名称才行改变。
!
例子
chown[-R]账号名称档案或目录
chown[-R]账号名称:
群组名称档案或目录
chownlining:
liningtestgrp.log
chownliningtest
chgrp–Rliningtest将test目录下的所有文的群组改为lining
Chmod改变档案所属属性、SUID、等等的特性
方法一数字方法计算
r:
4w:
2x:
1
chmod[-R]xyz档案或目录
chmod-R777test/改变test目录下所有子目录及文件的权限
方法二
a则代表all亦即全部的三群组。
U当前用户、g当前群组、o其他群组
例子:
chmoda-xtest/将test目录的执行权限去掉(所有用户)
chmodu-w,go-rwtest/将test目录当前用户的写权限去掉,将当前群组和其他群组的读、写权限去掉。
chmod-Ra+rtest/将test目录及子目录权限添加读权限
mkdir创建目录
mkdir-ma=xabc创建目录abc,并给所有用户赋予执行权限
mkdir-pa/b/c创建多层目录
touch命令
如果fileA不存在,touch指令会在当前目录下新建一个空白文件fileA
su切换用户
sulining切换到用户lining下
注:
X在目录当中【能否进入该目录】有关,至于W可以让使用者更新、删除、新建目录或档案。
3档案各类
类型
表示
描述
正规档案
-
文档
目录
d
目录
连接档
l
快捷方式
设备与装置文件
b
区块(block)设备档
c
字符(character)设备档
资料接口文件
s
数据传输文件
p
Linux档案附档名
*.sh:
批次檔(scripts),因为批次档为使用shell写成的,所以附档名就编成.sh啰;
*Z,*.tar,*.tar.gz,*.zip,*.tgz:
经过打包的压缩档。
这是因为压缩软件分别为gunzip,tar等等的,由于不同的压缩软件,而取其相关的附档名啰!
*.html,*.php:
网页相关档案,分别代表HTML语法与PHP语法的网页档案啰!
.html的档案可使用网页浏览器来直接开启,至于.php的档案,则可以透过client端的浏览器来server端浏览,以得到运算后的网页结果呢!
目录
.:
代表当前的目录,也可以使用./来表示;
..:
代表上一层目录,也可以../来代表。
目录与路径
1,相对路径由根目录/写起的路径
2,绝对路径不是由/写起
目录相关操作
cd切换目录
cd~回到自己的主文件夹
cd..回到上层目录
cd–回到刚才的那个目录
pwd显示当前目录
mkdir新建一个新的目录
rmdir删除一个空的目录
文件路径的变量$PATH
为什么我们可以在任何地方执行/bin/ls这个命令呢?
这是因为环境变更PATH的帮助.
echo$PATH显示PATH所配置的路径
echo显示、打印
$表示后面接的是变量
注:
PATH这个目录是由一堆目录所组成的,每个目录中间用冒号(:
)来隔开。
PATH=”$PATH”:
/root
文件与目录管理
查看文件与目录ls
cp
rm
mv
basename
dirname
文件内容查阅
cat:
由第一行开始显示文件内容
例:
catdoc1.txt
cat-ndoc1.txt显示行号
tac:
从最后一行开始显示
nl:
显示的时候,顺便输入行号
nl-badoc1.txt不论是否空行都显示行(同cat-n)
nl-btdoc1.txt如果有空行,空的那一行不要列出行号(默认值)
nl–nln
more:
一页一页的显示文件内容
less:
与more类似,但是比more更好的是,它可以往前翻页
tail:
只看结尾几行。
head:
只显示头几行
od:
以二进制的方式读取文件内容
touch修改文件时间或创建新文件
时间参数
1,mtime当该文件内容数据更改时,就会更新这个时间。
内容数据指的是文件的内容,而不是文件的属性或权限。
【ls-ldoc1.txt】
2,ctime当该文件的“状态”改变时,会更新这个时间,举例来说,像是权限与属性被更改了,都会更新这个时间【ls-l--time=ctimedoc1.txt】
3,atime当“文件的内容被取用”时,就会更新这个读取时间。
举例,我们使用cat去读取文件时,就会更新这个文件的atime【ls-l--time=atimedoc1.txt】
touch[acdmt]文件
-a仅修改访问时间
-c仅修改文件的时间,若文件不存在则不创建新文件
-d后面可以接欲修改的日期而不用目前的日期,也可以使用–date=”日期或时间”
-m仅修改mtime
-t后面可以接欲修改的时间而不用目前的时间,格式为【YYMMDDhhmm】
例子:
touch-d"2daysago"doc2.txt修改更新时间
touch-a-d"2daysago"doc2.txt修改访问时间
文件与目录的默认权限与隐藏权限
文件默认权限umask
1,查看默认权限
[root@tmobile86lining]#umask
0022【注:
要拿掉的权限,4读、2写、1执行】
[root@tmobile86lining]#umask-S
u=rwx,g=rx,o=rx
[root@tmobile86lining]#
2,修改默认权限
[root@tmobile86lining]#umask002
注意:
文件默认为-rw-rw-rw-
文件夹默认为drwxrwxrwx
文件隐藏属性
chattr(设置文件的隐藏属性)
chattr[+-=][ASacdistu]文件或目录名称
[A]atime就不会再改变
[S]文件是异步写入磁盘,加上S这个属性时,当你进行任何文件的修改,都会“同步”写入磁盘
[a]文件只能增加数据,而不能删除也不能修改数据,只有root才能设置这个属性
[c]这个属性设置后,将会自动对此文件进行压缩,在读取的时候会自动解压缩
[i]让文件不能被删除、改名、设置连接也无法写入或添加数据。
只有root才能设置这个属性。
[root@tmobile86lining]#chattr+ia.abc
[root@tmobile86lining]#rm-rfa.abc
rm:
cannotremove`a.abc':
Operationnotpermitted
[root@tmobile86lining]#lsattra.abc
----i--------./a.abc
[root@tmobile86lining]#chattr-ia.abc
[root@tmobile86lining]#lsattra.abc
-------------a.abc
[root@tmobile86lining]#
文件特殊权限:
SUID,SGID,SBIT
待后续【看了一下没太懂】
查看文件类型
file文件或目录名
[root@tmobile86lining]#filea.abc
a.abc:
empty
[root@tmobile86lining]#filetest1
test1:
directory
[root@tmobile86lining]#via.abc
[root@tmobile86lining]#filea.abc
a.abc:
ASCIItext
命令与文件的查询
脚本文件名的查询
Which(寻找“执行文件”)which[-a]command
[root@tmobile86lining]#which-als
aliasls='ls--color=tty'
/bin/ls
文件名的查找
which 查看可执行文件的位置
which命令的作用是,在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。
也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。
which命令的使用实例:
$whichgrep
whereis 查看文件的位置
whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。
如果省略参数,则返回所有信息。
whereis命令的使用实例:
$whereisgrep
locate 配合数据库查看文件位置
locate命令其实是"find-name"的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息。
Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令查不到最新变动过的文件。
为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。
locate命令的使用实例:
$locate/etc/sh
搜索etc目录下所有以sh开头的文件。
$locate~/m
搜索用户主目录下,所有以m开头的文件。
$locate-i~/m
搜索用户主目录下,所有以m开头的文件,并且忽略大小写。
find 实际搜寻硬盘查询文件名称
find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件。
find的使用格式如下:
$find<指定目录><指定条件><指定动作>
find的使用实例:
$find.-name'my*'
搜索当前目录(含子目录,以下同)中,所有文件名以my开头的文件。
$find.-name'my*'-ls
搜索当前目录中,所有文件名以my开头的文件,并显示它们的详细信息。
$find.-typef-mmin-10
搜索当前目录中,所有过去10分钟中更新过的普通文件。
如果不加-typef参数,则搜索普通文件+特殊文件+目录。
4文件系统的操作
1,磁盘与目录的容量:
df,du
Tips:
blockinode是什么?
文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。
每个扇区储存512字节(相当于0.5KB)。
操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。
这种由多个扇区组成的"块",是文件存取的最小单位。
"块"的大小,最常见的是4KB,即连续八个sector组成一个block。
文件数据都储存在"块"中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。
这种储存文件元信息的区域就叫做inode,中文译名为"索引节点"。
df列出文件系统的整体磁盘使用量
[root@tmobile86acpi]#df
【文件系统】【总区块大小】【已用】【未用】【使用率】【挂载点】
Filesystem1K-blocksUsedAvailableUse%Mountedon
/dev/sda397409644333477805903392437%/
/dev/sda1101086118158405213%/boot
tmpfs4087692040876920%/dev/shm
将容量以易读的容量格式显示出来
[root@tmobile86acpi]#df-h
FilesystemSizeUsedAvailUse%Mountedon
/dev/sda393G32G57G37%/
/dev/sda199M12M83M13%/boot
tmpfs3.9G03.9G0%/dev/shm
将目前各个分区当中可用的inode数量列出来
[root@tmobile86lafaso]#df-i
FilesystemInodesIUsedIFreeIUse%Mountedon
/dev/sda325141248342835247984132%/
/dev/sda12610434260701%/boot
tmpfs1021923110219221%/dev/shm
将目前各个分区当中可用block的数量列出来
[root@tmobile86lafaso]#df-k
Filesystem1K-blocksUsedAvailableUse%Mountedon
/dev/sda397409644333483445903336037%/
/dev/sda1101086118158405213%/boot
tmpfs4087692040876920%/dev/shm
du评估文件系统的磁盘使用量
1.查看某个目录的大小:
du-hs/home/master/documents
检查指定目录下所有目录所占用的空间
[root@tmobile86lining]#du-s/home/*
96/home/chenlin
108/home/chenweina
56/home/fangguanhong
6916/home/guoyongxiang
44/home/hadoop
108/home/hanyunjiao
60/home/hefei
sudosu和sudosu–的区别
sudosu以root命令执行切换目录命令,切换到root账户下,但工作目录不变
sudosu-以root命令执行切换目录命令,切换到root账户下,改变工作目录
连接文件ln
【硬连接】
硬连接指通过索引节点来进行连接。
在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(InodeIndex)。
在Linux中,多个文件名指向同一索引节点是存在的。
一般这种连接就是硬连接。
硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。
其原因如上所述,因为对应该目录的索引节点有一个以上的连接。
只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。
也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。
注:
1,不能跨文件系统
2,不能连接目录
Hardlink(硬连接或实际连接)
创建硬连接
[root@tmobile86testln]#ln/etc/crontab.
[root@tmobile86testln]#ls
acrontab
[root@tmobile86testln]#
查看连接信息
[root@tmobile86testln]#ll-i/etc/crontab./crontab
14043930-rw-r--r--2rootroot255Jul152006./crontab
14043930-rw-r--r--2rootroot255Jul152006/etc/crontab
[root@tmobile86testln]#
可以发现两个文件名都连接到14043930这个inode号码,2表示有多少个文件名连接到这个inode号码。
【软连接】
另外一种连接称之为符号连接(SymbolicLink),也叫软连接。
软链接文件有类似于Windows的快捷方式。
它实际上是一个特殊的文件。
在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。
[root@tmobile86testln]#ln-sa1/c.
[root@tmobile86testln]#ll-i
total12
12440107drwxr-xr-x2rootroot4096Dec3016:
21a1
12440111lrwxrwxrwx1rootroot4Dec3016:
21c->a1/c
14043930-rw-r--r--3rootroot255Jul152006crontab
磁盘分区、格式化、检验与挂载
磁盘分区:
fdisk
1,列出文件系统的整体磁盘使用情况
[root@tmobile86testln]#df
Filesystem1K-blocksUsedAvailableUse%Mountedon
/dev/sda397409644342622485811945638%/
/dev/sda1101086118158405213%/boot
tmpfs4087692040876920%/dev/shm
2,磁盘分区
[root@tmobile86testln]#fdisk/dev/sda
Thenumberofcylindersforthisdiskissetto13054.
Thereisnothingwrongwiththat,butthisislargerthan1024,
andcouldincertainsetupscauseproblemswith:
1)softwarethatrunsatboottime(e.g.,oldversionsofLILO)
2)bootingandpartitioningsoftwarefromotherOSs
(e.g.,DOSFDISK,OS/2FDISK)
Command(mforhelp):
m
Commandaction
atoggleabootableflag
beditbsddisklabel
ctogglethedoscompatibilityflag
ddeleteapartition(删除一个分区)
llistknownpartitiontypes
mprintthismenu
naddanewpartition(新增一个分区)
ocreateanewemptyDOSpartitiontable
pprintthepartitiontable(在屏幕上显示分区表)
qquitwithoutsavingchanges(不存储,离开fdisk程序)
screateanewemptySundisklabel
tchangeapartition'ssystemid
uchangedisplay/entryunits
vverifythepartitiontable
wwritetabletodiskandexit(将刚才的操作写入分区表)
xextrafunctionality(expertsonly)
装虚拟机时空间划小了,于是又加了5G的空间,折腾了半天,挂上去了。
整理下弄个笔记,备用。
1.添加磁盘,查看磁盘状况
[root@db1/]#fdisk-l
Disk/dev/sda:
10.7GB,10737418240bytes
255heads,63sectors/track,1305cylinders
Units=cylindersof16065*512=8225280bytes
DeviceBootStartEndBlocksIdSystem
/dev/sda1*15113059277537+83Linux
/dev/sda211501204843+82Linuxswap
Partitiontableentriesarenotindiskorder
Disk/dev/sdb:
5368MB,5368709120bytes
255heads,63sectors/track,652cylinders
Units=cylindersof16065*512=8225280bytes
DeviceBootStartEndBlocksIdSystem
从查询结果看出,多了一个/dev/sdb的盘
2.用fdisk对/dev/sdb进行分区
[root@db1/]#fdisk/dev/sdb
Command(mfor
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- linux 学习 笔记
![提示](https://static.bdocx.com/images/bang_tan.gif)