Linux目录和文件管理:pwd、cd、ls、alias、du

401 阅读21分钟

目录和文件管理

由于 Linux 系统免费开源,使得 Linux 发行版本有很多,利用 Linux 开发产品的团队也有很多,如果任由每个人都按照自己的想法来配置 Linux 系统文件目录,后期可能会产生诸多的管理问题。试想,如果你进入一家公司,所用 Linux 系统的文件目录结构与所学的完全不同,实在令人头疼。

为了避免诸多使用者对 Linux 系统目录结构天马行空,Linux 基金会发布了 FHS 标准。多数 Linux 发行版系统都遵循这一标准。

  • FHS 标准

FHS(Filesystem Hierarchy Standard),文件系统层次化标准,该标准规定了 Linux 系统中所有一级目录以及部分二级目录的用途。发布此标准的主要目的就是为了让用户清楚地了解每个目录应该存放什么类型的文件。

FHS 认为,Linux 系统的根目录(/)最为重要(没有之一),其原因有以下 2 点:

(1) 所有目录都是由根目录衍生出来的;

(2) 根目录与系统的开机、修复、还原密切相关;

因此,根目录必须包含开机软件、核心文件、开机所需程序、函数库、修复系统程序等文件,如表 1 所示。

1.目录层次

1.1 linux根目录

一级目录功能(作用)
/bin/存放系统命令,普通用户和 root 都可以执行。放在 /bin 下的命令在单用户模式下也可以执行
/boot/系统启动目录,保存与系统启动相关的文件,如内核文件和启动引导程序(grub)文件等
/dev/设备文件保存位置(键盘等硬件)
/etc/配置文件保存位置。系统内所有采用默认安装方式(rpm 安装)的服务配置文件全部保存在此目录中,如用户信息、服务的启动脚本、常用服务的配置文件等
/home/普通用户的主目录(也称为家目录)。在创建用户时,每个用户要有一个默认登录和保存自己数据的位置,就是用户的主目录,所有普通用户的主目录是在 /home/ 下建立一个和用户名相同的目录。如用户 liming 的主目录就是 /home/liming
/lib/系统调用的函数库保存位置
/media/挂载目录。系统建议用来挂载媒体设备,如软盘和光盘
/mnt/挂载目录。早期 Linux 中只有这一个挂载目录,并没有细分。系统建议这个目录用来挂载额外的设备,如 U 盘、移动硬盘和其他操作系统的分区
/misc/挂载目录。系统建议用来挂载 NFS 服务的共享目录。虽然系统准备了三个默认挂载目录 /media/、/mnt/、/misc/,但是到底在哪个目录中挂载什么设备可以由管理员自己决定。例如,笔者在接触 Linux 的时候,默认挂载目录只有 /mnt/,所以养成了在 /mnt/ 下建立不同目录挂载不同设备的习惯,如 /mnt/cdrom/ 挂载光盘、/mnt/usb/ 挂载 U 盘,都是可以的
/opt/第三方安装的软件保存位置。这个目录是放置和安装其他软件的位置,手工安装的源码包软件都可以安装到这个目录中。不过笔者还是习惯把软件放到 /usr/local/ 目录中,也就是说,/usr/local/ 目录也可以用来安装软件
/root/root 的主目录。普通用户主目录在 /home/ 下,root 主目录直接在“/”下
/sbin/保存与系统环境设置相关的命令,只有 root 可以使用这些命令进行系统环境设置,但也有些命令可以允许普通用户查看
/srv/服务数据目录。一些系统服务启动之后,可以在这个目录中保存所需要的数据
/tmp/临时目录。系统存放临时文件的目录,在该目录下,所有用户都可以访问和写入。建议此目录中不能保存重要数据,最好每次开机都把该目录清空

1.2 常见非一级目录

1.2.1 Linux /usr目录

usr(注意不是 user),全称为 Unix Software Resource,此目录用于存储系统软件资源。FHS 建议所有开发者,应把软件产品的数据合理的放置在 /usr 目录下的各子目录中,而不是为他们的产品创建单独的目录。

Linux 系统中,所有系统默认的软件都存储在 /usr 目录下,/usr 目录类似 Windows 系统中 C:\Windows\ + C:\Program files\ 两个目录的综合体。

子目录功能(作用)
/usr/bin/存放系统命令,普通用户和超级用户都可以执行。这些命令和系统启动无关,在单用户模式下不能执行。
/usr/sbin/存放根文件系统不必要的系统管理命令,如多数服务程序,只有 root 可以使用。
/usr/lib/应用程序调用的函数库保存位置。
/usr/XllR6/图形界面系统保存位置。
/usr/local/手工安装的软件保存位置。我们一般建议源码包软件安装在这个位置。
/usr/share/应用程序的资源文件保存位置,如帮助文档、说明文档和字体目录。
/usr/src/源码包保存位置。我们手工下载的源码包和内核源码包都可以保存到这里。不过笔者更习惯把手工下载的源码包保存到 /usr/local/src/ 目录中,把内核源码保存到 /usr/src/linux/ 目录中
/usr/includeC/C++ 等编程语言头文件的放置目录

1.2.2 Linux /var 目录

/var 目录用于存储动态数据,例如缓存、日志文件、软件运行过程中产生的文件等。通常,此目录下建议包含如表 4 所示的这些子目录。

/var子目录功能(作用)
/var/lib/程序运行中需要调用或改变的数据保存位置。如 MySQL 的数据库保存在 /var/lib/mysql/ 目录中
/var/log/登陆文件放置的目录,其中所包含比较重要的文件如 /var/log/messages, /var/log/wtmp 等。
/var/run/一些服务和程序运行后,它们的 PID(进程 ID)保存位置
/var/spool/里面主要都是一些临时存放,随时会被用户所调用的数据,例如 /var/spool/mail/ 存放新收到的邮件,/var/spool/cron/ 存放系统定时任务。
/var/www/RPM 包安装的 Apache 的网页主目录
/var/nis和/var/ypNIS 服务机制所使用的目录,nis 主要记录所有网络中每一个 client 的连接信息;yp 是 linux 的 nis 服务的日志文件存放的目录
/var/tmp一些应用程序在安装或执行时,需要在重启后使用的某些文件,此目录能将该类文件暂时存放起来,完成后再行删除
  • 根(/)相当于一个入口,文件的总入口,也是唯一入口
  • bin (sbin) 二进制文件,可执行文件,也可能存在别处,默认使用较多所有用户软连接文件
  • sbin 管理员可使用的二进制文件
  • boot 系统内核、启动文件
  • dev 硬件文件(黄色)
  • etc 配置文件等同于windows 注册表,一般都是文本文件
  • run 运行的内存中文件
  • tmp 临时文件 -t
  • usr应用程序和操作系统相关的文件
  • var日志文件,数据变化的
  • home 普通用户的家目录的上级目录zhangsan目录会在 home
  • root系统管理员的目录上 /root
  • lib 动态库文件 类似于windows 的dll文件
  • proc 主要保存系统的内核、进程、外部设备状态和网络状态等
  • media 可移动设备
  • mnt 默认挂载点
  • opt 第三方应用程序安装所在目录程序

微信图片_20220209181619.png

2 文件类型

2.1 七类常见的linux的文件

  1. d 目录文件directory
  2. b 块设备文件block 块设备文件,就是保存大块数据的设备,比如最常见的硬盘。
  3. c 字符设备character 这些文件通常隐藏在 /dev/ 目录下,当进行设备读取或外设交互时才会被使用; 一个字符一个字符读取 /dev/zero (/dev/null)
  4. l 符号链接文件link
  5. p 管道文件pipe 主要用于进程间通信单向传输, 一个只读、另一个只写 ,其主要作用是解决多个程序同时存取一个文件所造成的错误。
  6. s 套接字文件socket 套接字文件一般隐藏在 /var/run/ 目录下,用于进程间的网络通信。(可以双向)
  7. -普通文件 普通文件,包括纯文本文件、二进制文件、各种压缩文件等
第一个字符文件类型
-普通文件,包括纯文本文件、二进制文件、各种压缩文件等。
d目录,类似 Windows 系统中的文件夹。
b块设备文件,就是保存大块数据的设备,比如最常见的硬盘。
c字符设备文件,例如键盘、鼠标等。
s套接字文件,通常用在网络数据连接,可以启动一个程序开监听用户的要求,用户可以通过套接字进行数据通信。
p管道文件,其主要作用是解决多个程序同时存取一个文件所造成的错误。
l链接文件,类似 Windows 系统中的快捷方式。

注意:

file命令可以识别文件类型,文件后缀无法判断文件类型。

2.2 颜色表示的文件类型

  • 黑色 普通文件
  • 绿色 可执行文件
  • 黄色 块设备文件
  • 红色 压缩包
  • 蓝色 文件夹
  • 天蓝色 链接文件(快捷方式)
[root@localhost ~]# vim /etc/DIR_COLORS   //颜色在这里显示
复制代码

3 查看、切换、显示、统计目录或文件

3.1 pwd(print work directory) 打印当前目录

示例:

[root@localhost ~]# pwd       //显示当前路径
/root
[root@localhost bin]# cd /bin
[root@localhost bin]# ll /bin
lrwxrwxrwx. 1 root root 7 8月   6 20:57 /bin -> usr/bin
[root@localhost bin]# pwd -P   //显示真实路径
/usr/bin
复制代码

3.2 cd(change directory)切换目录

命令格式:

cd 目标位置

命令效果
cd 或 cd ~若不指定目标位置,切换到当前用户的宿主目录(家目录)
cd -到前一次目录
一个点号“.”开头表示以当前的工作目录作为起点
两个点号“..”开头表示以当前目录的上一级目录(父目录)作为起点
“~用户名”形式开头表示以指定用户的宿主目录(家目录)作为起点
"."开头文件表示隐藏文件

示例:

[root@localhost ~]# cd /etc/    //切换到/etc目录
[root@localhost etc]# 
[root@localhost etc]# cd        //切换到当前用户家目录
[root@localhost ~]# 
[root@localhost ~]# cd  ~       //切换到当前用户家目录
[root@localhost ~]# 
复制代码

3.3 ls (list) 列出目录/文件的详细属性信息

生产环境中慎重直接使用,文件量过大会直接死机(有的服务器上的文件是千万级别)。生产环境中不能单独使用,需要配合通配符。

命令格式:

ls [选项] [文件或目录… ]

命令选项:

选项说明
-l以长格式显示文件和目录列表 ll=ls -l
-a显示全部包括隐藏文件
-A显示全部文件或隐藏文件,但不包括 . 和..
-d只显示当前目录
-h友好显示文件大小
-R递归显示该目录及该目录的子目录下的所有内容
--color显示颜色
-S按从大到小排序
-i显示inode号
-t根据文件创建时间进行排序,由新到旧,新建的排在前面
-tr根据文件创建时间进行排序,由旧到新

常用搭配:

  • ls -alh:以长格式显示目录下的全部文件,包括隐藏文件、. 和.. ,并友好显示文件大小。

  • ls -ltr:以长格式显示目录下的文件,根据文件创建时间进行排序,新建的排在后面。

  • ls 只能统计文件的大小,针对目录只统计目录本身的大小、而不统计目录里子目录或文件的总大小。

    • 目录本身的大小是根据所含目录项计算的,不是目录内文件大小的总和。

示例:

1)显示当前目录的属性信息

[root@localhost ~]# ls -dl    //查看当前目录的属性信息
dr-xr-x---. 14 root root 4096 1月  21 10:16 .
复制代码

2)显示当前目录下的所有文件(不包含隐藏文件)

[root@localhost ~]# ls     //显示当前目录下的所有文件(不包含隐藏文件) 
anaconda-ks.cfg  initial-setup-ks.cfg  xiao1  公共  模板  视频  图片  文档  下载  音乐  桌面 
复制代码

3)显示当前目录下的所有文件(包含隐藏文件)

[root@localhost ~]# ls -a     //显示当前目录下的所有文件(包含隐藏文件)
.                .bash_history  .bashrc  .cshrc     .ICEauthority         .tcshrc   公共  图片  音乐
..               .bash_logout   .cache   .dbus      initial-setup-ks.cfg  .viminfo  模板  文档  桌面
anaconda-ks.cfg  .bash_profile  .config  .esd_auth  .local                xiao1     视频  下载
​
复制代码

4)列出长数据串,显示出文件的属性与权限等数据信息,并友好显示文件大小

[root@localhost ~]# ls -lh
总用量 8.0K
-rw-------. 1 root root 1.8K 1月  18 17:38 anaconda-ks.cfg
-rw-r--r--. 1 root root 1.8K 1月  18 17:40 initial-setup-ks.cfg
-rw-r--r--. 1 root root    0 1月  18 11:39 xiao1
drwxr-xr-x. 2 root root    6 1月  18 17:40 公共
drwxr-xr-x. 2 root root    6 1月  18 17:40 模板
drwxr-xr-x. 2 root root    6 1月  18 17:40 视频
drwxr-xr-x. 2 root root    6 1月  18 17:40 图片
drwxr-xr-x. 2 root root    6 1月  18 17:40 文档
drwxr-xr-x. 2 root root    6 1月  18 17:40 下载
drwxr-xr-x. 2 root root    6 1月  18 17:40 音乐
drwxr-xr-x. 2 root root    6 1月  18 17:40 桌面
复制代码

3.4 通配符

去匹配文件名(包括目录)

符号效果
匹配一个字符 f?.txt
*匹配所有非隐藏的字符无论多长多短,但不匹配 "." 开头的文件,即隐藏文件
{1..10}1到10
{a..z}a b c ...z
{A..Z}A B C .....Z
[123]包含其中之一就显示,没有也无所谓(此处括号里只表示单个字符)
[0-9]匹配数字范围(0123456789),表示单个数字
[a-z]范围需要注意 (表示从aA、bB到z,不含Z),表示单个字母
[A-Z]从A到Z(只含大写)中的任意一个字母
\转义符,表示原来的意思
[[:lower:]]小写字母表示 a-z
[[:upper:]]大写字母表示 A-Z
[^zhou]匹配列表中的所有字符以外的字符
[[:digit:]]任意数字,相当于0-9

示例:

1)*的使用。

[root@localhost data]# ls -a *   //不显示隐藏文件
1
[root@localhost data]# ls -a     //显示隐藏文件
.  ..  1
[root@localhost data]# ls *      //*不包括.开头的
ls: 无法访问*: 没有那个文件或目录
[root@localhost data]# ls .*    //包括了 .. 上层目录
.:
​
..:
aaa  boot  dev  home  lib64  misc  net  proc  run   sdb1  sys  usr
bin  data  etc  lib   media  mnt   opt  root  sbin  srv   tmp  var
复制代码

2)使用{a..z}和{A..Z},[a-z]和[A-Z]。大小写字母的区别比较。

[root@localhost data]# touch f{a..z}.log
[root@localhost data]# touch f{A..Z}.log
[root@localhost data]# ls
123456.txt  fa.log      fe.log  fj.log  fo.log  ft.log  fy.log
123.txt     f{A.Z}.log  ff.log  fk.log  fp.log  fu.log  fz.log
1.txt       fb.log      fg.log  fl.log  fq.log  fv.log  rh
2.txt       fc.log      fh.log  fm.log  fr.log  fw.log  test.txt
abc.txt     fd.log      fi.log  fn.log  fs.log  fx.log
[root@localhost data]# ls f[zhou].log    //包含z、h、o、u四个字母中的任意一个就会显示(只匹配单个字符)   
fh.log  fo.log  fu.log  fz.log
[root@localhost data# ls f[x-z].log     //显示xXyYz,不包括Z
fx.log  fX.log  fy.log  fY.log  fz.log
[root@localhost data]# ls f[a-c].log     //显示aAbBc,不包括C
fa.log  fA.log  fb.log  fB.log  fc.log   
[root@localhost data]# ls f{a..c}.log    //显示abc所有小写
fa.log  fb.log  fc.log[root@localhost data]# ls 1[[:lower:]]*     //显示小写字母
1a1.txt  1e1.txt  1i1.txt  1m1.txt  1q1.txt  1u1.txt  1y1.txt
1b1.txt  1f1.txt  1j1.txt  1n1.txt  1r1.txt  1v1.txt  1z1.txt[root@localhost data]# ls 1[[:upper:]]*     //显示大写字母
[root@localhost data]# ls 1[[:upper:]]*
1A1.txt  1E1.txt  1I1.txt  1M1.txt  1Q1.txt  1U1.txt  1Y1.txt
复制代码

3)使用{1..10}和[0-9],数字的匹配。

[root@localhost data]# touch f{1..9}.txt
[root@localhost data]# touch f{10..20}.txt
[root@localhost data]# ls f[0-9].txt           //[0-9]只能匹配10以下的数字
f1.txt  f2.txt  f3.txt  f4.txt  f5.txt  f6.txt  f7.txt  f8.txt  f9.txt
​
[root@localhost data]# ls f[0-9][0-9].txt     //两个[0-9]可以匹配双数字
f10.txt  f11.txt  f12.txt  f13.txt  f14.txt  f15.txt  f16.txt  f17.txt  f18.txt  f19.txt  f20.txt
[root@localhost data]# ls f{10..20}.txt       //{10..20}可以匹配双数字
f10.txt  f11.txt  f12.txt  f13.txt  f14.txt  f15.txt  f16.txt  f17.txt  f18.txt  f19.txt  f20.txt
​
[root@localhost data]# ls f??.txt        //两个?号可以匹配两个字符
f10.txt  f11.txt  f12.txt  f13.txt  f14.txt  f15.txt  f16.txt  f17.txt  f18.txt  f19.txt  f20.txt
[root@localhost data]# ls f*.txt         //*可以匹配任意字符
f10.txt  f12.txt  f14.txt  f16.txt  f18.txt  f1.txt   f2.txt  f4.txt  f6.txt  f8.txt
f11.txt  f13.txt  f15.txt  f17.txt  f19.txt  f20.txt  f3.txt  f5.txt  f7.txt  f9.txt
复制代码

4)显示隐藏文件

[root@localhost data]# ls /etc/.*   //显示隐藏文件也包括..的上层目录
​
[root@localhost data]# ls /etc/.* -d    //如果不想看上层目录 就要加-d 只显示当前目录
/etc/.  /etc/..  /etc/.java  /etc/.pwd.lock  /etc/.updated
​
复制代码

3.5 alias 别名命令

临时修改(关机或退出终端会自动消失)

  • alias 命令别名 = ’命令‘
  • unalias 别名命令 删除别名
  • \加别名命令 (显示原始命令)
[root@localhost dev]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 
[root@localhost dev]# alias myvim='vim /etc/sysconfig/network-scripts/ifcfg-ens33'
​
[root@localhost dev]# alias myls=ls -alh  //如果不加引号,无法识别
-bash: alias: -alh: 未找到 
​
​
[root@localhost dev]# ls
[root@localhost dev]# \ls     //就想使用原来的命令,在命令前加转义符\
​
[root@localhost dev]# unalias myvim    //删除别名
[root@localhost dev]# myvim
bash: myvim: 未找到命令...
​
复制代码

永久修改(需要修改配置文件)

  • 在/etc/.bashrc 会影响全部
  • /root/.bashrc只影响当前用户

注意:

  • 命令执行顺序:绝对路径下的命令>别名命令>内部命令>hash命令>外部命令。
  • 实际项目中需先查看其他人有没有定义别名命令。

3.6 du (disk usage) 统计目录或文件所占磁盘空间大小的命令

命令格式:

du [选项] [文件或目录… ]

选项说明
-a统计磁盘空间占用时包括所有的文件,而不仅仅只统计目录(包括隐藏文件)
-h以更人性化的方式(默认以KB计数,但不显示单位)显示出统计结果
-s只统计所占用空间总的(Summary)大小,而不是统计每个子目录、文件的大小
--max-depth=n最大显示到第n层 (-d n)
--exclude排除某些文件后,显示剩余大小

示例:

[root@localhost ~]# du --max-depth=1   //统计当前目录大小,只显示到第二级目录
3800    ./.cache
4   ./.dbus
108 ./.config
0   ./桌面
0   ./下载
0   ./模板
0   ./公共 
0   ./文档
0   ./音乐
0   ./图片
0   ./视频
312 ./.local
4272    .
复制代码

注意:

  • -a -s无法同时使用。
  • du显示的是文件占磁盘大小,不是文件的实际大小。
  • 每个磁盘分块,每块(4K)只能存一个文件,当文件不足4K时,du统计也会按4K计算。

4 查看硬件信息及其他系统信息

4.1 查看cpu

lscpu 命令可以查看cpu信息

cat /proc/cpuinfo也可看查看到

[root@localhost ky15]# lscpu 
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                2
On-line CPU(s) list:   0,1
Thread(s) per core:    1
Core(s) per socket:    1
座:                 2
NUMA 节点:         1
厂商 ID:           AuthenticAMD
CPU 系列:          23
型号:              96
型号名称:        AMD Ryzen 7 4800U with Radeon Graphics
步进:              1
CPU MHz:             1795.914
BogoMIPS:            3593.25
超管理器厂商:  VMware
虚拟化类型:     完全
L1d 缓存:          32K
L1i 缓存:          32K
L2 缓存:           512K
L3 缓存:           8192K
NUMA 节点0 CPU:    0,1
Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc art rep_good nopl tsc_reliable nonstop_tsc extd_apicid eagerfpu pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec arat overflow_recov succor


[root@localhost ky15]# cat /proc/cpuinfo
processor   : 0
vendor_id   : AuthenticAMD
cpu family  : 23
model       : 96
model name  : AMD Ryzen 7 4800U with Radeon Graphics
stepping    : 1
microcode   : 0x8600103
cpu MHz     : 1795.914
cache size  : 512 KB
physical id : 0
siblings    : 1
core id     : 0
cpu cores   : 1
apicid      : 0
initial apicid  : 0
fpu     : yes
fpu_exception   : yes
cpuid level : 16
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc art rep_good nopl tsc_reliable nonstop_tsc extd_apicid eagerfpu pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec arat overflow_recov succor
bogomips    : 3593.25
TLB size    : 3072 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 43 bits physical, 48 bits virtual
power management:

processor   : 1
vendor_id   : AuthenticAMD
cpu family  : 23
model       : 96
model name  : AMD Ryzen 7 4800U with Radeon Graphics
stepping    : 1
microcode   : 0x8600103
cpu MHz     : 1795.914
cache size  : 512 KB
physical id : 2
siblings    : 1
core id     : 0
cpu cores   : 1
apicid      : 2
initial apicid  : 2
fpu     : yes
fpu_exception   : yes
cpuid level : 16
wp      : yes
flags       : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc art rep_good nopl tsc_reliable nonstop_tsc extd_apicid eagerfpu pni pclmulqdq ssse3 fma cx16 sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand hypervisor lahf_lm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec arat overflow_recov succor
bogomips    : 3593.25
TLB size    : 3072 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 43 bits physical, 48 bits virtual
power management:

复制代码

4.2 查看内存大小

使用free 或 cat /proc/meminfo

[root@localhost ky15]# free
              total        used        free      shared  buff/cache   available
Mem:        1867048      283684     1189772        9316      393592     1381240
Swap:       4194300           0     4194300
[root@localhost ky15]# cat /proc/meminfo
MemTotal:        1867048 kB
MemFree:         1189772 kB
MemAvailable:    1381260 kB
Buffers:            2116 kB
Cached:           306144 kB
SwapCached:            0 kB
Active:           229236 kB
Inactive:         250000 kB
Active(anon):     171852 kB
Inactive(anon):     8440 kB
Active(file):      57384 kB
Inactive(file):   241560 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:       4194300 kB
SwapFree:        4194300 kB
Dirty:                 0 kB
Writeback:             0 kB
AnonPages:        171016 kB
Mapped:            87664 kB
Shmem:              9316 kB
Slab:              85352 kB
SReclaimable:      47308 kB
SUnreclaim:        38044 kB
KernelStack:        5744 kB
PageTables:        12680 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     5127824 kB
Committed_AS:    1259164 kB
VmallocTotal:   34359738367 kB
VmallocUsed:      180916 kB
VmallocChunk:   34359310332 kB
HardwareCorrupted:     0 kB
AnonHugePages:     45056 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:       81792 kB
DirectMap2M:     2015232 kB
DirectMap1G:           0 kB

复制代码

4.3 查看硬盘和分区情况

使用lsblk 或 cat /proc/partitions

[root@localhost ky15]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0    5G  0 part /boot
└─sda2            8:2    0   14G  0 part 
  ├─centos-root 253:0    0   10G  0 lvm  /
  └─centos-swap 253:1    0    4G  0 lvm  [SWAP]
sr0              11:0    1  4.2G  0 rom  
[root@localhost ky15]# cat /proc/partitions
major minor  #blocks  name
​
   8        0   20971520 sda
   8        1    5242880 sda1
   8        2   14688256 sda2
  11        0    4415488 sr0
 253        0   10485760 dm-0
 253        1    4194304 dm-1
​
复制代码

4.4 查看机器架构 architecture

[root@localhost ky15]# arch
x86_64
复制代码

4.5 查看系统内核版本号、发行版本号

uname -r :查看当前linux系统的内核版本号

cat /etc/*release :查看Linux发行版本号

(也可以写具体名称,如cat /etc/redhat-releasecatcat /etc/redhat-release)

[root@localhost ~]# uname -r    //查看当前linux系统的内核版本号
3.10.0-693.el7.x86_64

[root@localhost ~]# cat /etc/*-release
CentOS Linux release 7.4.1708 (Core)        //发行版本号
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

CentOS Linux release 7.4.1708 (Core)
CentOS Linux release 7.4.1708 (Core)
复制代码

4.6 系统时间

date查看当前系统时间

-d 你描述的日期,显示指定字符串所描述的时间,而非当前时间

+%F 完整日期格式,等价于 %Y-%m-%d

-%T 时间(24小时制)(hh:mm:ss)

[root@localhost ~]# date -d '-1 day' +%F  //前一天
2021-08-18
​
[root@localhost ~]# date  +%F      //当天
2021-08-19
[root@localhost ~]# date -d '1 day ' +%F-%T    //后一天
2021-08-20-23:28:42
[root@localhost mnt]# date -d "-3 day"      //前三天
20210818日 星期三 11:30:15 CST
[root@localhost mnt]# date -d "+3 day"      //后三天
20210818日 星期三 11:30:15 CST
复制代码

每个文件有三个时间戳

  • atime(access time):最近打开文件的时间。如果你不打开文件是不会刷新的
  • mtime(modify time):内容改变
  • ctime(change time): 属性改变
[root@localhost bin]# stat /etc/passwd
  文件:"/etc/passwd"
  大小:2337       块:8          IO 块:4096   普通文件
设备:fd00h/64768d Inode:9381005     硬链接:1
权限:(0644/-rw-r--r--)  Uid:(    0/    root)   Gid:(    0/    root)
环境:system_u:object_r:passwd_file_t:s0
最近访问:2021-08-29 01:43:01.305128380 +0800
最近更改:2021-08-29 01:43:01.305128380 +0800
最近改动:2021-08-29 01:43:01.305128380 +0800
创建时间:-