当前位置:首页 > Ubuntu完全教程,让你成为Ubuntu高手!
Ubuntu完全教程(szyzln于2009年5月9日整理)
文件管理
一些细节
/ 目录为文件系统根目录,所有目录都是它的子目录 绝对路径以 / 起始,相对路径以当前所在目录起始
目录是一种特殊类型的文件,如果没有特别指明, 文件 包括文件和目录 .. 表示上一级目录, . 表示当前目录,它们是两个特殊目录 链接
为当前文件建立在其它路径中的访问方法。例如将系统中其它位置的可执行文件,链接到 /usr/local/bin 目录下,使用命令调用。
ls [路径]
显示当前目录文件列表
--color 不同属性以不同颜色显示(默认参数) -a 全部显示
-i 显示inode值
-l 详细信息
-S 按文件大小排序
-F 显示文件类型后缀 目录/ 链接@ 可执行文件* 端口文件= 管道文件| > -A 显示隐藏文件
-R 递归显示子目录文件列表 -u 按访问时间排序
-t 按修改时间排序
-d 只显示目录,不递归显示目录下的文件
cd [目录路径] | [特殊路径]
切换目录
目录路径可以使用绝对路径或者相对路径特殊路径: ~ $HOME目录(默认值)
- 上一次目录
.. 上一级目录
. 当前目录
说明:您可以通过修改 /etc/environment 文件,来定义 $CDPATH 变量,设定“cd”命令的搜索路径。
pwd
显示当前路径
file <文件名>
显示文件类型
-i 显示mime类型 du [路径]
计算文件或目录空间占用
-h 人性化显示。自动以G、M、K为单位显示占用空间大小 -L 计算符号链接文件大小
-l 重复计算硬链接文件大小
-c 显示文件数
-a 显示当前目录子目录中的文件
less <文件名>
浏览文件,使用VI和Emacs两种风格的键绑定。以下为VI风格键绑定 Ctrl+f(orward) 向下翻一页 Ctrl+d(own) 向下翻半页 Ctrl+b(ackward) 向上翻一页 Ctrl+u(p) 向上翻半页
/ 查找 q(uit) 退出
touch <目标文件>
触碰,在不修改文件的前提下,更改其时间属性。通常用来创建一个空文件
29
Ubuntu完全教程(szyzln于2009年5月9日整理)
mkdir <文件夹>
创建文件夹
-p <多级目录> 按路径创建多级目录
-m <数字权限值> 设定权限
cp <源文件> <目标目录|文件>
将源文件复制为目录文件,或者将源文件复制到目标目录。多个源文件使用空格分隔
cp <源目录> <目标目录>
将源目录复制到目标目录中,如果复制多个源目录,需要使用 -R 参数 -a 相当于-dpr参数 -v 显示过程
-d 保留链接
-f 强制复制,覆盖目标文件
-i 覆盖时询问用户
-p 保留修改时间和访问权限
-r -R 递归复制(目录=>目录)
-l 创建链接
rm <目标目录|文件>
删除
-r -R 递归删除
-f 强制删除(无需确认,直接删除。慎用!)
-i 交互式删除(询问用户)
rmdir <目标目录>
删除目录时,建议您使用“rm -r”命令
mv <源文件> <目标目录|文件>
相当于cp后删除源文件,也可以作为“重命名”使用。
mv <源目录> <目标目录>
-r -R 递归
ln <源文件> <链接>
链接 -s 符号链接
-f 强制链接,覆盖目标文件
-i 覆盖前询问用户
文件操作
nano
一个简单轻便的文本编辑器,使用Emacs风格的键绑定。
split <源文件> [目标文件名前缀]
将源文件按一定规则分割成若干个目标文件。默认文件名前缀为 x -<行数> 按行数分割文件
-l <行数> 同上
-b <字节> 按大小分割文件。可以使用b、k、m作单位,不指定单位的情况下,默认单位为b -C <字节> 按大小分割文件,并尽量保持每行的完整 示例:split -C 100k file.split x
cat <文件名>
输出文件内容。用空格分隔多个文件名,可以将多个文件内容连接到一起输出。使用重定向合并为一个文件
-n 在输出中添加行号
-b 在输出中添加行号,空行不编号
-s 将两行或以上的空行,合并为一个空行
30
Ubuntu完全教程(szyzln于2009年5月9日整理)
示例:cat xaa xab xac > file.split
sort [-o <输出文件>] [-t <分隔字符>] [+<起始字段> - <结束字段>] [文件]
对文本内容排序 -m 合并文件
-c 检查文件是否已按规则排序
-f 忽略大小写
-b 忽略行首空格字符
-r 逆序输出
-u 忽略内容重复行
-l 忽略非打印字符
-M 作为月份比较
-d 按字典顺序排序,按照字母、数字、空格、制表符排序
more
查看文件内容,我们建议您使用 less
diff <文件名>
比较文件
cksum [文件名]
计算文件的CRC值。不指定文件名则从标准输入设备读入数据,例如: echo xxx | cksum
md5sum [文件名] 计算文件的md5值。同上
权限管理
一些细节
一个文件主要包含下列属性, ls -l - rwx rwx rwx user group date filename 111 101 101
其中,第一组为归属用户的权限,第二组为归属群组的权限,第三组为其它用户群组的权限。user为文件的归属用户,group为文件的归属群组,date为日期信息,filename为文件名。
对于文件夹,必须拥有它的可执行权限,才能够使用 cd 命令进入该文件夹;拥有可读权限,才能够使用 ls 命令查看该文件夹的文件列表。 root用户拥有最高权限。
可以使用3位的二进制数字来描述一组权限,某一权限对应的数字为1,则表示具有该种权限,为0,则不具有该种权限。
使用二进制数字来描述一组权限,虽然非常直观,但是3组权限需要用9位数来表示,使用不够方便。因此我们将三组权限使用3位8进制数字来表示。它们的对应关系为: r 100 4 w 010 2 x 001 1
将这三位8进制数字相加的结果,就可以表示该组权限的具体内容,例如: 7=4+2+1=rwx 5=4+1=rx
755=4+2+1 4+1 4+1=rwx r-x r-x
还可以使用 a 、 u 、 g 、 o 表示归属关系,使用 = 、 + 、 - 表示权限变化,使用 r 、 w 、 x 表示权限内容,
a 所有用户 u 归属用户 g 归属群组 o 其它用户 = 具有权限 + 增加权限 - 去除权限 r 可读权限 w 可写权限 x 可执行权限
31
Ubuntu完全教程(szyzln于2009年5月9日整理)
例如:
a+x 给所有用户增加可执行权限
go-wx 将归属群组和其它用户的可写、可执行权限去掉 u=rwx 归属用户具有可读、可写、可执行权限
chmod <权限表达式> <文件|目录>
更改文件的权限。权限的表达式可以使用三位8进制数字表示,或者使用 augo +-= rxw-s 来表示 -R 递归 -v 显示过程
-c 类似“-v”,仅显示更改部分
--reference=<参考文件或目录> 以指定文件为参考更改权限 示例:
chmod -R a+x path chmod -Rv 755 path
chown <归属用户>[:归属群组] <文件|目录>
更改文件的归属用户。可以使用用户名或者UID -R 递归 示例:
chown user:admin path
chown -R user.admin path
chown user path
-v 显示过程
-c 类似 -v ,仅显示更改部分
--reference=<参考文件或目录> 以指定文件为参考更改权限
chgrp <归属群组> <文件|目录>
更改文件的归属群组。可以使用群组名或者GID 参数同上
SUID、SGID、Sticky bit
某些情况下,需要以可执行文件归属用户的身份执行该文件,可以为该文件设置SUID。同样,设置SGID能够以该文件归属群组的身份执行它。
例如:用户自行设定密码。出于安全方面的考虑, /etc/shadow 只能由root用户直接修改。 -rw------- root root /etc/shadow
这个时候,可以为程序 /usr/bin/passwd
设置SUID,当普通用户执行“passwd”命令时,便能够以该程序归属用户root的身份修改 /etc/shadow 文件。而“passwd”程序自身带有身份验证机制,不能通过验证时拒绝执行,从而保证了安全。 ls -l /usr/bin/passwd
-r-s--x--x root root /usr/bin/passwd
我们发现,归属用户的可执行权限位使用 s ,表示SUID。同样,归属群组的可执行权限位使用 s ,表示SGID。任何用户或群组都拥有
其它用户 的权限,所以不需要以 其它用户 身份执行文件,其它用户的可执行权限位便不会出现 s 。该权限位可能出现的属性为 t ,也就是粘着位Sticky bit。 ls -ld /tmp
drwxrwxrwt root root /tmp
粘着位表示任何用户都可能具有写权限,但只有该归属用户或root用户才能够删除 SUID、SGID、Sticky bit也可以像权限一样,使用一个八进制数表示,如下: 4 SUID
32
共分享92篇相关文档