RHCE课程-初级部分3
1.LINUX的文件及文件夹的组织结构
重要的文件目录
用户主目录: /root,/home/username用户可执行程序目录: /bin, /usr/bin, /usr/local/bin
系统可执行程序: /sbin, /usr/sbin, /usr/local/sbin
挂载点: /media, /mnt
常用的配置文件目录: /etc
临时文件目录: /tmp
内核及引导目录: /boot
服务器目录: /var
系统信息目录: /proc, /sys
共享库目录: /lib, /usr/lib, /usr/local/lib
谁告诉我用哪个用户登陆,主机名字是什么,现在在哪个目录?
如果我想切换会我的家目录有什么方法?
cd 回当前用户家目录
cd ~ 也是回当前用户家目录
cd - 回上一次所在的目录
cd /root 使用绝对路径
cd root 使用相对路径
复习:
2、常用的配置文件存放在哪个目录? /etc
3、内核引导目录是哪个? /boot
.. 代表上一级目录
现在讲讲ls命令
ls-l 以长列表方式显示文件
LINUX里只要文件名前有一个点的就是隐藏文件
这是我在相同目录用两个命令的效果
包含当前目录的硬盘使用空间、文件类型、文件权限、硬连接数、文件拥有者、文件所属组、文件大小、更动时间、文件名。
在linux中,所有东西都被当成文件。
文件权限前的第一个字母用来标识文件类型:
-:一般文件d:目录文件
b:块设备文件
c:字符设备文件
l:链接文件
p:人工管道
第一个位置代表文件类型了,那么剩下的9个呢?
567位代表文件所属组的权限。
89 10 代表其他用户的权限。
W 是写的意思
X 是执行的意思
知识点:
软连接就是产生一个新文件,这个文件指向另一个文件的位置,
硬连接必须在同一文件系统中,而软连接可以跨文件系统.
用file检查文件类型
由于linux中的文件名中没有扩展名,所以可能需要用file来查看文件类型
新建文件
使用权限:所有使用者
使用方式:
touch [-acfm]
[-r reference-file] [--file=reference-file]
[-t MMDDhhmm[[CC]YY][.ss]]
[-d time] [--date=time] [--time={atime,access,use,mtime,modify}]
[--no-create] [--help] [--version]
file1 [file2 ...]
说明:
touch 指令改变档案的时间记录。 ls -l 可以显示档案的时间记录。
参数:
a 改变档案的读取时间记录。
m 改变档案的修改时间记录。
c 假如目的档案不存在,不会建立新的档案。与 --no-create 的效果一样。
f 不使用,是为了与其他 unix 系统的相容性而保留。
r 使用参考档的时间记录,与 --file 的效果一样。
d 设定时间与日期,可以使用各种不同的格式。
t 设定档案的时间记录,格式与 date 指令相同。
--no-create 不会建立新档案。
--help 列出指令格式。
--version 列出版本讯息。
范例:
最简单的使用方式,将档案的时候记录改为现在的时间。若档案不存在,系统会建立一个新的档案。
touch file
touch file1 file2
将 file 的时间记录改为 5 月 6 日 18 点 3 分,公元两千年。
时间的格式可以参考 date 指令,至少需输入 MMDDHHmm ,就是月日时与分。
touch -c -t 05061803 file
touch -c -t 050618032000 file
touch -r referencefile file
时间可以使用 am, pm 或是 24 小时的格式,日期可以使用其他格式如 6 May 2000。
====================================================
touch -d 和 date -s 的用法相同。
touch -d 18:03 file
touch -d "18:03" file
touch -d "6:03pm" file
如果没有指定时间,默认为 00:00:00
touch -d 20000506 file
touch -d "05/06/2000" file
touch -d "20000506" file
touch -d "20000506 18:03" file
touch -d "20000506 18:03:00" file
LINUX的文件名最多支持多少字符?
删除文件
使用权限:所有使用者
使用方式:rm [options] name...
说明:删除档案及目录。
参数:
-i 删除前逐一询问确认。
-f 即使原档案属性设为唯读,亦直接删除,无需逐一确认。
-r 将目录及以下之档案亦逐一删除。
使用rm命令要小心。因为一旦文件被删除,它是不能被恢复的。为了防止这种情况的发生,可以使用i选项来逐个确认要删除的文件。
删除所有C语言程式档;删除前逐一询问确认 :
rm -i *.c
将 Finished 子目录及子目录中所有档案删除 :
rm -r Finished
重命名(移动 )文件
使用权限:所有使用者
使用方式:
cp [options] source dest
cp [options] source... directory
说明:将一个档案拷贝至另一档案,或将数个档案拷贝至另一目录。
参数:
-a 尽可能将档案状态、权限等资料都照原状予以复制。
-r 若 source 中含有目录名,则将目录下之档案亦皆依序拷贝至目的地。
-f 若目的地已经有相同档名的档案存在,则在复制前先予以删除再行复制。
范例:
将档案 aaa 复制(已存在),并命名为 bbb :
cp aaa bbb
将所有的C语言程式拷贝至 Finished 子目录中 :
cp *.c Finished
2.文件权限(重点)
对于每一类用户,权限系统又分别提供他们三种权限
读(r) :用户是否有权力读文件的内容
写(w) :用户是否有权利改变文件的内容
执行(x) :用户是否有权利执行文件
文件权限系统,将操作文件的用户都分成三类
文件的拥有者(u)
文件所属组的成员(g)
其他用户(o)
用户的名字与标识都放在/etc/passwd里面
下面接着将讲几个简单的命令
创建用户:useradd
删除用户:userdel
-f 删除用户登入目录以及目录中所有文件。
现在我们用su - amy命令切换到刚才建立的目录
上面你们都知道文件权限,和文件所有者还有所属组了,那么怎么改变文件权限呢?
chmod 文件权限 文件名字
语法:chown 用户名 文件名
建立文件用touch 命令,
名字叫;51cto
权限: u=rwx g=rx o=rx
第一位代表文件拥有者权限
第二位代表文件所属组成员权限
第三位代表其他用户权限
4(读);2(写);1(执行)
用数字表示,比如 777
如果是7,就证明他有那三种权限,如果是5就证明那个位置的用户只有4和1的权限,也就是没有2,写的权限。
所属组
用户的组名与组标识都放在/etc/group里面
文件的拥有者与root用户,可以用chgrp来改变文件所属的组
语法:chgrp 组名 文件名
一般普通用户的用户ID与组ID的值大于等于500,而系统用户ID与组ID小于500。(详情请查看/etc/login.defs配置文件)
查询当前Linux版本:uname -a
大家都知道,我们创建一个用户的时候,会自动创建用户主目录,会分配UID,还有密码策略,是怎么规定的吗?
PS:在强行改变/etc/passwd的情况是可以出现两个用户有相同的UID
复制一个文件到其他地方
下面切换成 redhat 用户,然后用 vim /file和 vim /file1
PS:有种极端的情况:如果这个redhat是UID最后一位用户,就是在它UID后没有比它大的UID用户,当此用户被删除后再重新建一个同名的用户时,新建的用户有它同样的UID。如下peter用户一样:
我们继续看刚才那个文件哈
目录的初始权限是777
文件的初始权限是666新建文件的权根就是666-022=644
就是下面这种效果
最后一项,意思在建立一个用户的时候也建立相应的组。
本文出自 “王乾De技术Blog[爱生活..” 博客,请务必保留此出处http://redking.blog.51cto.com/27212/108793
转载于:https://blog.51cto.com/jiangzhi2013/1204619