在查询时可使用通配符进行处理
*代表任意字符(0到多个)
? 代表一个字符
[ ] 中间为字符组合,仅匹配其中任一一个字符
每个文件/目录权限分三种,创建该文件的用户,该用户所在的属组,其他人
每种用户可进行的操作有三种r为读,w为写,x为可执行
每种操作1代表有,0代表无,三种操作通常连在一起(rwx)可组成一个二进制数字代表其权限操作,直接使用十进制表示。
ls -a 列出目录所有文件,包含以.开始的隐藏文件
ls -A 列出除.及…的其它文件
ls -r 反序排列
ls -t 以文件修改时间排序
ls -S 以文件大小排序
ls -h 以易读大小显示
ls -l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来
pwd 用于显示当前工作目录
cd / 进入目录
cd ~ 进入 “home” 目录
cd - 进入上一次工作路径
cd !$ 把上个命令的参数作为cd参数使用。
.代表当前目录
…代表上一层目录
cp 【源】【目的】
将源文件复制至目标文件,或将多个源文件复制至目标目录。
注意:命令行复制,如果目标文件已经存在会提示是否覆盖,而在 shell 脚本中,如果不加 -i 参数,则不会提示,而是直接覆盖!
-i 提示
-r 复制目录及目录内所有项目
-b 复制时如果覆盖已存在目标文件则将目标文件备份自动备份
-r 递归复制目录下的所有内容
-a 复制的文件与原文件时间一样
mv 【源】【目的】
-i 提示
-f 若目标存在则强制覆盖
-b 若目标存在则覆盖前备份
-v 显示文件移动信息
-i 提示
-f 强制删除文件/目录
-r/-R 递归处理,目录下的全部删除
-v 显示删除具体信息
用于在指定目录下查找符合匹配条件的文件
find pathname -options [-print -exec -ok ...]
pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。
-print: find命令将匹配的文件输出到标准输出。
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为’command’ { } ;,注意{ }和\;之间的空格。
-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
参数选项(可使用! -a -o连接多个可选控制参数分别代表非、与、或):
-name 按照文件名查找文件
-perm 按文件权限查找文件
-user 按文件属主查找文件
-group 按照文件所属的组来查找文件。
-type 查找某一类型的文件,诸如:
b - 块设备文件
d - 目录
c - 字符设备文件
l - 符号链接文件
p - 管道文件
f - 普通文件
-size n :[c] 查找文件长度为n块文件,带有c时表文件字节大小
-amin n 查找系统中最后N分钟访问的文件
-atime n 查找系统中最后n*24小时访问的文件
-cmin n 查找系统中最后N分钟被改变文件状态的文件
-ctime n 查找系统中最后n*24小时被改变文件状态的文件
-mmin n 查找系统中最后N分钟被改变文件数据的文件
-mtime n 查找系统中最后n*24小时被改变文件数据的文件
(用减号-来限定更改时间在距今n日以内的文件,而用加号+来限定更改时间在距今n日以前的文件。 )
-maxdepth n 最大查找目录深度
-prune 选项来指出需要忽略的目录。在使用-prune选项时要当心,因为如果你同时使用了-depth选项,那么-prune选项就会被find命令忽略
-newer 如果希望查找更改时间比某个文件新但比另一个文件旧的所有文件,可以使用-newer选项
实例:
(1)查找 48 小时内修改过的文件
find -atime -2
(2)在当前目录查找 以 .log 结尾的文件。 . 代表当前目录
find ./ -name '*.log'
(3)查找 /opt 目录下 权限为 777 的文件
find /opt -perm 777
(4)查找大于 1K 的文件
find -size +1000c
(5)查找等于 1000 字符的文件
find -size 1000c
(6)查找不是以.txt结尾的文件
find . ! -name "*.txt"
!代表非
(7)查找以x开头并小于13字节的文件
find . -name "x*" -a -size 13
-a 代表与
whereis 命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。whereis 及 locate 都是基于系统内建的数据库进行搜索,因此效率很高,而find则是遍历硬盘查找文件。
-b 定位可执行文件。
-m 定位帮助文件。
-s 定位源代码文件。
-u 搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件。
实例:
(1)查找 mv 程序相关文件
whereis mv
which 是在 PATH 就是指定的路径中,搜索某个系统命令的位置,并返回第一个搜索结果。使用 which 命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。
实例:
(1)查看 ls 命令是否存在,执行哪个
which ls
(2)查看 which
which which
(3)查看 cd
which cd(显示不存在,因为 cd 是内建命令,而 which 查找显示是 PATH 中的命令)
查看当前 PATH 配置:
echo $PATH
或使用 env 查看所有环境变量及对应值
cat 文件名
-b 对非空输出行号
-n 输出所有行号
-s 缩减空行,如果有两个及其以上空行则缩减为一个空行
功能类似于 cat, more 会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示。
+n 从笫 n 行开始显示
-n 定义屏幕大小为n行
+/pattern 在每个档案显示前搜寻该字串(pattern),然后从该字串前两行之后开始显示
-c 从顶部清屏,然后显示
-d 提示“Press space to continue,’q’ to quit(按空格键继续,按q键退出)”,禁用响铃功能
-l 忽略Ctrl+l(换页)字符
-p 通过清除窗口而不是滚屏来对文件进行换页,与-c选项相似
-s 把连续的多个空行显示为一行
-u 把文件内容中的下画线去掉
查看时的操作:
Enter 向下 n 行,需要定义。默认为 1 行
Ctrl+F 向下滚动一屏
空格键 向下滚动一屏
Ctrl+B 返回上一屏
= 输出当前行的行号
:f 输出文件名和当前行的行号
V 调用vi编辑器
!命令 调用Shell,并执行命令
q 退出more
less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。
grep 命令用于查找文件里符合条件的字符串。
grep 【参数】查找字符串 【文件/目录】
-A 显示行数
-n 显示匹配行及行号
-r/R 搜索整个目录树(递归)
如果查找多个字符串,查找字符串之间可以使用\隔开
既然是排序,那么文件必须遵循某一特定的格式,文件由多个域组成,每个域按照空格进行隔开,将按照每行的域进行排序
-f 排序时,将小写字母视为大写字母。
-d 排序时,处理英文字母、数字及空格字符外,忽略其他的字符。
-n 依照数值的大小排序。
-u 意味着是唯一的(unique),输出的结果是去完重了的。
-k【域索引】域索引是一个数字,代表每一行的第几个域,按照该域进行排序,索引从1开始
-m 将几个排序好的文件进行合并。
有两种方式,十进制数字表示法直接赋予相应权限
chmod 777 file
或者按照参数使用符号:
chmod 【参数】mode 【文件/目录]
mode : 权限设定字串,格式如下 :
[ugoa...][[+-=][rwxX]...][,...]
其中:
常用参数:
-v : 显示权限变更的详细资料
-R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)
压缩为gz格式的压缩文件,默认情况下是压缩,带参数-d则为解压缩
gzip 【参数】 文件/目录
-d或–decompress或----uncompress 解开压缩文件。
-v或–verbose 显示指令执行过程。
-r 压缩目录下的所有文件(递归)
tar是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件。
tar 【参数】包文件 待打包文件
-v或–verbose 显示指令执行过程。
-c 建立新的备份文件,即源文件(待打包文件)仍保存
-t 列出包文件里的内容
-f 指定备份文件名,后面跟着备份文件名
-x 解包文件,后面跟着解包文件名
-z 通过gzip指令处理备份文件。
-C 解包时解包到指定目录下,后面跟着指定目录
实例
压缩文件 非打包
# touch a.c
# tar -czvf test.tar.gz a.c //压缩 a.c文件为test.tar.gz
a.c
列出压缩文件内容
# tar -tzvf test.tar.gz
-rw-r--r-- root/root 0 2010-05-24 16:51:59 a.c
解压文件
# tar -xzvf test.tar.gz
a.c
ps命令用于显示当前进程 (process) 的状态。
ps 【参数】
使用ps显示的信息为:
pstree命令将所有进程以树状图显示,树状图将会以 pid (如果有指定) 或是以 init 这个基本行程为根 (root),如果有指定使用者 id,则树状图会只显示该使用者所拥有的进程。
pstree 【参数】
top命令用于实时显示 process 的动态。 每10s更新一次,按CPU使用率排序
kill命令用于删除执行中的程序或工作。
kill可将指定的信息送至程序。预设的信息为SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用SIGKILL(9)信息尝试强制删除程序。程序或工作的编号可利用ps指令或jobs指令查看。
也就是说,kill实际上是向进程发送一个信号,进程根据该信号进行相应处理,默认为15,强制删除为9
kill 【参数】进程号/程序名称
-l 列出所有可发送的信号
-l【数字】后面跟着一个数字代表向进程发送的信号
实例
杀死进程
# kill 12345
强制杀死进程
# kill -KILL 123456
在命令的后面加上&就代表后台运行命令,通常与nohup一起使用
command >out.file 2>&1 &
所有的标准输出和错误输出都将被重定向到一个叫做out.file 的文件中
2>&1 是将标准出错重定向到标准输出,这里的标准输出已经重定向到了out.file文件,即将标准出错也输出到out.file文件中。
通常与&一起使用,将命令放在后台并且不挂起。
当用户注销(logout)或者网络断开时,终端会收到 HUP(hangup)信号从而关闭其所有子进程。nohup 的用途就是让提交的命令忽略 hangup 信号。
nohup command > myout.file 2>&1 &
2>&1 是将标准出错重定向到标准输出,这里的标准输出已经重定向到了out.file文件,即将标准出错也输出到out.file文件中。
>与>>都是将原本送往显示器的输出送往其它地方(通常是文件),>会覆盖原有内容,>>则是追加原有内容
<与<<都是将从键盘的输入送往其它地方(通常是文件),<后面跟着文件名代表从文件中读取数据
<<的用法为< 输入的EOF之前的内容都输出到新文件newFile中 |用来连接多个命令,将一条命令的输出作为另一条命令的输入cat <<EOF >newFile
管道操作
管道操作符|