文件处理命令
0.Linux目录结构
/ 根目录
bin //系统可执行程序,如命令
boot //内核和启动程序,所有和启动相关的文件都保存在这里
grub //引导器相关文件
dev //设备文件
etc //系统软件的启动和配置文件,系统在启动过程中需要读取的文件都在这个目录。如LILO参数、用
户账户和密码。
home //用户的主目录。下面是自己定义的用户名的文件夹
lib //系统程序库文件,这个目录里存放着系统最基本的动态链接共享库,类似于Windows下的system32
目录,几乎所有的应用程序都需要用到这些共享库。
media //挂载媒体设备,如光驱、U盘等
mnt //目录是让用户临时挂载别的文件系统,如挂载Windows下的某个分区,ubuntu默认还是挂载在/media
目录。
opt //可选的应用软件包(很少使用)
proc //这个目录是系统内存的映射,我们可以直接访问这个目录来获取系统信息。也就是说,这个目录的内容不在硬盘上而是在内存里。
sbin //管理员系统程序
selinux
srv
sys //udev用到的设备目录树,/sys反映你机器当前所接的设备
tmp //临时文件夹
usr //这是个最庞大的目录,我们要用到的很多应用程序和文件几乎都存放在这个目录下。
bin // 应用程序
game //游戏程序
include
lib //应用程序的库文件
lib64
local //包含用户程序等
sbin //管理员应用程序
1.显示目录文件:ls
语法
ls [-ald] [文件或目录]
常用选项:
-a 显示所有文件,包括隐藏文件
-l 详细信息显示
-d 查看目录属性
-R 连同子目录中的内容一起列出
用ls -l命令显示的信息中,开头是由10个字符构成的字符串,其中第一个字符表示文
件类型,它可以是下述类型之一:
- 普通文件
d 目录
l 符号链接
b 块设备文件
c 字符设备文件
s socket文件,网络套接字
p 管道
后面的9个字符表示文件的访问权限,分为3组,每组3位。第一组表示文件属主的权
限,第二组表示同组用户的权限,第三组表示其他用户的权限。每一组的三个字符分别表示
对文件的读、写和执行权限。各权限如下所示:
r 读
w 写
x 可执行。对于目录,表示进入权限。
s 当文件被执行时,把该文件的UID或GID赋予执行进程的UID(用户ID)或GID(组ID)。
t 设置标志位(sticky bit)。如果是有sticky bit的目录,在该目录下任何用户只要有适当的权限即可创建文
件,但文件只能被超级用户、目录拥有者或文件属主删除。如果是有sticky bit的可执行文件,在该文件执行后,
指向其正文段的指针仍留在内存。这样再次执行它时,系统就能更快地装入该文件。
- 没有相应位置的权限。
访问权限后面的数字表示与该文件共享inode的文件总数,即硬链接数
2.切换目录
语法
cd [目录]
3.显示当前所在的工作目录:pwd
4.创建空文件:touch
语法
touch [文件名]
5.创建新目录:mkdir
语法
mkdir [目录名]
6.拷贝文件cp
cp [源文件或目录] [目的目录]
选项
-R 复制目录下所有文件及子文件
实例
cp file1 file2 dir1
#将文件file1、file2复制到目录dir1
cp -R dir1 dir2
#将dir1下的所有文件及子目录复制到dir2
7.移动文件、更名:mv
语法
mv [源文件或目录] [目的目录]
实例
mv file1 file3
#将当前目录下文件file1更名为file3
mv file2 dir2
#将文件file2移动到目录dir2下
8.删除文件rm
语法
rm -r [文件或目录]
选项
-r 删除非空目录
-f 强行删除
实例
rm file3
删除文件file3
$ rm -r dir1
删除目录dir1
9.显示文件内容:cat
语法:
cat [文件名]
10.分页显示文件内容:more
语法:
more [文件名]
(空格) 或f ——显示下一页
(Enter)——显示下一行
q或Q——退出
11.查看文件的前几行:head
语法:
head -num [文件名]
12.查看文件的后几行:tail
语法
tail -num [文件名]
选项:
-f——动态显示文件内容
13.产生链接文件:ln
语法:
ln [源文件] [目标文件]
选项:
-s创建软连接
实例
ln -s /etc/issue /issue.soft
创建文件/etc/issue的软链接/issue.soft
ln /etc/issue /issue.hard
创建文件/etc/issue的硬链接/issue.hard
权限管理
1.改变文件或目录权限:chmod
语法:
chmod [{ugo}{+-=}{rwx}] [文件或目录]
[mode=421 ] [文件或目录]
实例
chmod g+w file1
赋予文件file1所属组写权限
chmod 777 dir1
设定目录dir1为所有用户具有全部权限
文件目录权限
代表字符 | 权限 | 对文件的含义 | 对目录的含义 |
---|---|---|---|
r | 读 | 可以查看文件内容 | 可以列出文件的内容 |
w | 写 | 可以修改文件内容 | 可以在目录中创建、删除文件 |
x | 执行 | 执行权限 | 可以执行文件 |
2.改变文件或目录的所有者:chown
语法:
chown [用户] [文件或目录]
3.改变文件或目录的所属组
语法
chgrp [用户组] [文件或目录]
4.显示、设置文件的缺省权限
语法:
umask [-S] 权限值
选项
-S 以rwx形式显示新建文件或目录缺省权限
文件搜索命令
1.显示系统命令所在目录:which
语法:
which [命令名称]
2.查找文件或目录:find
语法:
find [搜索路径] [搜寻关键字]
实例:
find /etc -name init
在目录/etc中查找文件init
find / -size +204800
在根目录下查找大于100MB的文件
find / -user sam
在根目录下查找所有者为sam的文件
find /etc -ctime -1
在/etc下查找24小时内被修改过属性的文件和
目录
find /etc -size +163840 -a -size -204800
在/etc下查找大于80MB小于100MB的文件
find /etc -name inittab -exec ls -l {} \;
在/etc下查找inittab文件并显示其详细信息
3.寻找文件或目录:locate
语法:
locate [搜索关键字]
4.在文件中搜寻字串匹配的行并输出:grep
语法:
grep [指定字串] [源文件]
实例:
grep ftp /etc/services
压缩解压缩命令
1.压缩文件:gzip
语法:
gzip 选项 [文件]
压缩后文件格式:.gz
2.解压缩.gz的压缩文件:gunzip
语法:
gunzip 选项 [压缩文件]
实例:
gunzip file1.gz
3.打包目录 :tar
语法:
tar 选项[cvf] [目录]
选项
-c 产生.tar打包文件
-v 显示详细信息
-f 指定压缩后的文件名
-z 打包同时压缩
压缩后文件格式:.tar.gz
实例
tar -zcvf dir1.tar.gz dir1
将目录dir1压缩成一个打包并压缩的文件
4.解压命令 :tar
选项
-x 解包.tar文件
-v 显示详细信息
-f 指定解压文件
-z 解压缩
实例:
tar -zxvf dir1.tar.gz
shell技巧
1.命令别名
命令别名定义:
范例:
alias copy=cp
alias xrm= “rm -r ”
查看别名信息:
alias
删除别名:
unalias copy
2.输入/输出重定向
>或>> 输出重定向
范例:
ls -l /tmp > /tmp.msg
date >> /tmp.msg
< 输入重定向
范例:
wall < /etc/motd
2> 错误输出重定向
范例:
cp -R /usr /backup/usr.bak 2> /bak.error
3.管道
将一个命令的输出传送给另一个命令,作为另一个命令的输入
语法:
命令1|命令2|命令3......|命令n
范例:
ls -l /etc | more
ls -l /etc | grep init
ls -l /etc | grep init | wc -l
4.命令连接符
;
用;间隔的各命令按顺序依次执行。
&&
前后命令的执行存在逻辑与关系,只有&&前面的命令执行成功后,它后面的命令才被执行。
||
前后命令的执行存在逻辑或关系,只有||前面的命令执行失败后,它后面的命令才被执行。
5.命令替换符
将一个命令的输出作为另一个命令的参数。
语法:
命令1 `命令2`
范例:
ls -l `which touch`