Linux---第二天---基础指令

xshell全屏和退出全屏:

复制代码
ALT+回车

清屏:

复制代码
clear

查看当前用户是谁:

复制代码
whoami

查看当前路径:

复制代码
pwd

切换当前目录:

复制代码
#切换到当前用户主目录
cd /cd ~

#切换到指定路径
cd /目标目录路径

#切换到相对路径
cd 相对路径

#切换到上一级路径
cd ..

#切换到上一次访问的路径 
cd -

查看当前目录下有什么:

复制代码
#显示文件名
ls

#长格式显示文件和目录的详细信息,以及属性
ls -l  / ll

#显示所有文件和目录,包括隐藏文件(以.开头的文件)
ls -a /  la

# -h:与-l 选项配合使用,以更易读的方式显示文件大小
ls -lh

查看详细信息时,各个属性代表什么

复制代码
-rw-r--r--  1  user  group  1024  Mar 15 10:30  file.txt

1. 文件类型与权限(共 10 个字符)

这是最左侧的 10 个字符,分为两部分:文件类型(第 1 个字符)和权限(后 9 个字符)。

(1)第 1 个字符:文件类型

• -:普通文件(如文本文件、图片、可执行程序等)。

• d:目录(文件夹)。

• l:符号链接(软链接,类似 Windows 的快捷方式)。

• b:块设备文件(如硬盘、U 盘等存储设备)。

• c:字符设备文件(如键盘、鼠标、终端等)。

• p:管道文件(用于进程间通信)。

• s:套接字文件(用于网络通信)。

(2)后 9 个字符:权限(分 3 组,每组 3 个)

权限分为 3 类用户组,每组 3 个字符对应不同权限:

• 第 1-3 位:文件所有者(user)的权限。

• 第 4-6 位:文件所属组(group)的权限。

• 第 7-9 位:其他用户(others)的权限。

每组权限的 3 个字符分别代表:

• r(read):读权限(可查看内容)。

• w(write):写权限(可修改内容,目录的写权限允许创建 / 删除文件)。

• x(execute):执行权限(文件可运行,目录的执行权限允许进入该目录)。

• 若为-,表示该权限未被授予。

示例:

-rw-r--r-- 表示:

• 文件类型是普通文件(-)。

• 所有者(user)有读(r)和写(w)权限,无执行权限(-)→ rw-。

• 所属组(group)只有读权限(r--)。

• 其他用户(others)只有读权限(r--)。

2. 链接数(硬链接计数)

第 2 列的数字(如示例中的 1)表示文件的硬链接数量:

• 对于普通文件:通常为 1(默认只有自身一个硬链接)。

• 对于目录:默认值为该目录下直接子目录的数量 + 2(. 代表自身,.. 代表父目录,各算一个硬链接)。例如,一个空目录的链接数是 2,若包含 3 个子目录,则链接数为 3 + 2 = 5。

3. 文件所有者(user)

第 3 列的名称(如示例中的 user)表示该文件的所属用户,只有该用户(或 root)默认拥有最高权限管理文件。

4. 文件所属组(group)

第 4 列的名称(如示例中的 group)表示该文件所属的用户组,组内用户共享该组的权限。

5. 文件大小

第 5 列的数字(如示例中的 1024)表示文件的大小,默认单位是字节(B):

  • 若配合 ls -lh 命令,会以人类可读的单位(K、M、G 等)显示(如 4.0K1.5M)。
  • 对于目录 :这里显示的是目录本身元数据的大小(通常是 4096 字节),而非目录内所有文件的总大小(需用 du 命令查看)。

6. 最后修改时间

第 6-8 列(如示例中的 Mar 15 10:30)表示文件内容最后一次被修改的时间(月 日 时:分)。

  • 若文件修改时间超过 6 个月,会显示年份(如 Mar 15 2022)。
  • 若需查看创建时间或访问时间,可配合 ls -l --time=ctime(状态改变时间)或 ls -l --time=atime(访问时间)。

隐藏文件:以.开头的文件

创建目录:

复制代码
#创建单目录
mkdir 目录名


#创建多级目录
mkdir -p Test/a/b/c

创建一个空文件,也是要占用磁盘空间的

文件=属性+内容

创建文件:

复制代码
touch 文件名

删除文件或目录:

复制代码
#普通删除文件
rm 文件名

#强制删除,不提示删除信息
rm -f 文件名

#删除目录,-r代表递归删除目录里的内容
rm -r 目录名

#强制删除目录
rm -rf 目录名

#删除多个文件
rm 文件1 文件2 文件3

#删除指定模式的文件(通配符)
    #删除以.txt结尾的所有文件
rm *.txt
    #删除以file开头的文件
rm file*
    #删除doc后只跟一个字符的文件
rm doc?

查看文件状态:

复制代码
stat 文件名

各字段含义

  1. File:文件名或路径。

  2. Size:文件大小(字节),目录显示的是元数据大小(非内容总大小)。

  3. Blocks:文件占用的磁盘块数(每个块通常为 512 字节)。

  4. IO Block:文件系统的 I/O 块大小(通常为 4096 字节)。

  5. regular file :文件类型(与 ls -l 第 1 个字符对应,如目录为 directory,软链接为 symbolic link 等)。

  6. Device :存储文件的设备编号(801h 为十六进制,2049d 为十进制)。

  7. Inode:文件的 inode 编号(文件系统中唯一标识文件的编号)。

  8. Links :硬链接数量(与 ls -l 第 2 列一致)。

  9. Access (权限)

    • 0644:八进制权限表示(对应 -rw-r--r--)。
    • Uid:文件所有者的 ID 和用户名。
    • Gid:文件所属组的 ID 和组名。
  10. 时间戳 (关键区别于 ls -l):

    • Access(atime):文件最后被访问(读取)的时间。
    • Modify (mtime):文件内容最后被修改的时间(ls -l 默认显示此时间)。
    • Change(ctime):文件元数据(如权限、所有者)最后被修改的时间。
    • Birth(birthtime):文件创建时间(部分 Linux 系统支持,如 ext4、btrfs)。

常用选项

  • stat -c "%y %n":只显示修改时间(mtime)和文件名(简化输出)。
  • stat -f 目录名:显示目录所在文件系统的信息(如总空间、可用空间)

查看目录结构:

复制代码
tree [目录路径]  # 不指定路径时,默认显示当前目录

常用选项

  1. -L 级别:限制显示的目录层级深度

    bash

    复制代码
    tree -L 2  # 只显示当前目录下2级内容
  2. -d:只显示目录(不显示文件)

    bash

    复制代码
    tree -d  # 仅展示目录结构
  3. -f:显示文件 / 目录的完整路径

    bash

    复制代码
    tree -f  # 每个条目前显示绝对路径
  4. -i:不显示树枝连接线(简洁模式)

    bash

    复制代码
    tree -i  # 纯文本列表形式展示
  5. -P 模式:只显示匹配通配符的文件 / 目录

    bash

    复制代码
    tree -P "*.txt"  # 只显示所有txt文件
  6. -I 模式:排除匹配通配符的文件 / 目录

    bash

    复制代码
    tree -I "node_modules"  # 排除node_modules目录
  7. -h:以人类可读的单位显示文件大小

    bash

    复制代码
    tree -h  # 显示文件大小(如4K、2M)

部分系统默认未安装 tree,可通过包管理器安装:

• Ubuntu/Debian:sudo apt install tree

• CentOS/RHEL:sudo yum install tree

命令的本质:

命令的本质就是可执行程序

给命令起临时别名:

复制代码
alias 别名='原命令 [选项/参数]'

查看手册:

复制代码
man 1 命令名

1代表一号手册

拷贝:

复制代码
#复制文件到指定位置
cp 源文件 目标路径

# 复制多个文件到目录
cp 文件1 文件2 ... 目标目录

#复制目录(必须加-r选项)
cp -r 源目录 目标目录

#拷贝目录并重命名
cp -r project/ project_backup/

常用选项

选项 功能说明
-r/-R 递归复制目录(必须用于目录复制)
-i 覆盖文件前提示确认(避免误覆盖)
-f 强制覆盖已存在的文件(不提示)
-u 仅复制源文件比目标文件新的内容(更新复制)
-v 显示复制过程(verbose 模式,适合调试)
-p 保留文件的权限、所有者、时间戳等属性
-a 归档模式(等同于-dR --preserve=all),适合完整备份目录(保留链接、权限等所有属性)

剪切:

mv 命令主要用于移动文件或目录,也可用于重命名文件或目录,其基本语法为:

复制代码
mv [源文件/目录] [目标路径/新名称]

# 将 file1.txt、file2.txt 移动到 backup 目录
mv file1.txt file2.txt backup/

后面为目录,就是移动,是文件名就是重命名

查看日志:

cs 复制代码
cat 日志文件  # 一次性查看所有文件

tac 日志文件  # 一次性反向查看文件

more 日志文件 # 查看日志,日志会将屏幕打满后就不显示,但是支持上翻下翻,q退出

less 日志文件 # 进入分页查看模式
# 在 less 中按 / 输入关键词搜索,按 q 退出

tail -日志行数 日志文件 #查看末尾的几条日志

tail 日志文件 #默认打印末尾的10条日志文件

head -日志行数 日志文件 #查看开头的几条日志

head 日志文件 #默认打印开头的10条日志文件

head -510 日志文件 | tail -10  #查看500-510行日志,|是管道,将|前面的结果交给后面处理

查看日志操作 | wc -l #日志条数

date指令:

cs 复制代码
# 显示格式:年-月-日 时:分:秒
date +"%Y-%m-%d %H:%M:%S"  # 输出:2025-08-06 10:30:45

# 显示星期和日期
date +"%a, %b %d, %Y"      # 输出:Wed, Aug 06, 2025

通过 + 符号 followed by 格式符,可按需求输出特定格式的时间,常用格式符如下:

• %Y:四位年份(如 2025)

• %m:两位月份(01-12)

• %d:两位日期(01-31)

• %H:24 小时制小时(00-23)

• %M:分钟(00-59)

• %S:秒(00-59)

• %a:缩写星期(如 Wed)

• %b:缩写月份(如 Aug)

cal(日历):

cs 复制代码
cal    #显示当前月份

# 查看2024年2月的日历
cal 2 2024

cal 2025  # 显示2025年全年日历

cal -3    # 输出当前月上一个月下一个月

cal -y  # 显示2025年全年日历

cal -j 8 2025    #显示今天是一年中的第几天

cal -m  # 显示几天是一周中的第几天

查找:

find:

cs 复制代码
# 在当前目录(.)下查找名为 "example.txt" 的文件
find . -name "example.txt"

# 忽略大小写查找(-iname)
find /home -iname "Example.TXT"

# 查找所有 .log 后缀的文件
find /var -name "*.log"

whereis / which:查找命令位置

专门用于查找系统命令的可执行文件、源码或手册页。

  • which :查找命令的可执行文件路径(优先显示环境变量 $PATH 中的结果):

    复制代码
    which python  # 输出:/usr/bin/python
    which ls      # 输出:/bin/ls
  • whereis:同时显示命令的可执行文件、源码和手册页位置:

    复制代码
    whereis gcc
    # 输出:gcc: /usr/bin/gcc /usr/lib/gcc /usr/share/man/man1/gcc.1.gz

基本重定向符号

  1. >:覆盖写入

    echo 的输出内容写入指定文件,若文件已存在则覆盖原有内容

    复制代码
    echo "Hello World" > test.txt  # 创建或覆盖 test.txt,写入 "Hello World"
  2. >>:追加写入

    将内容添加到文件末尾,不影响原有内容。

    复制代码
    echo "Another line" >> test.txt  # 在 test.txt 末尾添加新内容

特殊用法

  • 重定向空内容(清空文件)

    复制代码
    echo "" > test.txt  # 清空 test.txt 的内容

grep:

复制代码
grep -n "匹配的字符" 文件名  #查找包含匹配字符的行

grep -v "匹配的字符" 文件名  #排除包含匹配字符的行

grep -i "匹配的字符" 文件名  #查找包含匹配字符的行,忽略大小写

打包和压缩:

zip/unzip指令:

复制代码
zip file.zip file.txt   #压缩单个文件

zip files.zip file1.txt file2.txt  #压缩多个文件

zip -r dir.zip dir/      #压缩目录


unzip file.zip        #解压缩到当前目录

unzip file.zip -d target_dir    #解压缩搭配指定目录

unzip -l file.zip        #查看压缩包内容,不解压

tar:

  • 核心作用 :将多个文件 / 目录打包成单个归档文件(.tar),或从归档文件中提取内容。
  • 常用选项
    • -c:创建新归档(打包)。
    • -x:提取归档中的文件(解包)。
    • -t:列出归档中的内容(查看)。
    • -f [文件名]:指定归档文件名(必须放在选项最后)。
    • -v:显示操作过程(详细模式)。
    • 压缩相关:
      • -z:结合 gzip 压缩 / 解压(文件后缀 .tar.gz.tgz)。
      • -j:结合 bzip2 压缩 / 解压(文件后缀 .tar.bz2)。
      • -J:结合 xz 压缩 / 解压(文件后缀 .tar.xz)。
复制代码
tar -cvf archive.tar file1.txt dir1/  # 将 file1.txt 和 dir1 打包为 archive.tar  #只打包不压缩

#带压缩的打包
# gzip 压缩(最常用)
tar -czvf archive.tar.gz file1.txt dir1/

# bzip2 压缩
tar -cjvf archive.tar.bz2 file1.txt dir1/

# xz 压缩(压缩率最高,速度较慢)
tar -cJvf archive.tar.xz file1.txt dir1/


#查看文件
# 查看普通 tar 包
tar -tvf archive.tar

# 查看压缩的 tar 包(根据压缩类型加 -z/-j/-J)
tar -tzvf archive.tar.gz  # gzip 压缩包
tar -tjvf archive.tar.bz2  # bzip2 压缩包


#解压解包
# 普通 tar 包
tar -xvf archive.tar

# 压缩包(根据类型加 -z/-j/-J)
tar -xzvf archive.tar.gz  # gzip 解压

tar -xzvf archive.tar.gz -C /path/to/destination  # 解压到 /path/to/destination 目录

Linux和Windows压缩包互传:

sz(发送)和rz(接收)

查看是否安装sz和rz

安装sz和rz

复制代码
sudo apt update
sudo apt install lrzsz

Linux传送到Windows

Windows传到Linux:(也可以Windows直接拖拽到xshell)

远程拷贝:

复制代码
# 本地到远程
scp [选项] 本地文件/目录 远程用户@远程主机IP:远程路径

# 远程到本地
scp [选项] 远程用户@远程主机IP:远程文件/目录 本地路径

# 远程到远程
scp [选项] 远程用户1@主机1:路径1 远程用户2@主机2:路径2

常用选项

  • -r:递归复制目录(必须用于复制目录时)。
  • -P:指定远程主机的 SSH 端口(默认是 22)。
  • -p:保留文件的权限、修改时间等属性。
  • -v:显示详细的传输过程(用于调试)。
  • -q:静默模式,不显示传输进度。

本地到远程:

复制代码
# 将本地 file.txt 复制到远程主机的 /home/user 目录
scp file.txt user@192.168.1.100:/home/user/

远程到本地:

复制代码
# 将远程主机的 /var/log/syslog 复制到本地当前目录
scp user@192.168.1.100:/var/log/syslog ./

拷贝目录需要加 -r:

复制代码
# 本地目录 dir → 远程主机的 /home/user 目录下
scp -r dir/ user@192.168.1.100:/home/user/

# 远程目录 → 本地当前目录
scp -r user@192.168.1.100:/home/user/docs ./

怎么在Linux环境查看你的体系结构和系统内核版本:

复制代码
uname -a
uname -r

重要的⼏个热键 [Tab], [ctrl]-c, [ctrl]-d

• [Tab]按键---具有『命令补全』和『档案补⻬』的功能

• [Ctrl]-c按键---让当前的程序『停掉』

• [Ctrl]-d按键---通常代表着:『键盘输⼊结束(End Of File, EOF 戒 End OfInput)』的意思;另外,他也可以⽤来取代exit

关机

语法:shutdown [选项] 常⻅选项:

• -h:将系统的服务停掉后,⽴即关机。

• -r:在将系统的服务停掉之后就重新启动

• -t sec:-t 后⾯加秒数,亦即『过⼏秒后关机』的意思

相关推荐
花小璇学linux4 分钟前
imx6ull-驱动开发篇10——pinctrl 子系统
linux·驱动开发·imx6ull·嵌入式软件
Hat_man_21 分钟前
如何在虚拟机(Linux)安装Qt5.15.2
linux·运维·服务器
LLLLYYYRRRRRTT35 分钟前
12. SELinux 加固 Linux 安全
linux·运维·安全
爱学习的小熊猫_1 小时前
在Linux上部署RabbitMQ、Redis、ElasticSearch
linux·redis·elasticsearch·中间件·rabbitmq
我是小bā吖2 小时前
使用阿里云服务器部署dify实战
服务器·阿里云·dify
拾心212 小时前
【运维进阶】DHCP服务配置和DNS域名解析
linux·运维·服务器
陈陈爱java2 小时前
实习文档背诵
linux·服务器·windows
代码改变世界ctw3 小时前
TrustZone技术详解————这篇是AI写的包括图
linux
Johny_Zhao3 小时前
SeaTunnel的搭建部署以及测试
linux·网络·网络安全·信息安全·kubernetes·云计算·containerd·devops·seatunnel·系统运维
nVisual3 小时前
运维新纪元:告别Excel手工规划,实现“零误差”决策
运维·网络·设计模式·自动化