学习目标:
一、which 命令
二、find命令
三、type命令
四、查看文件内容
学习内容:
一、which命令
作用:查找用户所执行的命令文件存放的目录
查看用户的PATH变量,命令的搜索路径 : echo
P
A
T
H
c
p
‘
w
h
i
c
h
v
i
m
‘
/
t
m
p
/
v
i
m
2
:
用
c
p
命
令
复
制
v
i
m
的
绝
对
路
径
到
t
m
p
下
的
v
i
m
2
(
改
名
过
的
)
/
t
m
p
/
v
i
m
2
/
e
t
c
/
p
a
s
s
w
d
绝
对
路
径
才
可
执
行
添
加
路
径
到
P
A
T
H
1.
临
时
修
改
P
A
T
H
值
P
A
T
H
=
PATH cp `which vim` /tmp/vim2 :用cp命令复制vim的绝对路径到tmp下的vim2(改名过的) /tmp/vim2 /etc/passwd 绝对路径才可执行 添加路径到PATH 1.临时修改PATH值 PATH=
PATHcp‘whichvim‘/tmp/vim2:用cp命令复制vim的绝对路径到tmp下的vim2(改名过的)/tmp/vim2/etc/passwd绝对路径才可执行添加路径到PATH1.临时修改PATH值PATH=PATH:/tmp //$PATH: 保留变量原有值
echo $PATH
/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin:/tmp
2.永久修改PATH值 工作中一定会用的
/etc/profile //全局配置文件, 对所有用户生效
~username/.bash_profile //局部配置文件, 只对特定用户生效
vim /root/.bash_profile
PATH=
P
A
T
H
:
PATH:
PATH:HOME/bin:/tmp
上述文件不是即时生效的, 正常情况下, 它是用户登录时执行的。
source /root/.bash_profile //重新读取配置文件,使修改生效
echo $PATH
/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin:/root/bin:/tmp
which ls
alias ls=‘ls --color=auto’
/bin/ls
which vim
/usr/bin/vim
二、find命令
find查找用于根据与参数匹配的文件指定的条件来搜索和查找文件和目录列表的命令。
语法:
find pathname -option [-print ] [ -exec | -ok command ] {} ;
find命令的参数;
pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。
-print: find命令将匹配的文件输出到标准输出。
-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为command { } ;,注意{ }和\;之间的空格。
-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。
find
1)按照名称查找文件的基本查找命令
-name filename //查找名为filename的文件。
-iname filename //与-name相同,查找名为filename的文件,但忽略大小写,即不区分大小写
2)按照文件类型查找
-type加以下参数
b - 块设备文件。
d - 目录。
c - 字符设备文件。
p - 管道文件。
l - 符号链接文件。
f - 普通文件。
s - socket文件
3)根据日期和时间查找文件和目录
-mtime -n +n #按文件更改时间来查找文件,-n指n天以内,+n指n天以前 (常用)
-atime -n +n #按文件访问时间来查,-n指n天以内,+n指n天以前
-ctime -n +n #按文件创建时间来查找文件,-n指n天以内,+n指n天以前
-mmin -n +n #按文件更改时间来查找文件,-n指n分钟以内,+n指n分钟以前 (常用)
-amin -n +n #按文件访问时间来查,-n指n分钟以内,+n指n分钟以前
-cmin -n +n #按文件创建时间来查找文件,-n指n分钟以内,+n指n分钟以前
4)根据大小查找文件
-size [+/-]n
按照文件大小查询文件,+n表示文件大小大于n,-n表示文件大小小于n。常用单位:k, M, G
5)find 命令默认会递归查找整个目录树,而这非常消耗时间和资源。好在目录查找的深度可以手动指定
-maxdepth 2 -name “.php"
查找一到两层以内的子目录
-maxdepth 2 -name ".php”
至少到达第 N 层子目录后才开始查找文件。
6)反向查找
-not和!(查询效果一样)
格式举例:find ./test “! 或者 -not”
-name “*.php”
7)a和o的运用
当我们使用多个查找条件时, find 命令会将它们通过 AND 操作符(-a)结合起来,也就是说,只有满足所有条件的文件才会被列出。
如果我们需要进行基于 OR 运算的查找时,可以加上 -o开关
a:并且(两者都)
o:或者
三、type命令
概念:type命令主要用于区分一个命令到底是shell自带的还是外部独立的二进制文件提供的。
shell自带的则会提示此命令为shell buildin,否则会列出命令的位置
例子:
type cd显示cd为shell buildin命令。
ssh不是shell自带命令,用type时会显示ssh的路径。
四、查看文件内容
1)cat命令,显示文件的内容
-n:文件中每一行都会显示行号。
2)nl命令,将指定的文件添加行号标注后写到标准输出。如果不指定文件或指定文件为"-" ,程序将从标准输入读取数据
-b :指定行号指定的方式,主要有两种
-b a :表示不论是否为空行,也同样列出行号(类似 cat -n)
-b t :如果有空行,空的那一行不要列出行号(默认值)
3)more和less命令,分页查看文件内容
more命令使用方法:
使用“more”命令查看超过一屏的文件内容时,将进行分屏显示,并在下面的左下角显示当前内容在这个文件中的百分比,在阅读时可以按Enter键向下滚动查看,按Space键可以向下翻一屏,按“q”键退出并返回原来的命令环境
less命令使用方法:
less命令使用方法与more命令基本类似,但是比more更好的是,less命令可以结合管道符“|”分屏查看执行命令时输出的信息时,既可以向下翻页也可以向上翻页,而“more”命令只能向下翻页,不能向上翻页
补充:“管道(|)”:每一个命令都有输入输出,把前一个命令的输出当做第二个命令的输入,一个命令的输入可以从文件中读取,也可以从前一个命令的结果中读
4)head和tail命令,查看文件开头或末尾的部分内容
head命令显示文本开头默认10行 “-n”选项指定需要显示多少行的内容
tail命令默认显示文本末尾10行,此命令一般适用于查看日志文件(因为较新的日志记录总是添加到文件最后),这时候需要配合“-f”选项跟踪文件尾部内容的动态更新,便于实时监控文件内容的变化。tail -f=tailf
总结:
基础命令需多加记忆
一起加油!
转自讲师陈老师的讲课文档