系统学习Linux-目录结构与文件管理(五)

目录

一、系统信息查看与修改

1.主机名

2.时间查看

二、内容统计与筛选

1.目录查找

2.文件


放弃不难,但坚持一定很酷。


一、系统信息查看与修改

1.主机名

(一)临时修改,重启失效

hostname  new_hostname(需要刷新)

bash:刷新

代码如下(示例)

[root@localhost ~]# hostname lwj
[root@localhost ~]# bash
[root@lwj ~]

(二)永久修改

 第一种配置文件修改

vim /etc/hostname(需要重启)

代码如下(示例):

[root@localhost ~]# vim /etc/hostname

wjj
                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
:wq

 第二种命令修改

hostnamectl set-hostname  new_hostname(需要刷新)

bash:刷新 

代码如下(示例):

[root@localhost ~]# hostname set-hostname lwj
[root@localhost ~]# bash
[root@lwj ~]
  • 这条命令会删除 /etc/hostname 文件中的主机名,然后替换为新的主机名。和第一种方法一样,我们也需要更新/etc/hosts文件。这两种方法的本质都是一样的。

2.时间查看

(一)date(系统时间)

应用场景:为文件添加时间戳

语法:date [选项]+[格式]

格式:(%Y  年)   (%m  月)   (%d  日)   (%h  小时)   (%M  分钟)   (%s  秒)

创建带有时间戳的文件  代码如下(示例):黄色部分为创建的时间

[root@localhost ~]# touch `date +%Y%m%d%H%M%S`_test.txt
[root@localhost ~]# ls
20230612235312_test.txt

备注:反撇号  ·· (调用命令的执行结果,不加shift的波浪线)


(二)hwclock(硬件时间)

bios中的时间

主板的bios电池


(三)显示输出系统信息

uname

应用场景:查看主机名、查看内核版本、查看32/64位平台

选项:-a查看所有信息  -n查看主机名  -r查看内核版本

代码如下(示例):

[root@localhost opt]# uname
Linux
[root@localhost opt]# uname -a
Linux wjj 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 
x86_64 x86_64 GNU/Linux

(四)快捷键

alt + .(调用上一个命令的最后一个字段)


(五)文件的详细属性查看

stat:应用场景为查看时间戳、查看数字权限

语法:stat /路径/文件名

代码如下(示例):

[root@localhost opt]# stat 1.txt
  文件:"1.txt"
  大小:2385      	块:8          IO 块:4096   普通文件
设备:fd00h/64768d	Inode:68294314    硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:unconfined_u:object_r:usr_t:s0
最近访问:2023-06-13 00:21:44.189607170 +0800
最近更改:2023-06-13 00:21:44.189607170 +0800
最近改动:2023-06-13 00:21:44.189607170 +0800
创建时间:-
[root@localhost opt]# 

二、内容统计与筛选

1.目录查找

find(概述:查看满足一定条件的目录内容,默认递归查找)

语法:find 路径 条件选项 关键字


选项:

- name 按照名字查找(支持模糊匹配)

案例:查找/etc/所有以.conf的结尾文件

代码如下(示例):

[root@localhost opt]# find /etc -name '*.conf'
/etc/resolv.conf
/etc/fonts/conf.d/65-0-khmeros-base.conf
/etc/fonts/conf.d/61-urw-fallback-backwards.conf
/etc/fonts/conf.d/66-ucs-miscfixed.conf

备注:* 表述所有 # 表示注释

-type(类型)

f 普通文件  d 目录  b 块设备文件  c 字符设备文件  i 软连接文件

代码如下(示例):

[root@localhost etc]# find -type d
./fonts/conf.d
./grub.d

-size(大小)

单位:k 千字节

符号:没有等于  +是大于  -是小于

案例:查找容量大于1024KB的文件

代码如下(示例):

[root@localhost etc]# find ./ -size +1024k
./udev/hwdb.bin
./selinux/targeted/contexts/files/file_contexts.bin
./selinux/targeted/policy/policy.31
./selinux/targeted/active/policy.kern
./selinux/targeted/active/policy.linked
./brltty/zh-tw.ctb

-user(使用者)

-group(组)


时间:

-amin  -atime  -mmin  -mtime  -cmin  -ctime 


容量:统计文件占用磁盘的大小

语法:du [-ash] [文件名或目录]

选项

-a 统计所有

-s 统计总容量

-h 人性化显示

案例:

du -sh /opt  统计/opt的总容量

代码如下(示例):

[root@localhost etc]# du -sh /opt
4.0K	/opt

du -ah /etc 统计/etc下的每个文件的大小

代码如下(示例):

[root@localhost etc]# du -ah
4.0K	./fstab
8.0k	./crypttab
4.0K	./mtab
4.0K	./resolv.conf

备注:-a 统计所有和-s 统计总容量 不可以同时应用

2.文件

数量:wc

概述:输出文件中的行数、单词书、字节数

应用场景:日志文件的行数、用户数量

选项:

-I    行数

-w  单词书

-c   字节数(一个中文3个字节、一个英文1个自己、每一行算1个自己)

代码如下(示例):4行  2385个字节

[root@localhost opt]# wc -lc 1.txt
   4 2385 1.txt

过滤:grep

概述:打印匹配给定模式的行

应用场景:过滤错误日志、过滤配置文件

注意事项:先分析需要过滤的文件特征,总结过滤时需要的关键字

选项:

-n  在结果中显示行号

-i   结果中忽略大小写

-v   反向显示

基础正则表达式

*    表示所有

^    以后面字符开头^字符

$    一后面字符结尾字符$

案例1:过滤错误日志并显示行号(/var/log/messages)

代码如下(示例):grep -n "error" /var/log/messages

[root@localhost opt]# grep -n "error" /var/log/messages
1578:Jun  8 16:42:36 localhost mcelog: Family 6 Model 141 CPU: only decoding architectural errors
1629:Jun  8 16:42:36 localhost mcelog: Family 6 Model 141 CPU: only decoding architectural errors
1757:Jun  8 16:42:41 localhost libvirtd: 2023-06-08 08:42:41.044+0000: 1408: error : virHostCPUGetTscInfo:1389 : 无法打开 tty /dev/kvm: 没有那个文件或目录
1758:Jun  8 16:42:42 localhost libvirtd: 2023-06-08 08:42:42.005+0000: 1408: error : virHostCPUGetTscInfo:1389 : 无法打开 tty /dev/kvm: 没有那个文件或目录
1759:Jun  8 16:42:42 localhost libvirtd: 2023-06-08 08:42:42.009+0000: 1408: error : virHostCPUGetTscInfo:1389 : 无法打开 tty /dev/kvm: 没有那个文件或目录
2057:Jun  8 16:43:39 localhost gnome-keyring-daemon[9119]: couldn't create login keyring: An error occurred on the device
2108:Jun  8 16:43:45 localhost journal: not GsPlugin error from plugin repos g-key-file-error-quark:1: Key file contains line “        file:///media/cdrom/” which is not a key-value pair, group, or comment
3766:Jun  8 17:59:44 localhost mcelog: Family 6 Model 141 CPU: only decoding architectural errors
3804:Jun  8 17:59:44 localhost mcelog: Family 6 Model 141 CPU: only decoding architectural errors

案例2:过滤MySQL数据库的配置文件,只看生效的配置

配置文件的注释:^#或#

配置文件的空行:^$

/etc/my.cnf

[root@localhost opt]# grep -v "^#" /etc/my.cnf | grep -v "^$"
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
!includedir /etc/my.cnf.d

你可能感兴趣的:(学习,linux,运维)