1 玩转Linux命令行:基础文件操作实战教程

Hellow! 国庆不知不觉就结束了,果然不当牛马的日子过的就是快啊!,今天博主来介绍Linux乌班图系统的部分常用指令。


h'xu目录

Linux基础指令

Linux背景

os概念,定位

Linux的基本指令

一、文件与目录操作命令

[ls - 列出目录内容](#ls - 列出目录内容)

[cd - 切换目录](#cd - 切换目录)hxu

[pwd - 显示当前目录路径](#pwd - 显示当前目录路径)

touch-创建文件

[mkdir - 创建目录](#mkdir - 创建目录)

[rm&rmdir - 删除文件或目录](#rm&rmdir - 删除文件或目录)

[cp - 复制文件或目录](#cp - 复制文件或目录)

[mv - 移动或重命名文件 / 目录,类似于windows的剪切加重命名](#mv - 移动或重命名文件 / 目录,类似于windows的剪切加重命名)


Linux基础指令

• 初始Linux操作系统

• 初识shell命令,了解若⼲背景知识。

• 初步使⽤40+个常⽤Linux命令

• 掌握Linux权限概念与思想,能深度理解"权限"

• 初步了解Linux⽬录结构含义

• 了解Linux相关知识:⽬录结构/路径/重定向/管道操作等

Linux背景

背景不过多介绍了,网上都有资料,大家自行查阅即可

os概念,定位

总结:操作系统是软硬件的管理者

Linux的基本指令

Linux下的文件理解:文件=文件属性+文件内容

Linux的文件路径分隔符 / ,绝对路径比如:/root/home/cxk 表示跟目录下的root目录下的cxk目录(目录即类似于windows的文件夹),相对路径如:../cxk 表示当前工作路径的上一级目录下的cxk目录。

一、文件与目录操作命令

ls - 列出目录内容

功能 :显示当前或指定目录中的文件和子目录信息。 常用选项

  • -l:以长格式显示(包含权限、所有者、大小、修改时间等详细信息)。

  • -a:显示所有文件(包括隐藏文件,即文件名以 . 开头的文件)。

  • -h:与 -l 配合使用,以人类可读的单位(如 KB、MB)显示文件大小。

  • -r:反向排序(默认按字母升序,加 -r 后按降序)。

  • -R: 列出所有⼦⽬录下的⽂件。(递归)

  • -t:按修改时间排序(最新修改的文件排在前面)。 示例ls -lha /home 显示 /home 目录下所有文件的详细信息,包括隐藏文件,大小以易读单位显示。

cxk@iZbp1eohssncs8onmdq5v3Z:~/Linux/linux-learning$ ls -R test_UDp/ --递归查看指定文件夹中的文件
test_UDp/:
ChatServer Log.hpp Makefile 'translatedict copy.txt' UdpClient.cc UdpServer.hpp
Dict.hpp main mutex.hpp translatedict.txt UdpServer
InetAddr.hpp Main.cc single_pthreadpool.hpp UdpClient UdpServer.cc

test_UDp/ChatServer:
Cond.hpp Log.hpp Makefile mythread.hpp single_pthreadpool.hpp UdpClient.cc UdpServer.cc
InetAddr.hpp Main.cc mutex.hpp Route.hpp UdpClient UdpServer UdpServer.hpp

cd - 切换目录

功能 :改变当前工作目录。 常用用法

  • cd 目录路径:切换到指定目录(绝对路径如 /usr/local 或相对路径如 ../docs)。

  • cd ~cd:切换到当前用户的主目录(如 /home/username)。

  • cd -:切换到上一次所在的目录。

cxk@iZbp1eohssncs8onmdq5v3Z:~/Linux/linux-learning$ pwd

/home/cxk/Linux/linux-learning

cxk@iZbp1eohssncs8onmdq5v3Z:~/Linux/linux-learning$ cd ..

cxk@iZbp1eohssncs8onmdq5v3Z:~/Linux$ pwd

/home/cxk/Linux

cxk@iZbp1eohssncs8onmdq5v3Z:~/Linux$ cd ~

cxk@iZbp1eohssncs8onmdq5v3Z:~$ ls

Linux scott_data.sql

cxk@iZbp1eohssncs8onmdq5v3Z:~$ pwd

/home/cxk

cxk@iZbp1eohssncs8onmdq5v3Z:~$

每⼀次新建⼀个⽤⼾都会在/home⽬录下为新⽤⼾创建新的⼯作⽬录

pwd - 显示当前目录路径

Linux理论知识:路径的认识

• Linux系统中,磁盘上的⽂件和⽬录被组成⼀棵⽬录树,每个节点都是⽬录或⽂件

• 其中普通⽂件⼀定是⽬录树的叶⼦节点

• ⽬录可能是叶⼦(空⽬录),也可能是路上节点

• 理解路径存在的意义:树状组织⽅式,都是为了保证快速定位查找到指定的⽂件,⽽定位⽂件就需要具有唯⼀性的⽅案来进⾏定位⽂件。其中任何⼀个节点,都只有⼀个⽗节点,所以,从根⽬录开始,定位指定⽂件,路径具有唯⼀性

• 绝对路径:⼀般从/开始,不依赖其他⽬录的定位⽂件的⽅式

• 相对路径:相对于当前⽤⼾所处⽬录,定位⽂件的路径⽅式

• 绝对路径⼀般不会随着⽤⼾的路径变化⽽丧失唯⼀性,⼀般在特定服务的配置⽂件中经常被使⽤

• 相对路径因为它的便捷性,⼀般在命令⾏中使⽤较多

功能:打印当前工作目录的绝对路径,用于确认自己所在的位置。

示例 :在 /home/user/Documents 目录下执行 pwd,输出即为该路径。

touch-创建文件

功能:创建空文件,或更新文件 / 目录的访问时间和修改时间(若文件已存在)。

常用选项

  • -a:仅更新文件的访问时间(Access Time)。

  • -m:仅更新文件的修改时间(Modify Time)。

  • -d <日期时间>:指定更新时间(格式如 2024-08-24 15:30+3 days)。

  • -t <时间戳>:用 timestamp 格式指定时间(格式为 YYYYMMDDhhmm.ss,如 202408241530.00)。

示例

  • 创建空文件 note.txttouch note.txt

  • 更新 oldfile.txt 的修改时间为 3 天前:touch -d "-3 days" oldfile.txt

mkdir - 创建目录

功能 :创建指定的新的空目录。不指定绝对路径则默认在当前路径创建目录 常用选项

  • -p:递归创建目录,若父目录不存在则自动创建。例如 mkdir -p a/b/c 会依次创建 aa/ba/b/c

创建普通空⽬录

cxk@iZbp1eohssncs8onmdq5v3Z:~$ ls

Linux scott_data.sql t.txt

cxk@iZbp1eohssncs8onmdq5v3Z:~$ pwd

/home/cxk

cxk@iZbp1eohssncs8onmdq5v3Z:~$ mkdir ddd #当前路径下创建ddd目录(即文件夹)

cxk@iZbp1eohssncs8onmdq5v3Z:~$ ls

ddd Linux scott_data.sql t.txt

cxk@iZbp1eohssncs8onmdq5v3Z:~$ mkdir ddd/ddd -p #当前路径下创建多级目录,父级目录不存在则创建

cxk@iZbp1eohssncs8onmdq5v3Z:~$ ls

ddd Linux scott_data.sql t.txt

cxk@iZbp1eohssncs8onmdq5v3Z:~$ ls ddd/

ddd

cxk@iZbp1eohssncs8onmdq5v3Z:~$ mkdir -p /home/cxk/l#指定绝对路径,父极路径存在则不创建

cxk@iZbp1eohssncs8onmdq5v3Z:~$

path1

└── path2

└── path3

└── path4

tree命令是⼀个递归以树状结构显⽰指定⽬录的命令,如果没有安装

如果当前⽤⼾是root: apt install -y tree (因为现在开始⽤的都是root,所以推荐这个⽤法)

如果当前⽤⼾是普通⽤⼾: sudo apt install -y tree (后⾯讲讲完vim,⼤家才能将⾃⼰添加

到系统信任列表中,暂时普通⽤⼾⽆法使⽤sudo)

  • -v:显示创建目录的详细过程(verbose 模式)。 示例mkdir -p project/src 创建 project 目录及其子目录 src
rm&rmdir - 删除文件或目录

rm功能 :删除指定的文件或目录(注意:Linux 中删除操作通常不可恢复,需谨慎使用)。 常用选项

  • -f:强制删除,即使⽂件属性为只读(即写保护),亦直接删除。

  • -r-R:递归删除目录及其内容(包括子目录和文件)。删除目录必须加此选项。

  • -v:显示删除过程的详细信息。 示例rm -rf old_files 强制删除 old_files 目录及其所有内容(无确认提示)。

  • rmdir :删除空⽬录 ,-p 当⼦⽬录被删除后如果⽗⽬录也变成空⽬录的话,就连带⽗⽬录⼀起删除。目录不为空是不能删除的,,只能用rm删除了。

cp - 复制文件或目录

功能:cp [选项] 源⽂件或⽬录 ⽬标⽂件或⽬录

• cp指令⽤于复制⽂件或⽬录

如同时指定两个以上的⽂件或⽬录,且最后的⽬的地是⼀个已经存在的⽬录,则它会把前⾯指定的所有⽂件或⽬录复制到此⽬录中,如果目标文件或者目录不存在则会创建。就是把指定路径下的目录或者文件拷贝到指定路径下的目录或者文件中,中间的父极路径一定要存在,cp只会创建最后一级目录或者文件

常⽤选项

• -f或--force强⾏复制⽂件或⽬录,不论⽬的⽂件或⽬录是否已经存在

• -i或--interactive覆盖⽂件之前先询问⽤⼾

-r 递归处理,将指定⽬录下的⽂件与⼦⽬录⼀并处理。若源⽂件或⽬录的形态,不属于⽬录或符 号链接,则⼀律视为普通⽂件处理

cxk@iZbp1eohssncs8onmdq5v3Z:~ ls ddd l Linux scott_data.sql t.txt #拷贝当前路径下的文件 cxk@iZbp1eohssncs8onmdq5v3Z:\~ cp -r ddd myd#没有该目录则创建该目录然后把ddd目录的内容拷贝到myd目录下
cxk@iZbp1eohssncs8onmdq5v3Z:~ ls ddd l Linux myd scott_data.sql t.txt cxk@iZbp1eohssncs8onmdq5v3Z:\~ ls myd/
ddd t.txt
cxk@iZbp1eohssncs8onmdq5v3Z:~ ls ddd l Linux myd scott_data.sql t.txt cxk@iZbp1eohssncs8onmdq5v3Z:\~ mkdir myd1
cxk@iZbp1eohssncs8onmdq5v3Z:~ cp ddd myd1 -r #该目录已经存在则把ddd整个目录拷贝到myd1目录中去 cxk@iZbp1eohssncs8onmdq5v3Z:\~ ls myd1
ddd #整个目录都拷贝进来了
cxk@iZbp1eohssncs8onmdq5v3Z:~$ ls myd1/ddd/
ddd t.txt
#拷贝不同路径下的文件
cp -r a/b/c g/h #拷贝a目录下的b目录下的c目录到g目录下的h目录中,g目录一定要存在。cp不会创建不存在的父亲级路径。

mv - 移动或重命名文件 / 目录,类似于windows的剪切加重命名

功能 :移动文件 / 目录到新位置,或对其重命名(目标文件或者目录不存在则是移动加重命名)。 常用选项

  • -i:若目标文件已存在,提示是否覆盖。

  • -v:显示移动过程的详细信息。 示例

  • 重命名:mv report.txt final_report.txtreport.txt 改名为 final_report.txt

  • 移动:mv ~/downloads/file.zip /tmpfile.zip 移动到 /tmp 目录。

mv /a/g /a/h #如果h目录或者文件已经存在,把g目录移动到h目录下,h目录不存在则重命名为h目录

mv /g/y.txt /h/t.txt#把指定路径下的文件移动到指定路径下,如果t.txt已经存在则是覆盖加重命名

#不存在就是重命名


本期收录于博主的专栏------Linux专栏,有没有感觉一下子不习惯了,用了那么久的图形化界面了,但是使用指令是更加coo的,也是一种情怀,早期的计算机就是使用指令的。l后续还有更多常用指令补充.

感谢每一个观看本篇文章的朋友,更多精彩敬请期待:小董 不懂 *( ̄▽ ̄)°★*

相关推荐
Code Warrior5 小时前
【Linux】线程概念与控制(2)
linux
Java 码农5 小时前
CentOS 7 上安装 PostgreSQL
linux·postgresql·centos
筑梦之路5 小时前
CentOS 7 升级perl版本到5.40.3 —— 筑梦之路
linux·运维·centos
一个不秃头的 程序员5 小时前
从 0 到上线、长期运行、后续更新的**全流程**(适配 CentOS 服务器)
linux·服务器·centos
海阳宜家电脑6 小时前
SQL Server连接字符串
服务器·网络
努力学习的小廉6 小时前
深入了解linux网络—— 自定义协议(上)
linux·服务器·网络
bcgbsh7 小时前
Linux开机启动脚本(cron 的 @reboot 特性)
linux·cron
听风吹雨yu7 小时前
RK3588从数据集到训练到部署YoloV8
linux·yolo·开源·rk3588·rknn
野犬寒鸦7 小时前
从零起步学习Redis || 第十一章:主从切换时的哨兵机制如何实现及项目实战
java·服务器·数据库·redis·后端·缓存