Linux学些什么东西?学这些就够了!

前言

要想成为程序员,几乎绕不开学习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发行版本

image

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

image

文件的类型:

  • 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 安装指定的软件
sudo apt install 安装多个软件包
sudo apt update 更新指定软件
sudo apt show 显示软件包信息
sudo apt remove 删除软件包
sudo apt autoremove 清理不再使用的软件包
sudo apt purge 移除软件包及配置文件
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
求个赞,求个关注

你可能感兴趣的:(Linux学些什么东西?学这些就够了!)