四、【Linux基础命令使用】pwd、cd、ls、cat、less、hostname、lscpu、free、ifconfig命令详解

上期回顾

​ 在上一章学习了如何使用MobaXterm工具远程连接Linux操作系统,并且可以正常登录到字符界面,现在就遇到一个重要的问题,我在Windows都是点点点的操作,现在Linux操作系统上都是字符,我没办法通过点点点的方式来使用系统了,应该怎么办呢?接下来我们就来学习Linux的命令行操作,通过命令来实现我们想要做的事情,是不是很神奇?赶快开始吧!

本章学习目标

1.了解Linux系统的预备知识

2.学习Linux系统的基础操作

预备知识

1.Linux系统中一切皆文件

  • 统一操作接口:所有资源都可通过文件操作(open()read()write()close()等)进行访问。
  • 统一命名空间:所有资源都存在于文件系统树中(从根目录/开始)。
  • 权限一致性:通过标准的文件权限(rwx)控制资源访问。

2.Linux系统目录结构

在Linux系统中没有Windows的C盘D盘等概念,而是以目录形式存在,下图讲解每个目录定义的功能。

img

根据图片内容,我将Linux目录结构整理为以下表格:

目录路径类型主要功能说明典型内容/注意事项
/根目录整个文件系统的起点,所有目录的父节点包含所有核心目录
/bin系统目录存放最常用的二进制可执行命令(所有用户可用)ls, cp, cat, mv 等基础命令
/boot系统目录存放启动Linux时使用的核心文件内核文件(vmlinuz)、引导加载程序(GRUB)、初始化内存镜像(initramfs)
/dev设备目录存放设备文件(Linux中访问设备的方式与访问文件相同)/dev/sda(硬盘), /dev/tty(终端), /dev/null(空设备)
/etc配置目录存放系统管理所需的配置文件和子目录/etc/passwd(用户账户), /etc/hosts(主机名映射), /etc/fstab(文件系统表)修改可能导致系统无法启动
/home用户目录用户主目录(每个用户有独立的子目录)/home/username/Documents, /home/username/Downloads
/lib库目录存放系统最基本的动态链接共享库类似Windows的DLL文件,几乎所有应用程序都需要
/lost+found恢复目录系统非法关机后存放恢复的文件碎片仅ext系列文件系统有此目录
/media挂载目录自动挂载可移动设备U盘、光盘等插入后自动挂载在此
/mnt挂载目录临时手动挂载其他文件系统网络共享、外部硬盘等临时挂载点
/opt软件目录额外安装的第三方软件Oracle数据库、大型商业软件等
/proc虚拟目录虚拟文件系统,映射内核运行状态和进程信息(内存中)/proc/cpuinfo(CPU信息), /proc/meminfo(内存信息) 可直接修改某些文件(如echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all屏蔽ping)
/root用户目录系统管理员(root)的主目录独立于/home目录
/sbin系统目录存放系统管理员使用的系统管理程序ifconfig, reboot, fdisk 等需要root权限执行
/selinux安全目录Redhat/CentOS特有,存放SELinux安全机制相关文件类似Windows防火墙的安全机制
/srv服务目录存放服务启动后需要提取的数据Web服务文件(/srv/www), FTP数据等
/sys虚拟目录Linux 2.6+内核的文件系统,集成设备、进程和伪终端信息/sys/class/net(网络设备信息)
/tmp临时目录存放临时文件(重启后自动清除)应用程序生成的临时文件
/usr资源目录存放用户级应用程序和资源包含多个子目录:
├── /usr/bin系统用户使用的应用程序普通用户命令
├── /usr/sbin超级用户使用的管理程序和系统守护程序需要root权限的管理命令
├── /usr/local用户手动安装的软件源码编译安装的软件
└── /usr/src内核源代码默认放置目录Linux内核源代码
/var动态目录存放经常变化的数据包含多个子目录:
├── /var/log系统日志文件syslog, auth.log 等重要的故障排查位置
├── /var/mail邮件目录用户邮件存储
└── /var/run运行时数据(现已被/run替代)进程PID文件、锁文件等
/run运行时临时文件系统,存储系统启动以来的信息(重启后清除)进程PID文件、设备锁文件等

3.命令提示符

#格式 [当前登录的用户@主机名 当前所在的目录]

[root@localhost ~]#

root表示当前登录用户
localhost表示主机名 
~ 代表用户的家目录,当前代表的就是root用户的家目录

以#结尾表示当前登录的身份为root
以$结尾表示当前登录的身份为普通用户

基础操作

pwd 查看当前工作目录

[root@localhost ~]# pwd
/root

表示当前在/root目录下

cd 切换目录

  • cd命令可以实现所在目录的功能

常用场景

命令示例功能说明适用场景
cd /进入系统根目录全局配置管理(如 /etc
cd ~cd返回 root 家目录 (/root)安全操作环境或快速复位
cd -返回上一次目录目录间交替操作(如日志检查)
cd ..返回上级目录层级退出或路径修正
cd ../..返回上两级目录多级目录快速回溯
cd /path/to/dir通过绝对路径跳转精准定位目标目录
cd "dir name"进入含空格目录处理特殊命名目录
cd -P /symlink_dir穿透符号链接到物理路径避免软链接误导的调试场景

切换至根目录

[root@localhost ~]# cd /
[root@localhost /]# pwd
/

返回家目录(/root

[root@localhost /]# cd ~      # 或直接输入 `cd`
[root@localhost ~]# pwd
/root

进入系统配置目录

[root@localhost ~]# cd /etc/sysconfig
[root@localhost sysconfig]# pwd
/etc/sysconfig

返回上级目录

[root@localhost sysconfig]# cd ..
[root@localhost etc]# pwd
/etc

cd - 返回上一次目录

[root@localhost etc]# cd /var/log
[root@localhost log]# cd -
/etc
[root@localhost etc]# 

多级跳转(相对路径)

[root@localhost etc]# cd /usr/local/bin
[root@localhost bin]# cd ../../
[root@localhost usr]# pwd
/usr

访问含空格的目录

[root@localhost ~]# mkdir "My Documents"
[root@localhost ~]# cd "My Documents"  # 双引号包裹
[root@localhost My Documents]# pwd
/root/My Documents

ls 查看文件及目录

  • ls命令可以列出指定目录中的目录,以及文件

常用场景

命令组合功能适用场景
ls -l显示详细文件信息查看权限、所有者、修改时间
ls -lh人性化显示文件大小快速识别大文件(如日志)
ls -lt按修改时间排序(最新在前)定位最新日志或配置文件
ls -lS按文件大小排序(大文件在前)清理磁盘空间时识别大文件
ls -d */仅列出子目录名快速导航目录结构
ls -la显示所有文件(含隐藏文件)排查配置文件(如 .bashrc
ls -i显示文件索引号文件系统调试或硬链接管理

列出当前目录内容

[root@localhost ~]# ls
file1.txt  dir1  script.sh

显示指定目录内容

[root@localhost ~]# ls /var/log
boot.log  messages  secure

显示隐藏文件(包含 . 开头的文件)

[root@localhost ~]# ls -a
.  ..  .bashrc  file1.txt  dir1  .cache

# -a 显示所有文件(含隐藏文件)

长格式显示详细信息(权限/所有者/大小/时间)

[root@localhost ~]# ls -l
-rw-r--r-- 1 root root  512 Jan 1 10:00 file1.txt
drwxr-xr-x 2 root root 4096 Jan 1 09:30 dir1

# -l 显示权限、所有者、大小、修改时间等

人性化显示文件大小(自动转换 KB/MB/GB)

[root@localhost ~]# ls -lh
-rw-r--r-- 1 root root 1.2K Jan 1 10:00 file1.txt

# -h 与 -l 组合,文件大小易读

按时间排序(最新文件在前)

[root@localhost ~]# ls -lt
-rw-r--r-- 1 root root 1.2K Jan 3 14:20 new_log.log
-rw-r--r-- 1 root root  512 Jan 1 10:00 file1.txt

# -t 按修改时间降序,-r 可反转(旧文件在前)

按文件大小排序(大文件在前)

[root@localhost ~]# ls -lS
-rw-r--r-- 1 root root 2.5M Jan 2 11:00 bigfile.iso
-rw-r--r-- 1 root root 1.2K Jan 3 14:20 new_log.log

# -S 按文件大小降序

递归列出子目录内容

[root@localhost ~]# ls -R dir1
dir1:
subdir1  file2.txt

dir1/subdir1:
config.ini

# -R 递归显示所有子目录内容

仅显示目录本身(不显示内容)

[root@localhost ~]# ls -ld /var/log
drwxr-xr-x 10 root root 4096 Jan 3 12:00 /var/log

# -d 显示目录自身属性,而非其内容

显示文件索引号(inode)

[root@localhost ~]# ls -i
12345 file1.txt  67890 dir1

# -i 显示文件或目录的 inode 编号

cat 查看文件内容

  • cat命令可以查看系统内的文件
演示命令功能说明关键选项作用
cat /etc/hostname查看单个文件内容
cat file1.txt file2.txt同时显示多个文件内容
cat -n file.txt显示所有行号(含空行)-n:全局行号
cat -b file.txt仅非空行编号-b:忽略空行
cat -s file.txt压缩连续空行-s:多空行合并为一行
cat -ET file.txt显示行尾符($)和制表符(^I)-E:行尾标识;-T:制表符可视化
cat -A file.txt暴露所有非打印字符(调试用)-A:等价于-vET
cat > newfile.txt创建文件并输入内容(Ctrl+D保存)>:重定向覆盖
cat file1.txt file2.txt > merged.txt合并文件到新文件>:覆盖目标文件
cat notes.txt >> log.txt追加内容到文件末尾>>:重定向追加
cat /dev/null > temp.log清空文件(慎用!)/dev/null:空设备输入源

查看单个文件内容

[root@localhost ~]# cat /etc/hostname
localhost
# 输出 /etc/hostname 文件内容(显示主机名)

同时查看多个文件

[root@localhost ~]# cat /etc/hostname /etc/os-release
localhost
NAME="CentOS Linux"
VERSION="7"
# 按顺序输出多个文件内容

显示所有行号(含空行)

[root@localhost ~]# cat -n /etc/fstab
     1  /dev/sda1 /boot xfs defaults 0 0
     2  
     3  /dev/sda2 /     xfs defaults 0 0
# -n:为所有行编号(包括空行)

仅非空行编号

[root@localhost ~]# cat -b /etc/fstab
     1  /dev/sda1 /boot xfs defaults 0 0
     2  /dev/sda2 /     xfs defaults 0 0
# -b:跳过空行编号

压缩连续空行

[root@localhost ~]# cat -s /etc/motd
Welcome to CentOS!

System is up.
# -s:将连续空行合并为一行

显示行尾符和制表符

[root@localhost ~]# cat -ET test.txt
Hello World!$
^ILine with tab$
# -E:行尾显示$;-T:制表符显示为^I

显示所有非打印字符

[root@localhost ~]# cat -A binary.log
M-oM-;M-?^AM-^D^I$
# -A(等价于-vET):暴露隐藏字符

创建新文件(Ctrl+D结束)

[root@localhost ~]# cat > newfile.txt
This is line 1
Line 2
^D  # 按Ctrl+D保存
# 创建文件并写入内容

合并多个文件

[root@localhost ~]# cat file1.txt file2.txt > combined.txt
# 将file1和file2内容合并到新文件combined.txt

追加内容到文件

[root@localhost ~]# cat notes.txt >> log.txt
# 将notes.txt内容追加到log.txt末尾

清空文件内容

[root@localhost ~]# cat /dev/null > temp.log
# 清空temp.log(/dev/null是空设备)

less 查看长文件

  • 查看内容比较多的文档时使用
[root@localhost /]# less  /etc/passwd

按上、下键进行滚动
支持全文搜索,例如 /bin   按n跳转匹配项
按q键进行退出

hostname 设置主机名

  • 主机名相关设置
命令示例功能说明关键选项作用
hostname显示当前主机名无参数直接输出主机名
hostname server01临时修改主机名立即生效,重启后失效
hostname -i显示主机 IP 地址-i:依赖 /etc/hosts 解析
hostnamectl set-hostname 名称永久修改主机名直接写入 /etc/hostname,无需重启

显示当前主机名

[root@localhost ~]# hostname
localhost
# 无参数直接显示主机名

临时修改主机名

[root@localhost ~]# hostname server01
[root@localhost ~]# hostname
server01
# 临时修改主机名(重启后失效)

显示主机 IP 地址

[root@localhost ~]# hostname -i
192.168.1.100
# -i:显示主机 IP(依赖 /etc/hosts 配置)

使用 hostnamectl 永久修改

[root@localhost ~]# hostnamectl set-hostname permanent-server
[root@localhost ~]# hostname
permanent-server
# 永久生效(写入 /etc/hostname)

手动配置永久主机名

[root@localhost ~]# echo "permanent-server" > /etc/hostname
[root@localhost ~]# vi /etc/hosts
# 添加:192.168.1.100 permanent-server.example.com permanent-server
[root@localhost ~]# reboot
# 需修改 /etc/hostname 和 /etc/hosts 后重启生效

lscpu 查看CPU

  • 查看CPU信息
[root@localhost ~]# lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                4	#代表4个CPU
On-line CPU(s) list:   0-3
Thread(s) per core:    1
Core(s) per socket:    1
座:                 4
NUMA 节点:         1
厂商 ID:           GenuineIntel
CPU 系列:          6
型号:              151
型号名称:        12th Gen Intel(R) Core(TM) i5-12400
步进:              5
CPU MHz:             2495.998
BogoMIPS:            4991.99
超管理器厂商:  VMware
虚拟化类型:     完全
L1d 缓存:          48K
L1i 缓存:          32K
L2 缓存:           1280K
L3 缓存:           18432K
NUMA 节点0 CPU:    0-3
Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon rep_good nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch invpcid_single ssbd ibrs ibpb stibp ibrs_enhanced fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 arat umip pku ospke gfni vaes vpclmulqdq movdiri movdir64b md_clear spec_ctrl intel_stibp flush_l1d arch_capabilities

free 查看内存输出分为两大部分:

[root@localhost ~]# free -h
              total        used        free      shared  buff/cache   available
Mem:           3.7G        552M        2.7G         16M        442M        2.9G
Swap:          8.0G          0B        8.0G
  1. Mem 行:物理内存(RAM)使用情况
  2. Swap 行:交换空间(虚拟内存)使用情况

参数字段说明

字段含义重要性
total系统总物理内存大小(如 15Gi硬件实际安装的内存容量
used已分配的内存(含应用程序占用 + 部分缓存)并非“已消耗”,包含可回收的缓存(buff/cache
free完全空闲的内存(未被任何进程或缓存使用)值较低不一定表示内存不足(因系统主动利用内存缓存)
shared多个进程共享的内存(如共享库、tmpfs 文件系统)通常较小(示例中 1.2Gi
buff/cache内核缓冲区(Buffer) + 文件缓存(Cache)可回收内存(系统需时自动释放)
available真正可用内存free + 可回收的 buff/cache关键指标:反映新进程可用内存量(示例 9.5Gi

ifconfig 网卡ip设置

查看网卡信息,与ip a s命令类似

[root@localhost ~]# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.2.134  netmask 255.255.255.0  broadcast 192.168.2.255
        ether 00:0c:29:15:71:b1  txqueuelen 1000  (Ethernet)
        RX packets 556  bytes 73934 (72.2 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 256  bytes 44977 (43.9 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255
        ether 52:54:00:47:29:1c  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

查看指定网卡信息

[root@localhost ~]# ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.2.134  netmask 255.255.255.0  broadcast 192.168.2.255
        ether 00:0c:29:15:71:b1  txqueuelen 1000  (Ethernet)
        RX packets 186  bytes 20684 (20.1 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 127  bytes 24448 (23.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

总结

​ 本文介绍了Linux系统的基础目录结构,并演示了pwd、cd、ls、cat、less、hostname、lscpu、free、ifconfig命令相关使用方法,通过本章学习我们现在可以自由切换目录,也就是说可以在Linux中自由行走了,也可以通过cat、less命令查看文件具体内容,可以去查看各种感兴趣的文件,下一篇开始讲解创建目录和文件的方法,修改文件的方法,继续加油吧,博观而约取,厚积而薄发

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

爱听雨的少年

感谢老板支持,早日成为技术大牛

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

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

打赏作者

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

抵扣说明:

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

余额充值