ToB企服应用市场:ToB评测及商务社交产业平台
标题:
Linux底子下令的介绍及利用
[打印本页]
作者:
郭卫东
时间:
2024-8-27 09:49
标题:
Linux底子下令的介绍及利用
目录
1.环境介绍
2.常用的下令汇总:
文件和目录操纵
网络
体系管理
权限和所有权
压缩息争压缩
备份
安全和权限
脚本和主动化
帮助和文档
3.底子的下令参数
ls {显示目录内容列表} 下令参数详解:
cp {将源文件或目录复制到目标文件或目录中}下令参数详解:
mv{用来对文件或目录重新命名,大概移动目录、文件}下令参数详解:
find{在指定目录下查找文件}下令参数详解:
1.环境介绍
体系::centos7
毗连终端::WindTerm
2.常用的下令汇总:
在Linux体系中常用的下令可以大致分为已下的几个类别:
文件和目录操纵
ls
:列出目录内容。
cd
:改变当前目录。
pwd
:显示当前工作目录。
mkdir
:创建新目录。
rmdir
:删除空目录。
touch
:创建新文件或修改文件时间戳。
cp
:复制文件或目录。
mv
:移动或重命名文件或目录。
rm
:删除文件或目录。
find
:在文件体系中搜刮文件。
文本处理
cat
:检察文件内容。
echo
:打印文本到标准输出。
grep
:搜刮文本并打印匹配行。
sed
:流编辑器,用于文本更换。
awk
:文本处理工具,用于模式扫描和处理。
磁盘和文件体系
df
:显示磁盘空间利用情况。
du
:显示文件和目录的磁盘利用情况。
fdisk
:磁盘分区工具。
mkfs
:创建文件体系。
mount
:挂载文件体系。
umount
:卸载文件体系。
网络
ping
:测试网络毗连。
ifconfig
(或
ip addr
):检察和配置网络接口。
netstat
:显示网络状态和统计信息。
ssh
:安全外壳协议,用于远程登录。
scp
:安全复制文件。
wget
:从网络下载文件。
体系管理
top
:显示体系资源利用情况。
htop
:更高级的体系监控工具。
ps
:显示当前进程状态。
kill
:发送信号给进程。
systemctl
:管理体系服务和资源。
crontab
:定时使命调度。
权限和所有权
chmod
:更改文件或目录的权限。
chown
:更改文件或目录的所有者。
chgrp
:更改文件或目录的组。
压缩息争压缩
tar
:打包息争包文件。
gzip
:压缩或解压文件。
gunzip
:解压gzip压缩的文件。
zip
:压缩文件。
unzip
:解压zip文件。
备份
dd
:数据复制和转换。
rsync
:文件复制和同步。
安全和权限
su
:切换用户。
sudo
:以另一个用户的权限执行下令。
chmod
:更改文件权限。
chown
:更改文件所有者。
脚本和主动化
bash
:运行Bash脚本。
sh
:运行Shell脚本。
source
:执行脚本中的下令。
帮助和文档
man
:检察下令的手册页。
info
:检察下令的在线文档。
--help
:显示下令的帮助信息。
3.底子的下令参数
以下介绍的是一些常用下令的具体参数以及一些实例::ls cp mv find
ls {显示目录内容列表} 下令参数详解:
-C
# 多列输出,纵向排序。
-F
# 每个目录名加 "/" 后缀,每个 FIFO 名加 "|" 后缀, 每个可运行名加“ * ”后缀。
-R
# 递归列出遇到的子目录。
-a
# 列出所有文件,包罗以 "." 开头的隐含文件。
-c
# 利用“状态改变时间”取代“文件修改时间”为依据来排序(利用“-t”选项时)或列出(利用“-l”选项时)。
-d
# 将目录名像其它文件一样列出,而不是列出它们的内容。
-i
# 输出文件前先输出文件系列号(即 i 节点号: i-node number)。
-q
# 将文件名中的非打印字符输出为问号。(对于到终端的输出这是缺省的。)
-r
# 逆序排列。
-t
# 按时间信息排序。
-u
# 利用近来访问时间取代近来修改时间为依据来排序(利用“-t”选项时)或列出(利用“-l”选项时)。
-1
# 单列输出。
-a
, --all # 列出目录中所有文件,包罗以“.”开头的文件。
-b
, --escape # 把文件名中不可输出的字符用反斜杠加字符编号(就像在 C 语言里一样)的形式出。
-c
, --time=ctime, --time=status
# 按文件状态改变时间(i节点中的ctime)排序并输出目录内
# 容。如接纳长格式输出(选项“-l”),利用文件的状态改
# 变时间取代文件修改时间。【译注:所谓文件状态改变(i节
# 点中以ctime标记),既包罗文件被修改,又包罗文件属性( 如所有者、组、链接数等等)的变化】
-d
, --directory # 将目录名像其它文件一样列出,而不是列出它们的内容。
-f
# 不排序目录内容;按它们在磁盘上存储的顺序列出。同时启 动“ -a ”选项,如果在“ -f ”之前存在“ -l”、-g # 忽略,为兼容UNIX用。
-m
, --format=commas
# 水平列出文件,每行尽大概多,相互用逗号和一个空格分隔。
-n
, --numeric-uid-gid
# 列出数字化的 UID 和 GID 而不是用户名和组名。
-o
# 以长格式列出目录内容,但是不显示组信息。等于利用“ --format=long --no-group
# ”选项。提供此选项是为了与其它版本的 ls 兼容。
-p
# 在每个文件名后附上一个字符以阐明该文件的范例。类似“ -F ”选项但是不 标示可执行文件。
-q
, --hide-control-chars
# 用问号取代文件名中非打印的字符。这是缺省选项。
-r
, --reverse
# 逆序排列目录内容。
-s
, --size
# 在每个文件名左侧输出该文件的巨细,以 1024 字节的块为单元。如果设置了 POSIXLY_CORRECT
# 的环境变量,除非用“ -k ”选项,块巨细是 512 字节。
-t
, --sort=time
# 按文件近来修改时间( i 节点中的 mtime )而不是按文件名字典序排序,新文件 靠前。
-u
, --time=atime, --time=access, --time=use
# 类似选项“ -t ”,但是用文件近来访问时间( i 节点中的 atime )取代文件修
# 改时间。如果利用长格式列出,打印的时间是近来访问时间。
-w
, --width cols
# 假定屏幕宽度是 cols ( cols 以现实数字取代)列。如未用此选项,缺省值是这
# 样得到的:如大概先尝试取自终端驱动,否则尝试取自环境变量 COLUMNS (如果设
# 置了的话),都不行则取 80 。
-x
, --format=across, --format=horizontal
# 多列输出,横向排序。
-A
, --almost-all
# 显示除 "." 和 ".." 外的所有文件。
-B
, --ignore-backups
# 不输出以“ ~ ”末了的备份文件,除非已经在下令行中给出。
-C
, --format=vertical
# 多列输出,纵向排序。当标准输出是终端时这是缺省项。利用下令名 dir 和 d 时, 则总是缺省的。
-L
, --dereference
# 列出符号链接指向的文件的信息,而不是符号链接自己。
-N
, --literal
# 不要用引号引起文件名。
-Q
, --quote-name
# 用双引号引起文件名,非打印字符以 C 语言的方法表现。
-R
, --recursive
# 递归列出全部目录的内容。
-S
, --sort=size
# 按文件巨细而不是字典序排序目录内容,大文件靠前。
-T
, --tabsize cols
# 假定每个制表符宽度是 cols 。缺省为 8。为求效率, ls 大概在输出中利用制表符。 若 cols 为0,则倒霉用制表符。
-U
, --sort=none
# 不排序目录内容;按它们在磁盘上存储的顺序列出。(选项“-U”和“-f”的不
# 同是前者不启动或禁止相关的选项。)这在列很大的目录时特别有效,因为不加排序
# 能显著地加快速率。
-X
, --sort=extension
# 按文件扩展名(由最后的 "." 之后的字符组成)的字典序排序。没有扩展名的先列出。
cp {
将源文件或目录复制到目标文件或目录中
}下令参数详解:
-a
:此参数的效果和同时指定"-dpR"参数雷同;
-
d
:当复制符号毗连时,把目标文件或目录也建立为符号毗连,并指向与源文件或目录毗连的原始文件或目录;
-f
:强行复制文件或目录,不论目标文件或目录是否已存在;
-i
:覆盖既有文件之前先询问用户;
-l
:对源文件建立硬毗连,而非复制文件;
-p
:保存源文件或目录的属性;
-R/r
:递归处理,将指定目录下的所有文件与子目录一并处理;
-s
:对源文件建立符号毗连,而非复制文件;
-u
:利用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在时,才复制文件;
-S
:在备份文件时,用指定的后缀“SUFFIX”取代文件的默认后缀;
-b
:覆盖已存在的文件目标前将目标文件备份;
-v
:具体显示下令执行的操纵。
实例1:
下面的第一行中是 cp 下令和具体的参数(-r 是“递归”, -u 是“更新”,-v 是“具体”)。接下来的三行显示被复制文件的信息,最后一行显示下令行提示符。这样,只拷贝新的文件到我的存储设备上,我就利用 cp 的“更新”和“具体”选项。
通常来说,参数 -r 也可用更具体的风格 --recursive。但是以简短的方式,也可以这么连用 -ruv。
cp -r -u -v /usr/men/tmp ~/men/tmp
复制代码
实例2:
版本备份 --backup=numbered 参数意思为“我要做个备份,而且是带编号的连续备份”。所以一个备份就是 1 号,第二个就是 2 号,等等。
$ cp --force --backup=numbered test1.py test1.py
$ ls
test1.py test1.py.~1~ test1.py.~2~
复制代码
实例3:
如果把一个文件复制到一个目标文件中,而目标文件已经存在,那么,该目标文件的内容将被粉碎。此下令中所有参数既可以是绝对路径名,也可以是相对路径名。通常会用到点.或点点..的形式。例如,下面的下令将指定文件复制到当前目录下:所有目标文件指定的目录必须是己经存在的,cp下令不能创建目录。如果没有文件复制的权限,则体系会显示出错信息。
cp ../mary/homework/assign .
复制代码
实例4:
将文件file复制到目录/usr/men/tmp下,并改名为file1
cp file /usr/men/tmp/file1
复制代码
实例5:
将目录/usr/men下的所有文件及其子目录复制到目录/usr/zh中
cp -r /usr/men /usr/zh
复制代码
实例6:
当我们在Linux下利用cp下令复制文件时,偶尔会必要覆盖一些同名文件,覆盖文件的时候都会有提示:必要不停的按Y来确定执行覆盖。文件数量不多还好,但是要是几百个估计按Y都要吐血了,于是折腾来半天总结了一个方法:
cp aaa/* /bbb
# 复制目录aaa下所有到/bbb目录下,这时如果/bbb目录下有和aaa同名的文件,需要按Y来确认并且会略过aaa目录下的子目录。
cp -r aaa/* /bbb
# 这次依然需要按Y来确认操作,但是没有忽略子目录。
cp -r -a aaa/* /bbb
# 依然需要按Y来确认操作,并且把aaa目录以及子目录和文件属性也传递到了/bbb。
\cp -r -a aaa/* /bbb
# 成功,没有提示按Y、传递了目录属性、没有略过目录。
复制代码
实例7:
递归逼迫复制目录到指定目录中覆盖已存在文件
cp -rfb ./* ../backup
# 将当前目录下所有文件,复制到当前目录的兄弟目录 backup 文件夹中
复制代码
实例8:
拷贝目录下的隐蔽文件如 .babelrc
cp -r aaa/.* ./bbb
# 将 aaa 目录下的,所有`.`开头的文件,复制到 bbb 目录中。
cp -a aaa ./bbb/
# 记住后面目录最好的'/' 带上 `-a` 参数
复制代码
实例9:
复制到当前目录
cp aaa.conf ./
# 将 aaa.conf 复制到当前目录
复制代码
mv{用来对文件或目录重新命名,大概移动目录、文件}下令参数详解:
--backup
=<备份模式>:若需覆盖文件,则覆盖前先行备份;
-b
:当文件存在时,覆盖前,为其创建一个备份;
-f
:若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录;
-i
:交互式操纵,覆盖前先行询问用户,如果源文件与目标文件或目标目录中的文件同名,则询问用户是否覆盖目标文件。用户输入”y”,表现将覆盖目标文件;输入”n”,表现取消对源文件的移动。这样可以制止误将文件覆盖。
--strip-trailing-slashes
:删除源文件中的斜杠“/”;
-S
<后缀>:为备份文件指定后缀,而倒霉用默认的后缀;
--target-directory
=<目录>:指定源文件要移动到目标目录;
-u
:当源文件比目标文件新大概目标文件不存在时,才执行移动操纵。
实例1:
将目录/usr/men中的所有文件移到当前目录(用.表现)中:
mv /usr/men/* .
复制代码
实例2:
移动文件
mv file_1.txt /home/office/
复制代码
实例3:
移动多个文件
mv file_2.txt file_3.txt file_4.txt /home/office/
mv *.txt /home/office/
复制代码
实例4:
移动目录
mv directory_1/ /home/office/
复制代码
实例5:
重命名文件或目录
mv file_1.txt file_2.txt # 将文件file_1.txt改名为file_2.txt
复制代码
实例6:
复制时创建备份
mv -bv *.txt /home/office
复制代码
实例7:
无条件覆盖已经存在的文件
mv -f *.txt /home/office
复制代码
find{在指定目录下查找文件}下令参数详解:
-amin
<分钟>:查找在指定时间曾被存取过的文件或目录,单元以分钟计算;
-anewer
<参考文件或目录>:查找其存取时间较指定文件或目录的存取时间更靠近如今的文件或目录;
-atime
<24小时数>:查找在指定时间曾被存取过的文件或目录,单元以24小时计算;
-cmin
<分钟>:查找在指定时间之时被更改过的文件或目录;
-
cnewer
<参考文件或目录>查找其更改时间较指定文件或目录的更改时间更靠近如今的文件或目录;
-ctime
<24小时数>:查找在指定时间之时被更改的文件或目录,单元以24小时计算;
-daystart
:从本日开始计算时间;
-depth
:从指定目录下最深层的子目录开始查找;
-empty
:探求文件巨细为0 Byte的文件,或目录下没有任何子目录或文件的空目录;
-exec
<执行指令>:假设find指令的回传值为True,就执行该指令;
-false
:将find指令的回传值皆设为False;
-fls
<列表文件>:此参数的效果和指定“-ls”参数类似,但会把结果保存为指定的列表文件;
-follow
:排除符号毗连;
-fprint
<列表文件>:此参数的效果和指定“-print”参数类似,但会把结果保存成指定的列表文件;
-fprint0
<列表文件>:此参数的效果和指定“-print0”参数类似,但会把结果保存成指定的列表文件;
-fprintf
<列表文件><输特别式>:此参数的效果和指定“-printf”参数类似,但会把结果保存成指定的列表文件;
-fstype
<文件体系范例>:只探求该文件体系范例下的文件或目录;
-gid
<群组识别码>:查找符合指定之群组识别码的文件或目录;
-group
<群组名称>:查找符合指定之群组名称的文件或目录;
-help
或
--help
:在线帮助;
-ilname
<范本样式>:此参数的效果和指定“-lname”参数类似,但忽略字符巨细写的差别;
-iname
<范本样式>:此参数的效果和指定“-name”参数类似,但忽略字符巨细写的差别;
-inum
<inode编号>:查找符合指定的inode编号的文件或目录;
-ipath
<范本样式>:此参数的效果和指定“-path”参数类似,但忽略字符巨细写的差别;
-iregex
<范本样式>:此参数的效果和指定“-regexe”参数类似,但忽略字符巨细写的差别;
-links
<毗连数量>:查找符合指定的硬毗连数量标文件或目录;
-lname
<范本样式>:指定字符串作为探求符号毗连的范本样式;
-ls
:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出;
-maxdepth
<目录层级>:设置最大目录层级;
-mindepth
<目录层级>:设置最小目录层级;
-mmin
<分钟>:查找在指定时间曾被更改过的文件或目录,单元以分钟计算;
-mount
:此参数的效果和指定“-xdev”雷同;
-mtime
<24小时数>:查找在指定时间曾被更改过的文件或目录,单元以24小时计算;
-name
<范本样式>:指定字符串作为探求文件或目录的范本样式;
-newer
<参考文件或目录>:查找其更改时间较指定文件或目录的更改时间更靠近如今的文件或目录;
-nogroup
:找出不属于当地主机群组识别码的文件或目录;
-noleaf
:不去思量目录至少需拥有两个硬毗连存在;
-nouser
:找出不属于当地主机用户识别码的文件或目录;
-ok
<执行指令>:此参数的效果和指定“-exec”类似,但在执行指令之前会先询问用户,若答复“y”或“Y”,则放弃执行下令;
-path
<范本样式>:指定字符串作为探求目录的范本样式;
-perm
<权限数值>:查找符合指定的权限数值的文件或目录;
-print
:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式为每列一个名称,每个名称前皆有“./”字符串;
-print0
:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式为全部的名称皆在同一行;
-printf
<输特别式>:假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式可以自行指定;
-prune
:不探求字符串作为探求文件或目录的范本样式;
-rege
x<范本样式>:指定字符串作为探求文件或目录的范本样式;
-size
<文件巨细>:查找符合指定的文件巨细的文件;
-true
:将find指令的回传值皆设为True;
-type
<文件范例>:只探求符合指定的文件范例的文件;
-uid
<用户识别码>:查找符合指定的用户识别码的文件或目录;
-used
<日数>:查找文件或目录被更改之后在指定时间曾被存取过的文件或目录,单元以日计算;
-user
<拥有者名称>:查找符和指定的拥有者名称的文件或目录;
-version
或——
version
:显示版本信息;
-xdev
:将范围局限在先行的文件体系中;
-xtype
<文件范例>:此参数的效果和指定“-type”参数类似,差别在于它针对符号毗连检查。
实例1:
# 当前目录搜索所有文件,文件内容 包含 “140.206.111.111” 的内容
find . -type f -name "*" | xargs grep "140.206.111.111"
复制代码
实例2:
列出当前目录及子目录下所有文件和文件夹
find .
复制代码
实例3:
在/home目录下查找以.txt末了的文件名
find /home -name "*.txt"
复制代码
实例4:
在/home目录下查找以.txt末了的文件名,但是忽略巨细写
find /home -iname "*.txt"
复制代码
实例5:
当前目录及子目录下查找所有以.txt和.pdf末了的文件
find . \( -name "*.txt" -o -name "*.pdf" \)
或
find . -name "*.txt" -o -name "*.pdf"
复制代码
实例6:
匹配文件路径大概文件
find /usr/ -path "*local*"
复制代码
实例7:
根据文件范例举行搜刮
find . -type 类型参数
复制代码
补:范例参数的列表
f
平凡文件
l
符号毗连
d
目录
c
字符设备
b
块设备
s
套接字
p
Fifo
实例8:
基于目录的深度搜刮:向下的最大深度为3
find . -maxdepth 3 -type f
复制代码
基于目录的深度搜刮:搜刮出深度距离当前目录至少2个子目录的所有文件
find . -mindepth 2 -type f
复制代码
实例9:
基于文件的时间戳举行查找:
find . -type f 时间戳
复制代码
补:
UNIX/Linux文件体系每个文件都有三种时间戳:
访问时间
(-atime/天,-amin/分钟):用户近来一次访问时间。
修改时间
(-mtime/天,-mmin/分钟):文件最后一次修改时间。
变化时间
(-ctime/天,-cmin/分钟):文件数据元(例如权限等)最后一次修改时间。
基于文件的时间戳举行查找:搜刮近来七天内被访问过的所有文件
find . -type f -atime -7
复制代码
基于文件的时间戳举行查找:搜刮恰好在七天前被访问过的所有文件
find . -type f -atime 7
复制代码
基于文件的时间戳举行查找:搜刮超过七天内被访问过的所有文件
find . -type f -atime +7
复制代码
基于文件的时间戳举行查找:搜刮访问时间超过10分钟的所有文件
find . -type f -amin +10
复制代码
基于文件的时间戳举行查找:找出比file.log修改时间更长的所有文件
find . -type f -newer file.log
复制代码
实例10:
根据文件的巨细举行查找
find . -type f -size 文件大小单元
复制代码
补:
文件巨细单元:
b
—— 块(512字节)
c
—— 字节
w
—— 字(2字节)
k
—— 千字节
M
—— 兆字节
G
—— 吉字节
根据文件的巨细举行查找:搜刮大于10KB的文件(那么小于或等于10k,则是::小于-10k 等于=10k)
find . -type f -size +10k #查找大于10k
find . -type f -size -10k #查找小于10k
find . -type f -size =10k #查找等于10k
复制代码
实例11:
删除匹配的文件:删除当前目录下所有.txt文件
find . -type f -name "*.txt" -delete
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4