学习Linux,这些就够了!

本文是Linux入门教程,介绍了Linux的基本概念、发行版、文件系统结构、常用命令、用户管理、Vim编辑器的使用、软件包管理以及软硬链接。学习Linux,你需要掌握如何创建、删除目录,管理文件,使用Vim编辑文件,安装和更新软件,以及理解文件权限和用户管理。此外,了解硬连接和软连接的概念也至关重要。
摘要由CSDN通过智能技术生成

前言

要想成为程序员,几乎绕不开学习Linux操作系统。
很多博客都会讲解Linux相关知识,但却很少告诉我们Linux要学到什么程度,最应该掌握哪些。

想想我们学习的Windows系统,我们会增删改查目录、文件,下载安装卸载软件,开关机、重启。
那我们学习Linux系统也是掌握以上这些就可以了。

跟着本博客学习Linux,不多不少,刚好够用!

1.Linux简介

Linux图标

Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

2.Linux发行版本

3.Linux详解

3.1文件系统结构
文件夹说明
/bin存放二进制可执行文件,常用命令存放于此
/etc存放系统管理和配置文件
/home存放所有用户文件的跟目录
/usr存放系统应用程序
/opt主机额外安装软件所摆放的目录
/proc虚拟文件系统目录,是系统内存的映射
/root系统管理员主目录
/sbin存放二进制可执行文件,只有root才能访问
/dev存放设备文件
/mnt系统提供该目录用于临时挂载其他文件系统
/boot存放用于系统引导时使用的各种文件
/lib存放系统最基本的动态连接共享库
/tmp存放临时文件,也是公用临时文件存储点
/var存放运行时需要改变数据的文件
/lost+found系统非正常关机而留下的文件
3.2常用命令
常用命令说明
ls(list files)列出目录及文件名
cd(change directory)切换目录
pwd(print work directory)显示当前目录
mkdir(make directory)创建新目录
rmdir(remove directory)删除空目录
cp(copy file)复制文件或目录
rm(remove file)删除文件或目录
mv(move file)移动文件或目录/修改文件或目录名
cat显示全部文件内容
tac倒序显示全部文件内容
nl显示文件内容时,同时输出行号
more一页一页的显示文件内容
less精简显示文件内容
head查看文件头部
tail查看文件末尾
chgrp改变文件所属群组
chown改变文件拥有者
chmod改变文件权限
man [命令]查看命令的使用文档
ls [参数] [目录]列出目录或文件名
ls -a列出全部文件
ls -d列出全部目录
ls -l长数据串列出,包含文件属性与权限
ls ~列出家目录下所有文件
cd [相对路径或绝对路径]切换目录
cd …切换至上一层目录
cd ~切换至系统根目录
cd /切换至用户主目录
cd -切换至上一操作所在目录
pwd显示当前目录
pwd -P显示确切路径
mkdir [-mp] 目录名称创建目录
mkdir -m配置文件权限
mkdir -p进行目录递归创建
rmdir删除空目录
rmdir -p连同上一级空目录一起删除
cp [参数] 目录名称 目录拷贝的目标位置复制文件或目录
cp -d若来源档为连结档的属性,则复制连结档属性而非文件本身
cp -f若目标文件已经存在且无法开启,则移除后再尝试一次
cp -i若目标档已经存在时,在覆盖时会先询问动作的进行
cp -p连同文件的属性一起复制过去,而非使用默认属性
cp -r递归持续复制,用于目录的复制行为
cp -s复制成为符号连结档
rm [-fir] 文件或目录移除文件或目录
rm -f忽略不存在的文件,不会出现警告信息
rm -i互动模式,在删除前询问使用者是否删除
rm -r递归删除,谨慎使用
mv [-fiu] source destination移动文件或目录
mv -f如果目标文件已经存在,不会询问而直接覆盖
mv -i若目标文件已经存在时,就会询问是否覆盖
mv -u若目标文件已经存在,且 source 比较新,才会升级 (update)
3.3 用户管理

Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。

用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。

用户管理命令说明
useradd 选项 用户名添加新的用户账号
userdel 选型 用户名删除已有账号
usermod 选项 用户名更该用户属性
passwd 选项 用户名指定和修改用户口令
groupadd 选项 用户组增加新用户组
groupdel 用户组删除已有用户组
groupmod 选项 用户组修改用户组属性
newgrp 用户组切换到新用户组

在Linux操作系统中,有三个概念是我们必须掌握:用户、用户所在群组、别的群组;这三个区分极大地方便了协同工作。

  • 用户可以使用本用户内的资源以及用户所在群组的公共资源
  • 不同群组之间的资源是完全隔离开来的

因为对于Linux系统来说,万物皆文件,所有上述资源就是指代文件。由于用户、用户所在群组、别的群组这三者的区分,我们需要能够查看任一文件对这三者的权限。

#列出所有文件的详细信息

#input:
ls -l

#output:
drwxr--rw- 1 root root 42306 Sep 14 22:03 etc


文件的类型:

  • d: 代表目录
  • -: 代表文件
  • l: 代表软链接(可以认为是window中的快捷方式)

Linux中文件权限分为以下几种:

  • r:代表权限是可读,r也可以用数字4表示
  • w:代表权限是可写,w也可以用数字2表示
  • x:代表权限是可执行,x也可以用数字1表示

解读

drwxr--rw- 1 root root 42306 Sep 14 22:03 etc
  • etc文件是一个目录
  • etc所有者可以读写并执行etc文件
  • etc所述组的用户可读取etc文件
  • etc所不属的组的用户可以读写etc文件
  • etc文件有1个硬连接
  • ect属于root这个用户
  • ect属于root这个群组
  • ect的容量为42306
  • etc最近更改日期为Sep 14 22:03
3.4 Vim编辑器

Vim是从 vi 发展出来的一个文本编辑器。代码补完、编译及错误跳转等方便编程的功能特别丰富,相当于Windows中的记事本。

vim 共三种模式,分别是命令模式,输入模式和底线命令模式。

这三种模式的作用分别是:


命令模式:

用户刚刚启动 vi/vim,便进入了命令模式。

此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。

以下是常用的几个命令:

  • i 切换到输入模式,以输入字符。
  • x 删除当前光标所在处的字符。
  • : 切换到底线命令模式,以在最底一行输入命令。

若想要编辑文本:启动Vim,进入了命令模式,按下i,切换到输入模式。

命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。


输入模式
在命令模式下按下i就进入了输入模式。

在输入模式中,可以使用以下按键:

  • 字符按键以及Shift组合,输入字符
  • ENTER,回车键,换行
  • BACK SPACE,退格键,删除光标前一个字符
  • DEL,删除键,删除光标后一个字符
  • 方向键,在文本中移动光标
  • HOME/END,移动光标到行首/行尾
  • Page Up/Page Down,上/下翻页
  • Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
  • ESC,退出输入模式,切换到命令模式

底线命令模式

在命令模式下按下:(英文冒号)就进入了底线命令模式。

底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。

在底线命令模式中,基本的命令有:

  • :q 退出程序
  • :w 保存文件
  • :wq 保存文件并退出程序

从记事本的视角切入,我们使用记事本的过程是打开/创建记事本,编辑内容,保存退出。


3.5 软件包安装、卸载、查看

apt命令

  • apt 命令提供了查找、安装、升级、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。
  • apt 命令执行需要超级管理员权限(root)
apt [options] [command] [package1,package2,...]
apt常用命令说明
sudo apt update列出所有可更新的软件清单
sudo apt upgrade升级软件包
apt list --upgradeable列出可更新的软件包及版本信息
sudo apt full-upgrage升级软件包,升级前先删除需要更新软件包
sudo apt install <package_name>安装指定的软件
sudo apt install 安装多个软件包
sudo apt update <package_name>更新指定软件
sudo apt show <package_name>显示软件包信息
sudo apt remove <package_name>删除软件包
sudo apt autoremove清理不再使用的软件包
sudo apt purge <package_name>移除软件包及配置文件
sudo pat search 查找软件包
apt list --installed列出所有已安装软件包
apt list --all-version列出所有已安装软件包的版本信息
3.6 软硬连接

Linux 连接分两种,一种被称为硬连接(Hard Link),另一种被称为符号连接(Symbolic Link)。默认情况下,ln 命令产生硬连接。

硬连接

硬连接指通过索引节点来进行连接。在 Linux 的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在 Linux 中,多个文件名指向同一索引节点是存在的。比如:A 是 B 的硬链接(A 和 B 都是文件名),则 A 的目录项中的 inode 节点号与 B 的目录项中的 inode 节点号相同,即一个 inode 节点对应两个不同的文件名,两个文件名指向同一个文件,A 和 B 对文件系统来说是完全平等的。删除其中任何一个都不会影响另外一个的访问。

硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”的功能。其原因如上所述,因为对应该目录的索引节点有一个以上的连接。只删除一个连接并不影响索引节点本身和其它的连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放。也就是说,文件真正删除的条件是与之相关的所有硬连接文件均被删除。

软连接

另外一种连接称之为符号连接(Symbolic Link),也叫软连接。软链接文件有类似于 Windows 的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。比如:A 是 B 的软链接(A 和 B 都是文件名),A 的目录项中的 inode 节点号与 B 的目录项中的 inode 节点号不相同,A 和 B 指向的是两个不同的 inode,继而指向两块不同的数据块。但是 A 的数据块中存放的只是 B 的路径名(可以根据这个找到 B 的目录项)。A 和 B 之间是“主从”关系,如果 B 被删除了,A 仍然存在(因为两个是不同的文件),但指向的是一个无效的链接。

3.7
求个赞😄
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值