Linux命令
一.目录处理命令
1. 查看文件:ls (list)
ls [选项] [文件或者目录]
-a 显示所有文件,包括隐藏文件(Linux中隐藏文件是以.开头)
-l 详细信息显示 (-lh 可以人性化显示,文件大小可以是k和M)
2.创建新目录:mkdir(make directories)
mkdir -p [目录名]
-p 递归创建
例:mkdir -p /tmp/a/b/c
3.切换目录:cd(change directories)
cd [目录]
cd .. //返回上一级
4.显示当前目录:pwd(print working director)
pwd
5.删除空目录:rmdir(remove empty directories)
rmdir [目录名]
6.复制文件或目录:cp(copy)
cp -rp [原文件或目录] [目标目录]
-r 复制目录
-p 保留文件属性 (文件最后修改时间也会保留,不会更改)
7.剪切文件、改名:mv(move)
mv [原文件或目录] [目标目录]
8.删除文件:rm(remove)
rm -rf [文件或目录]
-r 删除目录
-f 强制执行
二.文件处理命令
1.创建空文件:touch
touch [文件名]
如果创建的文件名中存在空格则应该使用””引起来,
例:touch “program files”
2.显示文件内容:cat
cat [文件名]
-n 显示行号
反向显示文件内内容:tac
3.分页显示文件内容(不可向上翻页):more
(空格)或f 翻页
(Enter) 换行
q或Q 退出
分页显示文件内容(可向上翻页):less
向上翻页:PageUp
向上一行:上箭头
搜索:/搜索的内容 (按n向下找)
4.显示文件的前几行(默认显示前十行):head
head [文件名]
-n 指定行数
显示文件的前几行(默认显示后十行):tail
tail[文件名]
-n 指定行数
三.链接命令
1.生成链接文件(不加-s就是硬链接):ln
ln -s [原文件] [目标文件]
-s 创建软链接
(1)软连接特征:
- 1)类似于windows快捷方式
- 2)软链接的文件类型都是lrwxrwxrwx,具体执行权限看原文件
- 3)文件大小很小,只是一个符号链接
- 4)箭头指向原文件(day23.soft->day23.c)
(2)硬链接特征:
- 1)拷贝cp -p +同步更新
- 2)通过i节点识别(硬链接的i节点同原文件的相同)
- 3)不能跨分区
- 4)不能针对目录使用
当原文件被删除时,软链接会显示文件不存在,硬链接还可以正常使用
四.权限管理命令
1.更改文件或者目录权限:chmod(change the permissions mode of a file)(只有所有者和root可以更改)
chmod [{ugoa}{+-=}{rwx}] [文件或目录]
[mode=421] [文件或目录]
-R 递归修改 (更改目录和目录下所有文件的权限)
例如:chmod u+x,o-r test.c
chmod 755 test.c
操作 | 权限 | 文件 | 目录 |
---|---|---|---|
r | 读权限 | 可以查看文件内容 | 可以列出目录中的内容 |
w | 写权限 | 可以修改文件内容 | 在目录中创建、删除文件 |
x | 执行权限 | 可以执行文件 | 可以进入目录 |
- 注意:删除一个文件,不是对其有写权限,而是对其所在目录有写权限。
2.改变文件或目录的所有者(只有root可以)
chown(change file ownership)
chown [用户] [文件或者目录]
例如:chown spy test.c //改变文件test.c的所有者为spy
3. 改变文件或目录的所属组
charg
chgrp [用户组] [文件或者目录]
例如:chgrp spy test.c //改变文件test.c的所属组为spy
4.显示、设置文件的缺省权限
umask(the use file-creation mask)
umask [-S]
-S :以rwx形式显示新建文件缺省权限
例如:umask -S
五、文件搜索 find
1. 文件搜索 find
find [搜索范围] [匹配条件]
例如:1.find /etc -name init
-iname //不区分大小写
*name //通配符,型号表示匹配所以字符
???name //准确查name前面有三个字符
*:匹配所有字符
?:匹配单个字符
2. find / -szie +204800 //在根目录下查找大于100M的文件
+n:大于n -n:小于n n :等于n
Linux:1数据块==0.5K
3. find / -user spy //在根目录下查找所有者为spy的文件
-group 根据所属组查找
4. find /etc -cmin -5 //在/etc下查找5分钟内被修改过属性的文件或者目录
-amin 访问时间
-cmin 文件属性
-mmin 文件内容
5. -a 两个条件同时满足
-o 两个条件满足任意一个即可
-exec(-OK) 命令 {} \; //对搜索结果执行操作,OK会询问操作
例如:find /etc -size +163840 -a -size -204800
//在/etc下查找大于80MB小于100MB的文件
find /etc -name spy -exec ls -l {} \
//在/etc下查找spy文件并显示其详细信息
6. -type 根据文件类型查找
f:文件 d:目录 l:软链接文件
-inum 根据i节点查找
- 在文件资料库中查找文件local
local 文件名
例如:local spy
六、grep
作为linux中最为常用的三大文本(awk,sed,grep)处理工具之一,掌握好其用法是很有必要的。
首先谈一下grep命令的常用格式为:
grep [选项] ”模式“ [文件]
grep家族总共有三个:grep,egrep,fgrep。
常用选项:
-E :开启扩展(Extend)的正则表达式。
-i :忽略大小写(ignore case)。
-v :反过来(invert),只打印没有匹配的,而匹配的反而不打印。
-n :显示行号
-w :被匹配的文本只能是单词,而不能是单词中的某一部分,如文本中有liker,而我搜寻的只是like,就可以使用-w选项来避免匹配liker
-c :显示总共有多少行被匹配到了,而不是显示被匹配到的内容,注意如果同时使用-cv选项是显示有多少行没有被匹配到。
-o :只显示被模式匹配到的字符串。
--color :将匹配到的内容以颜色高亮显示。
-A n:显示匹配到的字符串所在的行及其后n行,after
-B n:显示匹配到的字符串所在的行及其前n行,before
-C n:显示匹配到的字符串所在的行及其前后各n行,context
模式部分:
1、直接输入要匹配的字符串,这个可以用fgrep(fast grep)代替来提高查找速度,比如我要匹配一下hello.c文件中printf的个数:fgrep -c "printf" hello.c
2、使用基本正则表达式,下面谈关于基本正则表达式的使用:
匹配字符:
. :任意一个字符。
[abc] :表示匹配一个字符,这个字符必须是abc中的一个。
[a-zA-Z] :表示匹配一个字符,这个字符必须是a-z或A-Z这52个字母中的一个。
[^123] :匹配一个字符,这个字符是除了1、2、3以外的所有字符。
对于一些常用的字符集,系统做了定义:
[A-Za-z] 等价于 [[:alpha:]]
[0-9] 等价于 [[:digit:]]
[A-Za-z0-9] 等价于 [[:alnum:]]
tab,space 等空白字符 [[:space:]]
[A-Z] 等价于 [[:upper:]]
[a-z] 等价于 [[:lower:]]
标点符号 [[:punct:]]
匹配次数:
\{m,n\} :匹配其前面出现的字符至少m次,至多n次。
\? :匹配其前面出现的内容0次或1次,等价于\{0,1\}。
* :匹配其前面出现的内容任意次,等价于\{0,\},所以 ".*" 表述任意字符任意次,即无论什么内容全部匹配。