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

Linux命令基础操作

上期回顾

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

本章学习目标

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

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

预备知识

1.Linux系统中一切皆文件

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

2.Linux系统目录结构

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

根据图片内容,我将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.命令提示符

bash 复制代码
#格式 [当前登录的用户@主机名 当前所在的目录]

[root@localhost ~]#

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

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

基础操作

pwd 查看当前工作目录

bash 复制代码
[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 穿透符号链接到物理路径 避免软链接误导的调试场景

切换至根目录

bash 复制代码
[root@localhost ~]# cd /
[root@localhost /]# pwd
/

返回家目录(/root

bash 复制代码
[root@localhost /]# cd ~      # 或直接输入 `cd`
[root@localhost ~]# pwd
/root

进入系统配置目录

bash 复制代码
[root@localhost ~]# cd /etc/sysconfig
[root@localhost sysconfig]# pwd
/etc/sysconfig

返回上级目录

bash 复制代码
[root@localhost sysconfig]# cd ..
[root@localhost etc]# pwd
/etc

cd - 返回上一次目录

bash 复制代码
[root@localhost etc]# cd /var/log
[root@localhost log]# cd -
/etc
[root@localhost etc]# 

多级跳转(相对路径)

bash 复制代码
[root@localhost etc]# cd /usr/local/bin
[root@localhost bin]# cd ../../
[root@localhost usr]# pwd
/usr

访问含空格的目录

bash 复制代码
[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 显示文件索引号 文件系统调试或硬链接管理

列出当前目录内容

bash 复制代码
[root@localhost ~]# ls
file1.txt  dir1  script.sh

显示指定目录内容

bash 复制代码
[root@localhost ~]# ls /var/log
boot.log  messages  secure

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

bash 复制代码
[root@localhost ~]# ls -a
.  ..  .bashrc  file1.txt  dir1  .cache

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

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

bash 复制代码
[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)

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

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

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

bash 复制代码
[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 可反转(旧文件在前)

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

bash 复制代码
[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 按文件大小降序

递归列出子目录内容

bash 复制代码
[root@localhost ~]# ls -R dir1
dir1:
subdir1  file2.txt

dir1/subdir1:
config.ini

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

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

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

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

显示文件索引号(inode)

bash 复制代码
[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:空设备输入源

查看单个文件内容

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

同时查看多个文件

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

显示所有行号(含空行)

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

仅非空行编号

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

压缩连续空行

bash 复制代码
[root@localhost ~]# cat -s /etc/motd
Welcome to CentOS!

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

显示行尾符和制表符

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

显示所有非打印字符

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

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

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

合并多个文件

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

追加内容到文件

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

清空文件内容

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

less 查看长文件

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

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

hostname 设置主机名

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

显示当前主机名

bash 复制代码
[root@localhost ~]# hostname
localhost
# 无参数直接显示主机名

临时修改主机名

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

显示主机 IP 地址

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

使用 hostnamectl 永久修改

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

手动配置永久主机名

bash 复制代码
[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信息
bash 复制代码
[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 查看内存输出分为两大部分:

bash 复制代码
[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命令类似

bash 复制代码
[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

查看指定网卡信息

bash 复制代码
[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命令查看文件具体内容,可以去查看各种感兴趣的文件,下一篇开始讲解创建目录和文件的方法,修改文件的方法,继续加油吧,博观而约取,厚积而薄发

相关推荐
杨云龙UP14 分钟前
mysqldump逻辑备份文件恢复总结:全库恢复、单库恢复,一篇讲明白
linux·运维·服务器·数据库·mysql·adb
舰长11517 分钟前
linux系统服务器加固1、中风险 未设置登录失败处理功能和登录连接超时处理功能。2、中风险 未限制默认账户的访问权限。3、中风险 未实现管理用户的权限分离。
linux·运维·服务器
mounter6251 小时前
Linux 7.0 重磅更新:详解 nullfs 如何重塑根文件系统挂载与内核线程隔离
linux·运维·服务器·kernel
色空大师1 小时前
【网站搭建实操(一)环境部署】
java·linux·数据库·mysql·网站搭建
江南风月2 小时前
日志审计系统WGLOG支持syslog吗
运维·网络·日志审计
A.A呐2 小时前
【Linux第十三章】缓冲区
linux·服务器
想唱rap3 小时前
Linux线程
java·linux·运维·服务器·开发语言·mysql
JFSJFX3 小时前
手机短信误删怎么办?这4种恢复办法亲测有效,轻松找回短信
运维·服务器
yuzhuanhei3 小时前
docker常用命令
运维·docker·容器
無名路人3 小时前
Zsh 脚本 + VS Code 任务:NestJS + Vue3 一键部署到 1Panel
运维·后端·自动化运维