一、常用命令
1、fand命令的使用
#基本语法
find [PATH] [option] [action]
与时间有关的参数:
-mtime n # n为数字,意思为在n天之前的“一天内”被更改过的文件;
-mtime +n #列出在n天之前(不含n天本身)被修改过的文件;
-mtime -n # 列出在n天之内(含n天本身)被更改过的文件名;
eg:
find /root -mtime 0 # 查找今天之内被修改的文件
find -mtime 10
find -mtime +10
find -mtime -10
关于用户和用户组名有关的参数:
-user file01 #列出文件所有者为name的文件
-group group01 #列出文件所属用户组为name的文件
eg:
find /home/yhj -user yhj # 在目录/home/yhj中找出所有者为yhj的文件
与文件权限及名称有关的参数:
-name yhj #找出文件名为filename的文件
-size [+-]SIZE #找出比SIZE还要大(+)或小(-)的文件
-perm mode #查找文件权限等于mode的文件,mode用数字表示,如0755;
-perm -mode #查找文件权限必须要全部包括mode权限的文件,mode用数字表示
-perm +mode #查找文件权限包含任一mode的权限的文件,mode用数字表示
eg:
find / -name passwd # 查找文件名为passwd的文件
find . -perm 0755 # 查找当前目录中文件权限的0755的文件
find . -size +12k # 查找当前目录中大于12KB的文件,注意c表示byte
2、ls 命令
-a 显示所有文件及目录 (包括以“.”开头的隐藏文件)
-l 使用长格式列出文件及目录信息
-r 将文件以相反次序显示(默认依英文字母次序)
-t 根据最后的修改时间排序
-A 同 -a ,但不列出 “.” (当前目录) 及 “…” (父目录)
-S 根据文件大小排序
-R 递归列出所有子目录
-h 将档案容量以易读的方式(例如 GB, KB 等)列出来
–full-time 以完整时间模式 (包含年、月、日、时、分) 输出
3、cd命令
cd ~ #跳到自己的 home 目录
cd .. #返回上一层
cd - #返回上个打开的目录
4、tree
tree #显示所有
tree xxx #xxx为你指定的目录
5、cp 命令
-a :将文件和文件的属性一同复制
-p :将文件和文件的属性一同复制,而非使用默认方式,与-a相似,常用于备份
-i :若目标文件已经存在时,在覆盖时会先询问操作的进行
-r :递归持续复制,用于目录的复制行为
-u :目标文件与源文件有差异时才会复制
-f :若目标文件已存在,则会直接覆盖原文件
-l :对源文件建立硬连接,而非复制文件
-s :对源文件建立符号连接,而非复制文件
-v: 详细显示cp命令执行的操作过程
6、rm
-f :忽略不存在的文件,不会出现警告信息
-i :删除前会询问用户是否操作
-r :递归删除,最常用于目录删除,它是一个非常危险的参数
-v 显示指令的详细执行过程
7、mv命令作用为移动文件:
-f :覆盖已有文件时,不进行任何提示
-i :若存在同名文件,则向用户询问是否覆盖
-u :当源文件比目标文件新,或者目标文件不存在时,才执行移动此操作
-b :当文件存在时,覆盖前为其创建一个备份
8、pwd
pwd # 显示出当前所在路径
9、tar压缩解压:
-c :打包文件
-t :查看打包文件的内容含有哪些文件名
-x :解打包或解压缩的功能,可以搭配-C(大写)指定解压的目录,注意-c,-t,-x不能同时出现在同一条命令中
-j :通过bzip2的支持进行压缩/解压缩
-z :通过gzip的支持进行压缩/解压缩
-v :在压缩/解压缩过程中,将正在处理的文件名显示出来
-f filename :filename为要处理的文件
-C dir :指定压缩/解压缩的目录dir
eg:
#压缩:
tar -jcv -f filename.tar.bz2 #要被处理的文件或目录名称
#查询:
tar -jtv -f filename.tar.bz2
#解压:
tar -jxv -f filename.tar.bz2 -C #欲解压缩的目录
10、mkdir 创建目录:
-p 递归创建多级目录
-m 建立目录的同时设置目录的权限
-z 设置安全上下文
-v 显示目录的创建过程
11、rmdir 删除目录:
-p 用递归的方式删除指定的目录路径中的所有父级目录,非空则报错
– -- ignore-fail-on-non-empty 忽略由于删除非空目录时导致命令出错而产生的错误信息
-v 显示命令的详细执行过程
– -- help 显示命令的帮助信息
– -- version 显示命令的版本信息
12、gzip 命令压缩文件或文件夹为 .gz文件
二、进程相关命令
13、ps 命令显示运行的进程:
注:还会显示进程的一些信息如pid, cpu和内存使用情况等
-A :所有的进程均显示出来
-a :不与terminal有关的所有进程
-u :有效用户的相关进程
-x :一般与a参数一起使用,可列出较完整的信息
-l :较长,较详细地将PID的信息列出
eg:
ps -aux
14、kill 命令用于终止进程
kill -signal PID
signal 的相关参数
HUP 1 终端断线
INT 2 中断(同 Ctrl + C)
QUIT 3 退出(同 Ctrl + \)
TERM 15 终止
KILL 9 强制终止
CONT 18 继续(与STOP相反, fg/bg命令)
STOP 19 暂停(同 Ctrl + Z)
eg:
kill -9 22 #关掉Pid为22的进程
#注:进程pid可以用ps命令查询
15、 killall 命令和参数:
killall [-iIe] [command name]
-i :交互式的意思,若需要删除时,会询问用户
-I :命令名称忽略大小写
关于killall的更多:https://www.cnblogs.com/machangwei-8/p/10391585.html
16、crontab命令是启动linux定时任务的服务
service cron start # 启动cronjob
service cron stop # 停止cronjob
service cron restart # 重启cronjob
crontab -e # 编辑cronjob任务
更多关于shell和定时任务:
https://blog.csdn.net/weixin_44432032/article/details/116903694
https://blog.csdn.net/weixin_44432032/article/details/112547642
https://blog.csdn.net/weixin_44432032/article/details/120634307
17、free 命令用于显示Linux系统中空闲的、已用的物理内存及swap内存,及被内核使用的buffer:
free [参数]
free -b #以Byte显示内存的使用情况。
free -k #以KB显示内存的使用情况。
free -m #以MB显示内存的使用情况。
free -g #以GB显示内存的使用情况。
free -o #不显示缓冲区调节列。
free -s <间隔秒数> #持续观察内存使用状况。
free -t #显示内存总和。
free -V #显示版本信息。
18、top 命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器:
top [参数]
top -b #批处理
top -c #显示完整的治命令
top -I #忽略失效过程
top -s #保密模式
top -S #累积模式
top -i<时间> #设置间隔时间
top -u<用户名> #指定用户名
top -p<进程号> #指定进程
top -n<次数> #循环显示的次数
eg:
top -bc -n 1
三、权限相关命令:
19、chmod命令:
chmod [-R] xyz 文件或目录
chmod -R 0755 file #进行递归的持续更改,即连同子目录下的所有文件都会更改
#同时,chmod还可以使用u(user)、g(group)、o(other)、a(all)和+(加入)、-(删除)、=(设置)跟rwx搭配来对文件的权限进行更改,编号是各种权限的数字代码,示例:
chmod 0755 file # 把file的文件权限改变为-rxwr-xr-x
chmod g+w file # 向file的文件权限中加入用户组可写权限
20、chown命令改变文件所有者:
#语法
chown [-cfhvR] [--help] [--version] user[:group] file...
user : 新的文件拥有者的使用者 ID
group : 新的文件拥有者的使用者组(group)
-c : 显示更改的部分的信息
-f : 忽略错误信息
-h :修复符号链接
-v : 显示详细的处理信息
-R : 处理指定目录以及其子目录下的所有文件
–help : 显示辅助说明
–version : 显示版本
EG:
把 /var/run/httpd.pid 的所有者设置 root:
chown root /var/run/httpd.pid
将文件 file1.txt 的拥有者设为 runoob,群体的使用者 runoobgroup :
chown runoob:runoobgroup file1.txt
将当前前目录下的所有文件与子目录的拥有者皆设为 runoob,群体的使用者 runoobgroup:
chown -R runoob:runoobgroup *
把 /home/runoob 的关联组设置为 512 (关联组ID),不改变所有者:
chown :512 /home/runoob
21、chgrp命令,改变文件所属组:
#语法:
chgrp [-cfhRv][--help][--version][所属群组][文件或目录...] 或 chgrp [-cfhRv][--help][--reference=<参考文件或目录>][--version][文件或目录...]
-c 或 --changes:效果类似"-v"参数,但仅回报更改的部分。
-f 或 --quiet 或 --silent: 不显示错误信息。
-h 或 --no-dereference: 只对符号连接的文件作修改,而不改动其他任何相关文件。
-R 或 --recursive: 递归处理,将指定目录下的所有文件及子目录一并处理。
-v 或 --verbose: 显示指令执行过程。
–help: 在线帮助。
–reference=<参考文件或目录>: 把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同。
–version: 显示版本信息。
eg:
实例1:改变文件的群组属性:
chgrp -v bin log2012.log
输出:
[root@localhost yhj]# ll
drwsrwsrwt. 2 root root 24 Dec 2 09:22 ceshi01
[root@localhost yhj]# chgrp -v yhj ceshi01/
changed group of 'ceshi01/' from root to yhj
[root@localhost yhj]# ll
drwsrwsrwt. 2 root yhj 24 Dec 2 09:22 ceshi01 #"ceshi01" 的所属组已更改为 yhj
22、useradd 命令建立用户账号:
语法:
useradd [-mMnr][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-s <shell>][-u <uid>][用户帐号]
#或
useradd -D [-b][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-s <shell>]
-c<备注> 加上备注文字。备注文字会保存在passwd的备注栏位中。
-d<登入目录> 指定用户登入时的起始目录。
-D 变更预设值.
-e<有效期限> 指定帐号的有效期限。
-f<缓冲天数> 指定在密码过期后多少天即关闭该帐号。
-g<群组> 指定用户所属的群组。
-G<群组> 指定用户所属的附加群组。
-m 自动建立用户的登入目录。
-M 不要自动建立用户的登入目录。
-n 取消建立以用户名称为名的群组.
-r 建立系统帐号。
-s 指定用户登入后所使用的shell。
-u 指定用户ID。
eg:
实例
添加一般用户
useradd tt
为添加的用户指定相应的用户组
useradd -g root tt
创建一个系统用户
useradd -r tt
为新添加的用户指定home目录
useradd -d /home/myd tt
建立用户且制定ID
useradd caojh -u 544
23、usermod
#语法
usermod [-LU][-c <备注>][-d <登入目录>][-e <有效期限>][-f <缓冲天数>][-g <群组>][-G <群组>][-l <帐号名称>][-s <shell>][-u <uid>][用户帐号]
-c<备注> 修改用户帐号的备注文字。
-d登入目录> 修改用户登入时的目录。
-e<有效期限> 修改帐号的有效期限。
-f<缓冲天数> 修改在密码过期后多少天即关闭该帐号。
-g<群组> 修改用户所属的群组。
-G<群组> 修改用户所属的附加群组。
-l<帐号名称> 修改用户帐号名称。
-L 锁定用户密码,使密码无效。
-s 修改用户登入后所使用的shell。
-u 修改用户ID。
-U 解除密码锁定。
eg:
更改登录目录
usermod -d /home/hnlinux root
改变用户的uid
usermod -u 777 root
24、userdel命令用于删除用户帐号
#语法
userdel [-r][用户帐号]
25、groupadd 命令
相关文件:
/etc/group 组账户信息。
/etc/gshadow 安全组账户信息。
/etc/login.defs Shadow密码套件配置。
#语法:
groupadd [-g gid [-o]] [-r] [-f] group
-g:指定新建工作组的 id;
-r:创建系统工作组,系统工作组的组ID小于 500;
-K:覆盖配置文件 “/ect/login.defs”;
-o:允许添加组 ID 号不唯一的工作组。
-f,–force: 如果指定的组已经存在,此选项将失明了仅以成功状态退出。当与 -g 一起使用,并且指定的GID_MIN已经存在时,选择另一个唯一的GID(即-g关闭)。
eg:
#创建一个新的组,并添加组 ID。
groupadd -g 344 runoob
26、groupdel 命令删除组
# 用于删除不再需要的组,如果指定的组中包含用户,则必须先删除组里面的用户>以后,才能删除组
groupdel [options] GROUP
eg:
#删除一个群组
groupdel hnuser
27、sudo 用来以其他身份来执行命令,预设的身份为root:
28、passwd命令
#语法:
passwd [-k] [-l] [-u [-f]] [-d] [-S] [username]
-d 删除密码
-f 强迫用户下次登录时必须修改口令
-w 口令要到期提前警告的天数
-k 更新只能发送在过期之后
-l 停止账号使用
-S 显示密码信息
-u 启用已被停止的账户
-x 指定口令最长存活期
-g 修改群组密码
-i 口令过期后多少天停用账户
–help 显示帮助信息
–version 显示版本信息
eg:
修改用户密码
# passwd yhj//设置yhj用户的密码
Enter new UNIX password: //输入新密码,输入的密码无回显
Retype new UNIX password: //确认密码
passwd: password updated successfully
#
显示账号密码信息
# passwd -S yhj
yhj P 05/13/2010 0 99999 7 -1
删除用户密码
# passwd -d lx138
passwd: password expiry information changed.
29、groups 显示用户所属组:
groups # 默认显示当前用户的组
groups hadoop2 # 显示hadoop2用户的组
四. 文本查看编辑等命令
30、vi/vim 是使用vi编辑器的命令:
vi /var/log/aa.log # 打开 /var/log/aa.log文件并编辑
31、cat命令
#语法
cat [-AbeEnstTuv] [--help] [--version] fileName
-n 或 --number:由 1 开始对所有输出的行数编号。
-b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号。
-s 或 --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。
-v 或 --show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。
-E 或 --show-ends : 在每行结束处显示 $。
-T 或 --show-tabs: 将 TAB 字符显示为 ^I。
-A, --show-all:等价于 -vET。
-e:等价于"-vE"选项;
-t:等价于"-vT"选项;
eg:
#把 textfile1 的文档内容加上行号后输入 textfile2 这个文档里:
cat -n textfile1 > textfile2
#把 textfile1 和 textfile2 的文档内容加上行号(空白行不加)之后将内容附加到 textfile3 文档里:
cat -b textfile1 textfile2 >> textfile3
#清空 /etc/test.txt 文档内容:
cat /dev/null > /etc/test.txt
#cat 也可以用来制作镜像文件。例如要制作软盘的镜像文件,将软盘放好后输入:
cat /dev/fd0 > OUTFILE
#相反的,如果想把 image file 写到软盘,输入:
cat IMG_FILE > /dev/fd0
32、more
#语法
more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..]
more 命令类似 cat ,不过会以一页一页的形式显示,更方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi 相似)
-num 一次显示的行数
-d 提示使用者,在画面下方显示 [Press space to continue, ‘q’ to quit.] ,如果使用者按错键,则会显示 [Press ‘h’ for instructions.] 而不是 ‘哔’ 声
-l 取消遇见特殊字元 ^L(送纸字元)时会暂停的功能
-f 计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上)
-p 不以卷动的方式显示每一页,而是先清除萤幕后再显示内容
-c 跟 -p 相似,不同的是先显示内容再清除其他旧资料
-s 当遇到有连续两行以上的空白行,就代换为一行的空白行
-u 不显示下引号 (根据环境变数 TERM 指定的 terminal 而有所不同)
+/pattern 在每个文档显示前搜寻该字串(pattern),然后从该字串之后开始显示
+num 从第 num 行开始显示
fileNames 欲显示内容的文档,可为复数个数
eg:
#逐页显示 testfile 文档内容,如有连续两行以上空白行则以一行空白行显示。
more -s testfile
#从第 20 行开始显示 testfile 之文档内容。
more +20 testfile
常用操作命令
Enter 向下n行,需要定义。默认为1行
Ctrl+F 向下滚动一屏
空格键 向下滚动一屏
Ctrl+B 返回上一屏
= 输出当前行的行号
:f 输出文件名和当前行的行号
V 调用vi编辑器
!命令 调用Shell,并执行命令
q 退出more
33、less
#语法
less [参数] 文件
less 与 more 类似,less 可以随意浏览文件,支持翻页和搜索,支持向上翻页和向下翻页。
-b <缓冲区大小> 设置缓冲区的大小
-e 当文件显示结束后,自动离开
-f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
-g 只标志最后搜索的关键词
-i 忽略搜索时的大小写
-m 显示类似more命令的百分比
-N 显示每行的行号
-o <文件名> 将less 输出的内容在指定文件中保存起来
-Q 不使用警告音
-s 显示连续空行为一行
-S 行过长时间将超出部分舍弃
-x <数字> 将"tab"键显示为规定的数字空格
/字符串:向下搜索"字符串"的功能
?字符串:向上搜索"字符串"的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
b 向上翻一页
d 向后翻半页
h 显示帮助界面
Q 退出less 命令
u 向前滚动半页
y 向前滚动一行
空格键 滚动一页
回车键 滚动一行
[pagedown]: 向下翻动一页
[pageup]: 向上翻动一页
eg:
#ps查看进程信息并通过less分页显示
ps -ef |less
#查看命令历史使用记录并通过less分页显示
history | less
#浏览多个文件
less log2013.log log2014.log
附加备注
1.全屏导航
ctrl + F - 向前移动一屏
ctrl + B - 向后移动一屏
ctrl + D - 向前移动半屏
ctrl + U - 向后移动半屏
2.单行导航
j - 下一行
k - 上一行
3.其它导航
G - 移动到最后一行
g - 移动到第一行
q / ZZ - 退出 less 命令
34、tail
tail 命令可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件
#格式:
tail [参数] [文件]
参数:
-f 循环读取
-q 不显示处理信息
-v 显示详细的处理信息
-c<数目> 显示的字节数
-n<行数> 显示文件的尾部 n 行内容
--pid=PID 与-f合用,表示在进程ID,PID死掉之后结束
-q, --quiet, --silent 从不输出给出文件名的首部
-s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒
eg:
#要显示 notes.log 文件的最后 10 行,请输入以下命令:
tail notes.log # 默认显示最后 10 行
#要跟踪名为 notes.log 的文件的增长情况,请输入以下命令:
tail -f notes.log
#此命令显示 notes.log 文件的最后 10 行。当将某些行添加至 notes.log 文件时,tail 命令会继续显示这些行。 显示一直继续,直到您按下(Ctrl-C)组合键停止显示。
#显示文件 notes.log 的内容,从第 20 行至文件末尾:
tail -n +20 notes.log
#显示文件 notes.log 的最后 10 个字符:
tail -c 10 notes.log
35、head 命令
#语法:
head [参数] [文件]
head 命令可用于查看文件的开头部分的内容,有一个常用的参数 -n 用于显示行数,默认为 10,即显示 10 行的内容。
参数:
-q 隐藏文件名
-v 显示文件名
-c<数目> 显示的字节数。
-n<行数> 显示的行数。
eg:
#要显示 runoob_notes.log 文件的开头 10 行,请输入以下命令:
head runoob_notes.log
#显示 notes.log 文件的开头 5 行,请输入以下命令:
head -n 5 runoob_notes.log
#显示文件前 20 个字节:
head -c 20 runoob_notes.log
36、diff 命令用于比较两个文件或目录的不同
更多参数:https://www.runoob.com/linux/linux-comm-diff.html
eg:
#比较两个文件
[root@localhost test3]# diff log2014.log log2013.log
#并排格式输出
[root@localhost test3]# diff log2014.log log2013.log -y -W 50
[root@localhost test3]# diff log2013.log log2014.log -y -W 50
网络相关命令:
37、ping 用于确定主机与外部连接状态:
38、ssh 命令用于远程登录上Linux主机:
ssh [-l login_name] [-p port] [user@]hostname
39、scp
scp 是 secure copy 的缩写, scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。
scp 是加密的,rcp 是不加密的,scp 是 rcp 的加强版。
#语法
scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
[-l limit] [-o ssh_option] [-P port] [-S program]
[[user@]host1:]file1 [...] [[user@]host2:]file2
#简易写法:
scp [可选参数] file_source file_target
参数说明:
-1: 强制scp命令使用协议ssh1
-2: 强制scp命令使用协议ssh2
-4: 强制scp命令只使用IPv4寻址
-6: 强制scp命令只使用IPv6寻址
-B: 使用批处理模式(传输过程中不询问传输口令或短语)
-C: 允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
-p:保留原文件的修改时间,访问时间和访问权限。
-q: 不显示传输进度条。
-r: 递归复制整个目录。
-v:详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题。
-c cipher: 以cipher将数据传输进行加密,这个选项将直接传递给ssh。
-F ssh_config: 指定一个替代的ssh配置文件,此参数直接传递给ssh。
-i identity_file: 从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh。
-l limit: 限定用户所能使用的带宽,以Kbit/s为单位。
-o ssh_option: 如果习惯于使用ssh_config(5)中的参数传递方式,
-P port:注意是大写的P, port是指定数据传输用到的端口号
-S program: 指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项。
eg:
实例
1、从本地复制到远程
命令格式:
scp local_file remote_username@remote_ip:remote_folder
#或者
scp local_file remote_username@remote_ip:remote_file
#或者
scp local_file remote_ip:remote_folder
#或者
scp local_file remote_ip:remote_file
第1,2个指定了用户名,命令执行后需要再输入密码,第1个仅指定了远程的目录,文件名字不变,第2个指定了文件名;
第3,4个没有指定用户名,命令执行后需要输入用户名和密码,第3个仅指定了远程的目录,文件名字不变,第4个指定了文件名;
应用实例:
scp /home/space/music/1.mp3 root@www.runoob.com:/home/root/others/music
scp /home/space/music/1.mp3 root@www.runoob.com:/home/root/others/music/001.mp3
scp /home/space/music/1.mp3 www.runoob.com:/home/root/others/music
scp /home/space/music/1.mp3 www.runoob.com:/home/root/others/music/001.mp3
复制目录命令格式:
scp -r local_folder remote_username@remote_ip:remote_folder
#或者
scp -r local_folder remote_ip:remote_folder
第1个指定了用户名,命令执行后需要再输入密码;
第2个没有指定用户名,命令执行后需要输入用户名和密码;
应用实例:
scp -r /home/space/music/ root@www.runoob.com:/home/root/others/
scp -r /home/space/music/ www.runoob.com:/home/root/others/
上面命令将本地 music 目录复制到远程 others 目录下。
2、从远程复制到本地
从远程复制到本地,只要将从本地复制到远程的命令的后2个参数调换顺序即可,如下实例
应用实例:
scp root@www.runoob.com:/home/root/others/music /home/space/music/1.mp3
scp -r www.runoob.com:/home/root/others/ /home/space/music/
40、 telnet命令用于远端登入
41、wget 是从远程下载的工具
#语法:
wget [参数] [URL地址]
42、ifconfig命令用于显示或设置网络设备。
更多请参考:https://www.runoob.com/linux/linux-comm-ifconfig.html
43、grep
grep 命令用于查找文件里符合条件的字符串。
grep 指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep 指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为 -,则 grep 指令会从标准输入设备读取数据。
更多请参考:https://www.runoob.com/linux/linux-comm-grep.html
44、ln 命令
#语法
ln [参数][源文件或目录][目标文件或目录]
#参数的格式为
[-bdfinsvF] [-S backup-suffix] [-V {numbered,existing,simple}]
[--help] [--version] [--]
命令功能 :
Linux文件系统中,有所谓的链接(link),我们可以将其视为档案的别名,而链接又可分为两种 : 硬链接(hard link)与软链接(symbolic link),硬链接的意思是一个档案可以有多个名称,而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬链接是存在同一个文件系统中,而软链接却可以跨越不同的文件系统。
不论是硬链接或软链接都不会将原本的档案复制一份,只会占用非常少量的磁碟空间。
软链接:
1.软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式
2.软链接可以 跨文件系统 ,硬链接不可以
3.软链接可以对一个不存在的文件名进行链接
4.软链接可以对目录进行链接
硬链接:
1.硬链接,以文件副本的形式存在。但不占用实际空间。
2.不允许给目录创建硬链接
3.硬链接只有在同一个文件系统中才能创建
必要参数:
-b 删除,覆盖以前建立的链接
-d 允许超级用户制作目录的硬链接
-f 强制执行
-i 交互模式,文件存在则提示用户是否覆盖
-n 把符号链接视为一般目录
-s 软链接(符号链接)
-v 显示详细的处理过程
选择参数:
-S "-S<字尾备份字符串> "或 "--suffix=<字尾备份字符串>"
-V "-V<备份方式>"或"--version-control=<备份方式>"
--help 显示帮助信息
--version 显示版本信息
eg:
#给文件创建软链接,为log2013.log文件创建软链接link2013,如果log2013.log丢失,link2013将失效:
ln -s log2013.log link2013
输出:
[root@localhost test]# ll
-rw-r--r-- 1 root bin 61 11-13 06:03 log2013.log
[root@localhost test]# ln -s log2013.log link2013
[root@localhost test]# ll
lrwxrwxrwx 1 root root 11 12-07 16:01 link2013 -> log2013.log
-rw-r--r-- 1 root bin 61 11-13 06:03 log2013.log
#给文件创建硬链接,为log2013.log创建硬链接ln2013,log2013.log与ln2013的各项属性相同
ln log2013.log ln2013
输出:
[root@localhost test]# ll
lrwxrwxrwx 1 root root 11 12-07 16:01 link2013 -> log2013.log
-rw-r--r-- 1 root bin 61 11-13 06:03 log2013.log
[root@localhost test]# ln log2013.log ln2013
[root@localhost test]# ll
lrwxrwxrwx 1 root root 11 12-07 16:01 link2013 -> log2013.log
-rw-r--r-- 2 root bin 61 11-13 06:03 ln2013
-rw-r--r-- 2 root bin 61 11-13 06:03 log2013.log