Linux文件常用操作命令

一、Linux文件操作命令

Linux命令格式:命令 [参数选项] [文件或路径]

Linux文件操作核心命令
命令 用途
cd 切换目录
pwd 查看当前目录
ls、ll 显示目录内容
mkdir 创建目录
touch 创建空文件
cp 复制文件与目录
mv 移动或重命名文件
rm 删除文件与目录
find 查找目录或文件
clear 清除屏幕,简称清屏
// 返回上级目录
cd .. 
// 表示进入当前目录下的local文件夹
cd ./local
// 绝对路径是由根目录 / 开始写起
// 相对路径是从当前所在的工作目录开始写起
// 总之,绝对路径是相对于根路径 / 的,只要文件不移动位置,那么它的绝对路径是恒定不变的;而相对路径是相对于当前所在目录而言的,随着程序的执行,当前所在目录可能会改变,因此文件的相对路径不是固定不变的。

// 创建多级目录需要在前面加一个 -p
mkdir -p ./tttt/sample/demo
// 加上 -v 之后可以查看命令执行过程
mkdir -p -v ./tttt1/sample/demo
// -p -v 等同于 -pv
mkdir -pv ./tttt2/sample/demo

// 创建新文件
touch filename.txt
// 更新文件时间戳:若文件已存在,touch 会更新该文件的访问时间和修改时间,使其等于当前时间
touch existing_file.txt
// 创建多个文件
touch file1.txt file2.txt file3.log
// 创建带有目录结构的文件(若目录不存在,不会自动创建)
touch docs/report.txt

// 将当前目录下的text.txt文件复制一份到tttt目录下
cp ./text.txt ./tttt
// 如果想复制整个目录,利用 -r 进行迭代(将tttt整个目录,包括里面的文件全部复制一份到tttt1目录下)
cp -r ./tttt ./tttt1

// 文件重命名(前面是当前目录下原文件名,后面是文件命名后的名字)
mv ./erp.apk ./eee.apk
// 文件移动(前面是文件名,后面是要移动到的目录)
mv ./ttt.erp ./sample 

// 删除
rm ./ttt.erp
// 直接删除,不询问是否删除(-f 表示强制删除)
rm -f ./ttt.erp
// 删除整个目录(请谨慎使用)(-r 表示迭代)(删除sample目录下所有文件和目录)
// 如果必须要删除整个目录,可以去掉-f,使用rm -r,进行确认删除
rm -rf ./sample 

// 查找( / 表示在根目录下查找,-name表示按文件名进行查找,*代表模糊匹配)
// 下面这句命令的意思是:在根目录下查找后缀为.exe的文件
find / -name *.exe

二、自用

1、在 Linux 系统中,使用 find 命令来全局查找 harbor.yml 文件。以下是示例命令:
find / -name harbor.yml

# 忽略权限警告查找配置文件
# 2>/dev/null 表示将错误信息(比如权限不足)丢弃,不显示在终端上
# 这样可以避免出现类似 Permission denied 的报错信息
find / -name harbor.yml 2>/dev/null
2、“which”命令可以用于查找可执行文件的位置。
which docker
/usr/bin/docker
3、查看当前的时区设置
[root@gitlab helloworld]# timedatectl
               Local time: Mon 2025-04-14 14:50:16 CST
           Universal time: Mon 2025-04-14 06:50:16 UTC
                 RTC time: Mon 2025-04-14 06:50:15
                Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
              NTP service: active
          RTC in local TZ: no

[root@gitlab helloworld]# date
Sun Apr 20 12:14:20 CST 2025
4、时间同步
# 方式一:chrony 
# chrony 是一个现代化的时间同步工具,推荐使用它来替代 ntpdate。
# 安装并配置 chrony:
dnf install chrony -y
# chrony 的主要命令是 chronyd 和 chronyc
# 查看版本号
chronyd --version 
chronyc --version
# 重新启动
systemctl restart chronyd
# 强制立即同步时间:
chronyc makestep


#  方式二:手动设置系统时间
sudo timedatectl set-time "2025-04-20 12:08:00"
5、查看当前发行版本信息
[root@gitlab helloworld]# cat /etc/os-release
NAME="Rocky Linux"
VERSION="9.5 (Blue Onyx)"
ID="rocky"
ID_LIKE="rhel centos fedora"
VERSION_ID="9.5"
PLATFORM_ID="platform:el9"
PRETTY_NAME="Rocky Linux 9.5 (Blue Onyx)"
ANSI_COLOR="0;32"
LOGO="fedora-logo-icon"
CPE_NAME="cpe:/o:rocky:rocky:9::baseos"
HOME_URL="https://rockylinux.org/"
VENDOR_NAME="RESF"
VENDOR_URL="https://resf.org/"
BUG_REPORT_URL="https://bugs.rockylinux.org/"
SUPPORT_END="2032-05-31"
ROCKY_SUPPORT_PRODUCT="Rocky-Linux-9"
ROCKY_SUPPORT_PRODUCT_VERSION="9.5"
REDHAT_SUPPORT_PRODUCT="Rocky Linux"
REDHAT_SUPPORT_PRODUCT_VERSION="9.5"

或者可以用查询主机名相关信息的命令行工具

[root@gitlab helloworld]# hostnamectl
 Static hostname: gitlab
       Icon name: computer-vm
         Chassis: vm 🖴
      Machine ID: bafe7c08a66a42d1bf93529ffccf0980
         Boot ID: 16bff59729c946319b4a2588eca3c43c
  Virtualization: vmware
Operating System: Rocky Linux 9.5 (Blue Onyx)
     CPE OS Name: cpe:/o:rocky:rocky:9::baseos
          Kernel: Linux 5.14.0-503.14.1.el9_5.x86_64
    Architecture: x86-64
 Hardware Vendor: VMware, Inc.
  Hardware Model: VMware Virtual Platform
Firmware Version: 6.00

uname -a 获取系统信息

[root@redis ~]# uname -a
Linux redis 5.14.0-503.14.1.el9_5.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Nov 15 12:04:32 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux

# Linux:内核的名称
# redis:主机名
# 5.14.0       - 主版本号(5.14系列)
# -503.14.1    - 发行版补丁号(由 Red Hat 或 Rocky Linux 等发行版维护)
# .el9_5       - 基于 CentOS/Rocky Linux 9 系统(el9 表示 Enterprise Linux 9,_5 表示第5个维护版本)
# .x86_64      - 架构类型(64位x86处理器)
# #1 SMP PREEMPT_DYNAMIC Fri Nov 15 12:04:32 UTC 2024:内核编译信息
# x86_64 x86_64 x86_64: 均表示硬件架构为 64 位 x86 处理器(AMD64/Intel 64)
# GNU/Linux:操作系统类型
# GNU项目(GNU's Not Unix!)是一个由自由软件基金会(Free Software Foundation, FSF)发起和支持的项目,旨在开发一个完全自由的操作系统。该项目始于1983年,由理查德·斯托曼(Richard Stallman)提出,目标是创建一套兼容Unix但完全使用自由软件组成的操作系统。
# 虽然GNU项目的目标是构建一个完整的操作系统,但在其内核Hurd尚未成熟时,Linus Torvalds开发了Linux内核,并于1991年首次发布。Linux内核加上GNU软件套件构成了现在广泛使用的GNU/Linux操作系统。尽管通常简称为Linux,但实际上这个组合才是完整意义上的操作系统,其中包含了来自GNU项目的许多关键组件。
6、tar

格式:tar [选项] [归档文件名] [文件或目录]

常用选项
选项 含义
-c 创建一个新的归档文件(Create)。
-x 解压/提取归档文件(Extract)。
-t 列出归档文件的内容(List)。
-f 指定归档文件的名称(File name)。
-v 显示详细的操作过程(Verbose)。
-z 使用 gzip 压缩或解压文件(gzip 格式)。
-j 使用 bzip2 压缩或解压文件(bzip2 格式)。
-J 使用 xz 压缩或解压文件(xz 格式)。
-r 向现有的归档文件中追加文件(Append)。
-u 更新现有归档文件中的文件(Update)。
--exclude 排除指定的文件或目录。
# 查看归档文件内容
tar -tvf archive.tar

# 使用 gzip 压缩归档文件
tar -czvf archive.tar.gz file1 file2 dir1
# -C 参数告诉 tar 在执行任何操作之前先切换到指定的目录 /root/images/。
# 这意味着 tar 会从这个目录开始读取文件,而不是从当前工作目录开始。
# . 表示当前目录下的所有内容
tar -czvf archive.tar.gz -C /root/images/ .

# 解压 gzip 压缩的归档文件
tar -xzvf archive.tar.gz

# 如果不指定 -C 选项,默认会将文件解压到当前工作目录
# 使用 -C 选项并后跟一个目录路径,就可以将文件解压到指定的目录中。
tar -zxvf archive.tgz -C /data
7、列出所有监听中端口信息
选项 含义
-t TCP 端口
-u UDP 端口
-l 仅显示监听端口
-n 显示数字地址(不解析域名)
-p 显示进程 PID 和名称
# 显示系统中所有监听状态的网络套接字信息,同时提供详细的端口和 IP 地址等内容
ss -tulnp

# 查看 Nginx 的监听端口
ss -tulnp | grep nginx
8、查看当前系统的版本信息
cat /etc/os-release
9、生成一个随机 UUID:
uuidgen
10、在Linux服务器上修改允许SSH登录的配置
# 安装 vim
dnf install vim -y
# 编辑SSH配置文件
vim /etc/ssh/sshd_config
# 修改以下参数
PermitRootLogin yes       # 允许root用户通过SSH登录(可选)
PasswordAuthentication yes # 允许密码认证(如果使用密钥认证,可以设置为no)
PubkeyAuthentication yes   # 允许公钥认证

# 点击 i 进入编辑模式,修改完成后点击 Esc,然后 Shift + :,输入 wq,回车

# 重启SSH服务以应用更改
systemctl restart sshd
11、筛选出云服务器日志中密码错误导致登录失败的 IP 记录,按照出现次数从高到低显示
grep "Failed password" /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr

# 按时间统计攻击趋势
grep "Failed password" /var/log/secure | awk '{print $1,$2,$3,$11}' | sort

# 查看特定 IP 的攻击详情
grep "212.162.155.49" /var/log/secure | grep "Failed password"

# 日志文件被轮转 / 截断
# 如果失败登录记录较多,旧的记录可能已被轮转至历史文件
# 排查方法:查看 /var/log/ 目录下的相关历史日志文件
ls -l /var/log/secure*
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容