Liunx入门(复习哈哈哈)
Linux
什么是Linux?
Linux是一个开源的免费的类Unix的操作系统,内核由Linus Tovards在19991年发布,其作者也是git分布式版本控制系统的作者。
linux发行版:其他公司基于Linux内核研发的Linux系统(Red Hat,ubuntu,等),包括内核,应用软件,系统工具,库文件,图形界面,Shell,包管理器
Linux系统架构和组成
内核-》系统库-》Shell-》应用程序
内核:负责管理硬件和提供最基本的系统服务,主要组件包括;
设备驱动程序
进程管理
内存管理
文件系统
网络协议栈
系统库:支持应用开发的软件库,提供一些组件,常用的函数和接口,方便开发一些应用程序
C标准库
数学库
动态链接库
线程库
第三方库
shell:是一个命令行解释器,只是一个壳,是用户使用的一个接口,能够接受用户输入的各种命令。
应用程序:平时使用的各种软件,如浏览器,编辑器等
vi和vim编辑器
vim是vi编辑器的增强版。
输入vim查看版本
编辑拆入
vim hello.txt #进入这个文件如果没有就创建一个,进去后默认是命令模式#输入i进入插入模式,输入要插入的内容“欢迎来到陈圣杰的服务器”,按esc退回到命令模式#在命令模式下按下a进入插入模式,在光标后插入。#在命令模式下按下o进入插入模式,在光标下一行插入。#命令模式下按下:进入尾行模式,输入wq保存并退出cat hello.txt #查看当前文件#在命令行模式下可以用HJKL控制光标的左下上右的移动#^跳转到行首,$跳转到行尾#按yy复制光标行内容#按p粘贴内容到光标下一行#按dd删除内容#按2yy,3p,将光标前两行内容复制,在光标行下面复制三次#尾行模式下输入set number,就会显示行号了(关闭,set nonumber)#快捷键Ctrl+f,Ctrl+b,分别是向前翻页向后翻页#按G跳转文件的最后一行gg跳转文件的第一行#100G跳转文件的第一百行#尾行模式输入50,跳转第50行
大小写IAO的不同插入方式:
小写ia分别在光标前后插入
大写IA分别在光标所在行的行首和行尾插入
大小写O分别在当前上一回行和下一行插入内容
查找
#命令模式下输入/后面加上要查找的内容(从光标所在的位置向下查找)输入?即为向上查找#查找到后按n为查找下个#/hello\c查找忽略大小写或者:set ic忽略全局大小写
替换
:40,50s/hello/world/g #把第一行和第五行的所有hello替换成world#按u键撤销
.vimrc文件
保存vi的配置信息的,设置行号,大小写忽略等,快捷键等
常用命令
基本上所有的命令都是命令名加参数构成的
文件与目录操作
cd 目录路径
:切换目录(cd ~
到主目录,cd ..
到上一级,cd -
到上次目录)ls
:列出目录内容ls -a
:显示所有文件(含隐藏文件.xxx
、当前目录.
、上一级目录..
)ls -h
:人性化显示大小(配合-l
用ls -lh
,如4.0K
、2.5M
、1.2G
)ls -t
:按修改时间排序(最新在前,常配合-l
用ls -lt
)ls -r
:反向排序(如ls -lr
反向按名称、ls -ltr
反向按时间)ls -d
:只显示目录本身(如ls -ld /home
仅展示/home
目录信息)ls -i
:显示 inode 编号(如ls -i file.txt
输出123456 file.txt
)ls -F
:文件名后加符号区分类型(/
目录、*
可执行文件、@
软链接,普通文件无符号)
touch 文件名
:创建空文件cp 源 目标
:复制(cp -r
递归复制目录)mv 源 目标
:移动 / 重命名rm 文件名
:删除(rm -r
删除目录,rm -f
强制删除,rm -rf
强制删除目录)mkdir 目录名
:创建目录(mkdir -p
创建多级目录)rmdir 目录名
:删除空目录echo 命令用法
echo 文本
:输出普通文本(无引号时合并多空格,如echo Hello Linux
)
echo "文本/变量"
:输出带空格内容或解析变量(如echo "姓名:$name"
)
echo -e "文本\n转义符"
:解析转义字符(\n
换行、\t
制表符,如echo -e "行1\n行2"
)
echo -n "文本"
:输出后不换行(常用于输入提示,如echo -n "请输入:"
)
echo 内容 > 文件名
:将内容覆盖写入文件(如echo "测试" > test.txt
)
echo 内容 >> 文件名
:将内容追加写入文件(如echo "追加" >> test.txt
)
echo '$变量/特殊符'
:原样输出内容(单引号不解析变量 / 通配符,如echo '$name'
)
文件内容查看
cat 文件名
:查看全部内容more 文件名
:分页查看(空格翻页,q 退出)less 文件名
:灵活分页(支持上下滚动,q 退出)head 文件名
:查看前几行(head -n 10
前 10 行)tail 文件名
:查看后几行(tail -n 10
后 10 行,tail -f
实时监控)
文件权限管理
chmod 权限 文件名
:修改权限(如chmod 755 file.txt
或chmod u+x file.sh
)chown 用户名:组名 文件名
:修改所有者和组(chown user1 file
仅改所有者,chown :group1 file
仅改组)
系统信息查看
uname -a
:查看系统内核信息hostname
:查看主机名whoami
:查看当前用户df -h
:磁盘空间du -h 目录
:目录占用空间free -h
:内存使用情况top
:动态进程资源(q 退出)ps aux
:查看所有进程(ps aux | grep 进程名
查找特定进程)
压缩与解压
tar -cvf 包名.tar 内容
:打包tar -zcvf 包名.tar.gz 内容
:gzip 压缩tar -jcvf 包名.tar.bz2 内容
:bzip2 压缩tar -zxvf 包名.tar.gz
:解压 gziptar -jxvf 包名.tar.bz2
:解压 bzip2unzip 包名.zip
:解压 zipzip 包名.zip 内容
:创建 zip
网络操作
ping 域名/IP
:测试连通性ifconfig
/ip addr
:查看网络信息netstat -tuln
:查看端口占用curl 网址
:访问 URL 并显示内容wget 链接
:下载文件
用户与组管理
useradd 用户名
:创建用户passwd 用户名
:设置密码userdel 用户名
:删除用户groupadd 组名
:创建组usermod -aG 组名 用户名
:添加用户到组
其他常用命令
clear
/Ctrl+L
:清屏history
:查看命令历史(!编号
执行对应命令)which 命令
:查看命令路径find 路径 -name 文件名
:查找文件(如find /home -name "*.txt"
)grep "关键词" 文件名
:搜索内容(grep -r
递归搜索目录)man 命令
:查看帮助手册(q 退出)sudo 命令
:以管理员权限执行
管道与重定向
|
:管道(前命令输出作为后命令输入,如ls -l | grep ".txt"
)>
:重定向输出(覆盖,如ls > list.txt
)>>
:追加输出(不覆盖,如echo "内容" >> file.txt
)2>
:重定向错误输出(如command 2> error.log
)
文件格式解读
输入ls -l
第 1 字段(
-rw-r--r--
):文件权限第 1 位:文件类型(
-
普通文件,d
目录,l
软链接,b
块设备,c
字符设备)后 9 位:权限(分 3 组,每组 3 位,分别代表所有者、所属组、其他用户的
r
读 /w
写 /x
执行权限)
第 2 字段(
1
):硬链接数量目录默认至少为 2(
.
和..
两个特殊链接)
第 3 字段(
user
):文件所有者(用户名)第 4 字段(
group
):文件所属组(组名)第 5 字段(
4096
):文件大小(单位:字节,目录通常显示 4096)第 6-8 字段(
10月 10 14:30
):最后修改时间第 9 字段(
file.txt
):文件名 / 目录名软链接会显示
->
指向源文件(如link.txt -> /home/file.txt
)
链接文件
在 Linux 中,链接文件类似于 Windows 中的 "快捷方式",用于创建文件或目录的引用,方便访问。主要分为两种类型:
软链接(Symbolic Link,符号链接):相当于创建一个指向目标文件的 "快捷方式",独立于源文件存在
ln -s 源文件路径 链接文件路径
特点:
删除源文件后,软链接会失效(显示 "断裂" 状态)
可跨文件系统创建
权限通常显示为 lrwxrwxrwx(实际访问权限由源文件决定)
可以链接到不存在的文件(称为 "悬空链接")
硬链接(Hard Link):与源文件共享相同的 inode,本质上是同一个文件的不同名称
ln 源文件路径 链接文件路径
特点:
删除源文件后,硬链接仍能正常访问(因为 inode 未被删除)
不能跨文件系统创建
不能链接目录(多数 Linux 系统限制)
与源文件拥有相同的权限和属性
在 Linux 中,“跨文件系统” 指的是不同的文件系统之间。这里的 “文件系统” 不是指文件夹结构,而是指被格式化并挂载到系统中的存储分区(如磁盘分区、U 盘、网络存储等),每个分区有独立的文件系统格式(如 ext4、NTFS、FAT32 等)。
目录结构
目录路径 | 核心功能 | 关键文件 / 子目录示例 |
---|---|---|
/(根目录) | 所有目录的 “顶层父目录”,整个文件系统的起点,所有文件都嵌套在其下。 | 直接包含 bin 、etc 、home 、usr 等核心目录 |
/bin | 存放 所有用户可执行的基础命令(系统启动必需,如 ls 、echo 、cp ) | ls 、rm 、mv 、cat 等 |
/sbin | 存放 管理员(root)专用的系统命令(如系统启动、硬件管理相关) | shutdown (关机)、ifconfig (网络配置) |
/etc | 存放 系统和应用的配置文件(所有用户共享,修改需管理员权限) | /etc/passwd (用户信息)、/etc/nginx (Nginx 配置) |
/home | 普通用户的 “个人目录”,每个用户对应一个以用户名命名的子目录(如 user1 ) | /home/user1 (用户 user1 的家目录)、/home/user2/Documents (文档目录) |
/root | 管理员(root 用户)的 “个人目录”(相当于 root 的 home ,普通用户无权访问) | .bashrc (root 的 Shell 配置)、downloads (root 的下载目录) |
/usr | 存放 系统通用资源(非启动必需,类似 Windows 的 Program Files ) | - /usr/bin :普通用户的通用命令(如 git 、vim )- /usr/lib :应用依赖的库文件- /usr/share :共享资源(如字体、帮助文档) |
/var | 存放 动态变化的文件(日志、缓存、临时数据等,大小会随系统运行增长) | - /var/log :系统和应用日志(如 /var/log/syslog 系统日志)- /var/tmp :临时文件(重启后可能保留)- /var/www :部分服务器默认网站目录 |
/tmp | 存放 系统和应用的临时文件(重启后自动清空,所有用户可读写) | 应用运行时生成的临时缓存、临时脚本 |
/mnt | 用于 临时挂载外部存储设备(如 U 盘、移动硬盘、其他分区) | /mnt/usb (挂载 U 盘)、/mnt/data (挂载额外数据盘) |
/media | (部分发行版)自动挂载外部设备的目录(如插入 U 盘后自动生成 /media/user1/U盘名 ) | 无需手动创建,系统自动管理 |
/dev | 存放 硬件设备的 “设备文件”(Linux 中一切设备皆文件,通过此目录访问硬件) | /dev/sda (第一块硬盘)、/dev/tty1 (第一个终端)、/dev/zero (生成空数据的虚拟设备) |
/proc | 存放 系统进程和内核的实时信息(虚拟目录,数据存于内存,不占磁盘空间) | /proc/cpuinfo (CPU 信息)、/proc/meminfo (内存信息)、/proc/1 (PID 为 1 的进程详情) |
/sys | 存放 硬件设备和内核参数的实时配置(虚拟目录,类似 /proc ,用于系统管理) | /sys/class/net (网络接口信息)、/sys/block (块设备信息) |