Linux就该这么学(二)

查找定位文件命令
一、pwd cd ls(ll)
pwd 命令用于显示用户当前所处的工作目录
cd 命令用于切换当前的工作路径,英文全称为“change directory”,语法格式为“cd [参数] [目录]”
ls(ll) 命令用于显示目录中的文件信息
二、tree命令
tree 命令用于以树状图的形式列出目录内容及结构,输入该命令后按回车键执行即可。
虽然 ls 命令可以很便捷地查看目录内有哪些文件,但无法直观地获取到目录内文件的层次结构。比如,假如目录 A 中有个 B,B 中又有个 C,那么 ls 命令就只能看到最外面的 A 目录,显然有些时候这不太够用。tree 命令则能够以树状图的形式列出目录内所有文件的结构。
使用 ls 命令查看目录内的文件

[root@linuxprobe~]# ls
A Desktop Downloads Music Public Videos
anaconda-ks.cfg Documents initial-setup-ks.cfg Pictures Templates

使用 tree 命令查看目录内文件名称以及结构:

.
├──A
│ └──B
│ └──C
├──anaconda-ks.cfg
├──Desktop
├──Documents
├──Downloads
├──initial-setup-ks.cfg
├──Music
├──Pictures
├──Public
├──Templates
└──Videos

三、find 命令
find 命令用于按照指定条件来查找文件所对应的位置,语法格式为“find [查找范围] 寻找条件”

find [搜索范围][搜索标准] 关键字
	    |->-name:默认按名称搜索(文件或者目录所在的路径也在搜索范围之内)
	    |->-size:按文件大小搜索
	    |->-user:按文件的所有者搜索
     find *.txt  搜索当前目录下,所有的.txt文件
     find *e*  搜索当前目录下,所有名称中包含e的那些文件或者目录
     find /etc *.txt  搜索/etc目录下所有.txt文件
     find /etc -size -5k  搜索/etc目录下所有小于5k的文件
     find /etc -user zhangsan  搜索/etc目录下所有的所有者是zhangsan的文件和目录

进阶实验:
在整个文件系统中找出所有归属于 linuxprobe 用户的文件并复制到/root/findresults 目录中。
该实验的重点是“-exec {} ;”参数,其中的{}表示 find 命令搜索出的每一个文件,并且命令的结尾必须是“;”。具体命令如下:

[root@linuxprobe ~]# find / -user linuxprobe -exec cp -a {} /root/findresults/ \;

文本文件编辑命令
一、cat more head
cat 命令用于查看纯文本文件(内容较少的)如果在查看文本内容时还想显示行号的话,在 cat 命令后面追加一个-n 参数。

[root@linuxprobe~]# cat -n initial-setup-ks.cfg
1 #version=RHEL8
2 # X Window System configuration information
3 xconfig --startxonboot
4 # License agreement
5 eula --agreed
6 # Use graphical install
7 graphical
8 # Network information
9 network --bootproto=dhcp --device=ens160 --onboot=off --ipv6=auto --
no-activate
10 network --bootproto=dhcp --hostname=localhost.localdomain
11 repo --name="AppStream" --baseurl=file:///run/install/repo/AppStream
12 ignoredisk --only-use=sda
13 # Use CDROM installation media
14 cdrom
15 # Run the Setup Agent on first boot
16 firstboot --enable
17 # System services
………………省略部分输出信息………………

more 命令用于查看纯文本文件(内容较多的),语法格式为“more [参数] 文件名称”。因此多对于长篇的文本内容。
head 命令用于查看纯文本文件的前 N 行,语法格式为“head [参数] 文件名称”。

[root@linuxprobe~]# head -n 10 initial-setup-ks.cfg
#version=RHEL8
# X Window System configuration information
xconfig --startxonboot
# License agreement
eula --agreed
# Use graphical install
graphical
# Network information
network --bootproto=dhcp --device=ens160 --onboot=off --ipv6=auto --no-activate
network --bootproto=dhcp --hostname=localhost.localdomain

tail 命令用于查看纯文本文件的后 N 行或持续刷新文件的最新内容,语法格式为“tail [参数] 文件名称”。

[root@linuxprobe~]# tail -n 10 initial-setup-ks.cfg
%addon com_redhat_subscription_manager
%end
%addon ADDON_placeholder --disable --reserve-mb=auto
%end
%anaconda
pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
%end

注意:tail 命令最强悍的功能是能够持续刷新一个文件的内容,当想要实时查看最新的日志文件时,命令格式为“tail -f 文件名称”:

[root@linuxprobe~]# tail -f /var/log/messages
Sep 15 00:14:01 localhost rsyslogd[1392]: imjournal: sd_journal_get_cursor()
failed: Cannot assign requested address [v8.37.0-9.el8]
Sep 15 00:14:01 localhost rsyslogd[1392]: imjournal: journal reloaded...
[v8.37.0-9.el8 try http://www.rsyslog.com/e/0 ]
Sep 15 00:14:01 localhost systemd[1]: Started update of the root trust anchor
for DNSSEC validation in unbound.
Sep 15 00:14:01 localhost sssd[kcm][2764]: Shutting down
Sep 15 00:14:06 localhost systemd[1]: Starting SSSD Kerberos Cache Manager...
Sep 15 00:14:06 localhost systemd[1]: Started SSSD Kerberos Cache Manager.
Sep 15 00:14:06 localhost sssd[kcm][3989]: Starting up

四、tr命令
tr 命令用于替换文本内容中的字符,英文全称为“translate”,语法格式为“tr [原始字符] [目标字符]”。

[root@linuxprobe~]# cat anaconda-ks.cfg | tr [a-z] [A-Z]
#VERSION=RHEL8
IGNOREDISK --ONLY-USE=SDA
AUTOPART --TYPE=LVM
# PARTITION CLEARING INFORMATION
CLEARPART --ALL --INITLABEL --DRIVES=SDA
# USE GRAPHICAL INSTALL

五、wc命令
wc 命令用于统计指定文本文件的行数、字数或字节数,英文全称为“word counts”,语法格式为“wc [参数] 文件名称”。

六、stat 命令
stat 命令用于查看文件的具体存储细节和时间等信息,英文全称为“status”,语法格式为“stat 文件名称”。
大家都知道,文件有一个修改时间。其实,除了修改时间之外,Linux 系统中的文件包含 3 种时间状态,分别是 Access Time(内容最后一次被访问的时间,简称为 Atime),Modify Time(内容最后一次被修改的时间,简称为 Mtime)以及 Change Time(文件属性最后一次被修改的时间,简称为 Ctime)。下面使用 state 命令查看文件的这 3 种时间状态信息:

root@linuxprobe linuxprobe]# stat anaconda-ks.cfg 
  File: anaconda-ks.cfg
  Size: 1385      	Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d	Inode: 781677      Links: 1
Access: (0600/-rw-------)  Uid: (    0/    root)   Gid: (    0/    root)
Context: unconfined_u:object_r:user_home_t:s0
Access: 2023-02-20 08:54:03.102179772 +0000
Modify: 2023-02-20 08:53:28.019281942 +0000
Change: 2023-02-20 08:53:28.019281942 +0000
 Birth: -

七、grep 命令
grep 命令用于按行提取文本内容,语法格式为“grep [参数] 文件名称”。
在 Linux 系统中,/etc/passwd 文件保存着所有的用户信息,而一旦用户的登录终端被设置成/sbin/nologin,则不再允许登录系统,因此可以使用 grep 命令查找出当前系统中不允许登录系统的所有用户的信息:

[root@linuxprobe etc]# grep /sbin/nologin /etc/passwd
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
.....省略......

文件目录管理命令
一、touch 命令
touch 命令用于创建空白文件或设置文件的时间,语法格式为“touch [参数] 文件名称”。
在这里插入图片描述
在创建空白的文本文件方面,这个 touch 命令相当简洁,简捷到没有必要铺开去讲。比如,touch linuxprobe 命令可以创建出一个名为 linuxprobe 的空白文本文件。对 touch 命令来讲,有难度的操作主要是体现在设置文件内容的修改时间(Mtime)、文件权限或属性的更改时间(Ctime)与文件的访问时间(Atime)上面。touch 命令的参数及其作用如上表所示
以ww.txt 文件为例,该文件的修改时间是10:07,内容是tttttttt

-rw-r--r--. 1 root root    9 Feb 20 10:07 ww.txt

修改内容为qqqqqq,修改后查询文件,发现修改时间为10:09

-rw-r--r--. 1 root root    8 Feb 20 10:09 ww.txt

这时候,可以通过touch修改文件的修改时间,比如还原到之前的时间,如果不想让别人知道我们修改了它,那么这时就可以用 touch 命令把修改后的文件时间设置成修改之前的时间(很多黑客就是这样做的)

[root@linuxprobe linuxprobe]# touch -d "2023-02-20 10:07" ww.txt 

此时再次查询文件信息如下,最后一次修改时间还原成之前的了

-rw-r--r--. 1 root root    8 Feb 20 10:07 ww.txt

二、mkdir 命令
mkdir 命令用于创建空白的目录,英文全称为“make directory”,语法格式为“mkdir [参数] 目录名称”。
除了能创建单个空白目录外,mkdir 命令还可以结合-p 参数来递归创建出具有嵌套层叠关系的文件目录:

三、cp 命令
cp 命令用于复制文件或目录,英文全称为“copy”,语法格式为“cp [参数] 源文件名称 目标文件名称”。
复制命令基本不会出错,唯一需要记住的就是在复制目录时要加上-r 参数

四、mv 命令
mv 命令用于剪切或重命名文件,英文全称为“move”,语法格式为“mv [参数] 源文件名称 目标文件名称”。
剪切操作不同于复制操作,因为它默认会把源文件删除,只保留剪切后的文件。如果在同一个目录中将某个文件剪切后还粘贴到当前目录下,其实也就是对该文件进行了重命名操作:

[root@linuxprobe~]# mv x.log linux.log
[root@linuxprobe~]# ls
install.log linux.log

五、rm 命令
rm 命令用于删除文件或目录,英文全称为“remove”,语法格式为“rm [参数] 文件 名称”。
在 Linux 系统中删除文件时,系统会默认向您询问是否要执行删除操作,如果不想总是看到这种反复的确认信息,可在 rm 命令后跟上-f 参数来强制删除。另外,要想删除一个目录,需要在 rm 命令后面加一个-r 参数才可以,否则删除不掉。
dir是一个文件夹,里面有其余文件,现删除该文件夹

[root@linuxprobe~]# rm -rf dir

六、file 命令
file 命令用于查看文件的类型,语法格式为“file 文件名称”。
在 Linux 系统中,由于文本、目录、设备等所有这些一切都统称为文件,但是它们又不像 Windows 系统那样都有后缀,因此很难通过文件名一眼判断出具体的文件类型,这时就需要使用 file 命令来查看文件类型了。

[root@linuxprobe~]# file anaconda-ks.cfg
anaconda-ks.cfg: ASCII text
[root@linuxprobe~]# file /dev/sda
/dev/sda: block special

七、tar 命令
tar 命令用于对文件进行打包压缩或解压,语法格式为“tar 参数 文件名称”。
在 Linux 系统中,主要使用的是.tar、.tar.gz 或.tar.bz2格式,大家不用担心格式太多而记不住,其实这些格式大部分都是由 tar 命令生成的。tar 命令的参数及其作用如下表所示。
在这里插入图片描述
注意:
首先,-c 参数用于创建压缩文件,-x 参数用于解压文件,因此这两个参数不能同时使用。
其次,-z 参数指定使用 gzip 格式来压缩或解压文件,-j 参数指定使用 bzip2 格式来压缩或解压文件。用户使用时则是根据文件的后缀来决定应使用何种格式的参数进行解压。
在执行某些压缩或解压操作时,可能需要花费数个小时,如果屏幕一直没有输出,您一方面不好判断打包的进度情况,另一方面也会怀疑电脑死机了,因此非常推荐使用-v 参数向用户不断显示压缩或解压的过程。
-C 参数用于指定要解压到哪个指定的目录。-f 参数特别重要,它必须放到参数的最后一位,代表要压缩或解压的软件包名称。
一般使用tar -zcvf 压缩为 .tar.gz
一般使用tar -zxvf 解压缩**.tar.gz** 的文件包
下面我们逐个演示打包压缩与解压的操作,先使用 tar 命令把/etc 目录通过 gzip格式进行打包压缩,并把文件命名为 etc.tar.gz

[root@linuxprobe~]# tar czvf etc.tar.gz /etc
tar: Removing leading `/' from member names
/etc/
/etc/fstab
/etc/crypttab
/etc/mtab
/etc/fonts/
/etc/fonts/conf.d/
/etc/fonts/conf.d/65-0-madan.conf
/etc/fonts/conf.d/59-liberation-sans.conf
/etc/fonts/conf.d/90-ttf-arphic-uming-embolden.conf
/etc/fonts/conf.d/59-liberation-mono.conf
/etc/fonts/conf.d/66-sil-nuosu.conf
………………省略部分压缩过程信息

接下来将打包后的压缩包文件指定解压到/root/etc 目录中(先使用 mkdir 命令创建/root/etc目录):

[root@linuxprobe~]# mkdir /root/etc
[root@linuxprobe~]# tar xzvf etc.tar.gz -C /root/etc
etc/
etc/fstab
etc/crypttab
etc/mtab
etc/fonts/
etc/fonts/conf.d/
etc/fonts/conf.d/65-0-madan.conf
etc/fonts/conf.d/59-liberation-sans.conf
etc/fonts/conf.d/90-ttf-arphic-uming-embolden.conf
etc/fonts/conf.d/59-liberation-mono.conf
etc/fonts/conf.d/66-sil-nuosu.conf
etc/fonts/conf.d/65-1-vlgothic-gothic.conf
etc/fonts/conf.d/65-0-lohit-bengali.conf
etc/fonts/conf.d/20-unhint-small-dejavu-sans.conf
………………省略部分解压过程信息………………
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

荒--

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值