当前位置: 首页 > news >正文

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/

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

查看日志:

cat 日志文件  # 一次性查看所有文件tac 日志文件  # 一次性反向查看文件more 日志文件 # 查看日志,日志会将屏幕打满后就不显示,但是支持上翻下翻,q退出less 日志文件 # 进入分页查看模式
# 在 less 中按 / 输入关键词搜索,按 q 退出tail -日志行数 日志文件 #查看末尾的几条日志tail 日志文件 #默认打印末尾的10条日志文件head -日志行数 日志文件 #查看开头的几条日志head 日志文件 #默认打印开头的10条日志文件head -510 日志文件 | tail -10  #查看500-510行日志,|是管道,将|前面的结果交给后面处理查看日志操作 | wc -l #日志条数

date指令:

# 显示格式:年-月-日 时:分:秒
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(日历):

cal    #显示当前月份# 查看2024年2月的日历
cal 2 2024cal 2025  # 显示2025年全年日历cal -3    # 输出当前月上一个月下一个月cal -y  # 显示2025年全年日历cal -j 8 2025    #显示今天是一年中的第几天cal -m  # 显示几天是一周中的第几天

查找:

find:

# 在当前目录(.)下查找名为 "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 后⾯加秒数,亦即『过⼏秒后关机』的意思

http://www.lryc.cn/news/611888.html

相关文章:

  • 基于Python的超声波OFDM数字通信链路设计与实现
  • 2024年测绘程序设计比赛--空间探索性分析(数据为2025年第三次模拟数据)
  • 基于MCP提示构建工作流程自动化的实践指南
  • ipv6学习
  • ESP32:2.搭建UDP服务器
  • Wireshark协助捕获信号波形
  • 强化应急通信生命线:遨游三防平板、卫星电话破局极端灾害救援
  • OpenWebUI通过pipeline对接dify的workflow
  • 5G随身WiFi怎么选?实测延迟/网速/续航,中兴V50适合商务,格行MT700适合短租、户外党~避坑指南+适用场景全解析
  • 5G毫米波射频前端测试:OTA暗室与波束成形性能验证
  • 中宇联5G云宽带+4G路由器:解锁企业办公高效协同与门店体验升级
  • GPU 优化-用 tensor core实现5G Massive MIMO 64x64
  • Solidity:接口与实现的“契约”关系研究,以Uniswap V3为例
  • Lesson 31 Success story
  • 【动态规划 | 01背包】动态规划经典:01背包问题详解
  • 虚拟机磁盘扩容
  • 深度解读丨利用 DeepSeek 开放权重模型推动悦数 Graph RAG AI 开发平台创新
  • WinXP配置一键还原的方法
  • Day 33: 动手实现一个简单的 MLP
  • 《深入浅出Embedding》这本书
  • 【LeetCode 热题 100】347. 前 K 个高频元素——(解法三)桶排序
  • 深入理解C++中的stack、queue和priority_queue
  • 【docker】namespace 命名空间
  • LangChain4j检索增强生成RAG
  • Anthropic于本周一推出了其旗舰模型的升级版Claude Opus 4.1
  • 第十八天:C++进制之间的转换
  • 17.9 ChatGLM3-6B开源!32K长文本+推理提速45%,多任务性能飙升29.4%
  • Transwell 细胞迁移与侵袭实验:从原理到操作的详细指南
  • VSCode:基础使用 / 使用积累
  • QML开发:QML中的基本元素