Linux基础

Linux的环境选择

服务器

Windows

虚拟机(推荐)

WSL

Mac

安装开发者工具brew

Linux特点

多用户多任务

大家都知道在计算机发展的早期是非常昂贵的,一个学校通常只有一台计算机,但是一个人的任务不可能完全的消耗掉计算机的计算资源,于是就有人突发奇想,能不能同时几个人同时用计算机执行多个任务,于是多用户的管理系统原型就诞生了,而Linux的诞生延续的这样一种思想。

权限管理

Linux有这么多的用户,如何管理是个大麻烦,万一有人偷偷删掉了我的文件怎么办?Linux通过一套读写执行权限系统和用户分组来限制不合法的行为。首先用户分为root用户和普通用户,普通用户无法更改系统的文件,也无法更改属于他人的文件。

文件系统

Linux而言,任何事物都是一堆01组成的文件,包括显卡、处理器、内存等等。甚至以后的脑机接口,对计算机而言,你的大脑只不过是能够输入和输出01的文件摆了

Linux

假设你是一名魔法师,你需要沟通异世界的魔物,来产生无所不能的威力,那么你显然不能正常的对魔物说“快给我变出一堆黄金来”,你必须使用特定的咒语,一个字都不能错,任何微小的错误都会导致模法的失效。在计算机世界也是如此,你需要和机器沟通,这种咒语在Linux上就是命令行。

      魔法师 -> 咒语 -> 魔物     你 -> Linux命令行 -> 机器

命令展示

ls
pwd
cd

找个男人

你已经知道了三个命令,但是突然有一天你忘记了怎么使用ls了,怎么办?你可以找个男人解决这个问题。

man ls

当然身为新时代的独立的他/她/它,怎么可以随随便便就找这个男人呢?况且这个男人太啰嗦了,随随便便就会说一大堆,别急你还有备胎。

tldr ls

安装命令

当你兴冲冲的准备找你的备胎tldr的时候,你发现了一件悲催的事情,报错了,你悲催发现你没有备胎。都别急,让我先急。实际上命令就像windows的软件一样,有些是自带的,有些需要你安装,显然man是自带的,而备胎tldr需要安装。

windows世界里,有windows xpwindows 10windows 11等等,Linux世界也一样,有很多Linux的发行版,比如ubantucentos等等。在这些不同的发行版里,是使用不同的命令行安装工具,比如yumapt等等,不过都大同小异。

apt为例,你可以通过以下命令安装

sudo apt install tldr

权限管理

也许有人试过下面的命令,但是报错显示不允许,为什么?因为你不是高贵的root用户,你无法更改系统的设置,但是你可以通过加入sudo权限组来间接的拥有root权限。

apt install tldr

Linux的权限分为读/写/执行,可以通过以下命令查看,开头信息分别为:文件类型-拥有者权限-所在组权限-其他用户权限 拥有者 创建者 文件名。

ls -l
ll

这个权限状态可以通过三位的二进制码来表示,100表示读,010表示写,001表示执行。然后你知道5代表什么权限吗?

肯定要有人问如何修改权限,如何修改拥有者?当然就是chmodchown了。什么你不会?找那个男人或者备胎,也可以上网搜索答案。

用户管理

鲁迅曾经说过世界上只有两种人,一种是root,一种就是普通用户,事实上在linux的世界就是如此。每个用户都有一个ID,root用户为1,普通用户为1000以上,使用命令可以查看信息

cat /etc/passwd

输出格式->用户名:口令:用户标识号:组标识号:注释性描述;主目录:登录Shell

查看有没有sudo权限

cat /etc/sudoers

当然还有很多关于用户管理的命令,大家自行学习(不是管理员一般用不到)

useradd
groupadd
usermod
passwd

文件系统

万物的起源是什么?我今天就来告诉你是/.在根目录下面是

/
├── bin # 所有⽤⼾可执⾏的⽂件
├── boot # 引导器和内核
├── dev # 设备⽂件
├── etc # 配置⽂件
├── home # ⽤⼾主⽬录
├── libxx # 动态库 .so
├── media # 可移出设备的挂载点
├── mnt # 临时挂载点
├── opt # ⾃带依赖的软件
├── proc # 包含内核和进程信息的虚拟⽂件系统
├── root # root ⽤⼾的主⽬录
├── run # 运⾏时⽂件⽬录,如进程 pid ⽂件,套接字⽂件
├── sbin # 只有 root ⽤⼾可执⾏的⽂件
├── sys # 包含内核和系统信息的虚拟⽂件系统
├── tmp # 临时⽂件系统
├── usr # Unix System Resources 的缩写,存放软件
└── var # 存放经常变化的⽂件,如⽇志

进程和内存管理

每一个任务都有标号

等待你开发的宝藏

文件管理 - cd, pwd, mkdir, rmdir, ls, cp, rm, mv, tar

文件检索 - cat, more, less, head, tail, file, find

输入输出控制 - 重定向, 管道, tee, xargs

文本处理 - vim, grep, awk, sed, sort, wc, uniq, cut, tr

网络相关: wget curl

系统监控 - jobs, ps, top, kill, free, demsg, lsof

勇者大战史莱姆

你已经成为一名合格的勇者了,是时候开始屠龙了!,你要面临的第一个问题是如何编辑文本。有很多编辑命令,比如Emacsvim。我推荐Vim.(vimtutor,在linux下安装了vim的话可以输入vimtutor来看教程)

中级魔法师

初级的魔法师只会一次使用一种咒语,但是中级的魔法师可以一次使用多种咒语,这种神奇的操作就是管道pipe。什么是管道呢?是一边送水一边接水的铜管?事实上的确如此。

find . -name "*.c" -o -name "*.h" |  cat | wc -l

除此之外,中级魔法师还会调动和存储环境当中的魔法元素,而不是所有的魔力都必须要自己输入,这就是重镜像.

ls > test.txt
ls >> test.txt
tr a b < test

中级魔法师还会控制魔力的流向黑洞

flsj 2& > /dev/null`

成熟的中级魔法师还会偷懒,使用脚本。

 #!/bin/bash
...

SSH

登陆

ssh fyg@192.168.0.11
ssh -p fyg

免密登陆-密钥

ssh-keygen
ssh-copy-id -i

Vscode配置ssh

Host Dian11 
    HostName 192.168.0.11
    User fyg
    IdentityFile ~/.ssh/dian11

跳板机

Host Dian11 
    HostName 192.168.0.11
    User fyg
    IdentityFile ~/.ssh/dian11
    ProxyCommand ssh -q -W %h:%p Dian_Public
Host Dian_Public
    HostName 192.168.0.XX
    User fyg
    IdentityFile ~/.ssh/dian_public

计算级网络相关

网址——ip

主机-DHCP-域名解析器

NAT-桥接-主机

最后

这是一次很简单的培训,目的是为了让大家认识Linux,而不是将Linux的全部灌输给大家,这样效果也会很不好,因此本文的任务主要是引导大家学习,让大家认识到Linux有哪些东西。

如果有问题:RTFW

下面推荐学习资料:

《Linux就该这么学》

MIT-Missing-Semester

作业

大家做作业的时候肯定会遇到很多的困难,这是非常正常的,因为这对于你们来说是一个陌生领域的任务。而学会在陌生领域摸爬打滚的能力是你们需要解决的,不会怎么办?到处问,上网搜,问AI都可以。

以下的作业大家自觉做,不会检查。

命令实践

给定文本 (1)提取/etc/passwd下的用户名和组别,以下面的格式输出

name        group
root          1
...

(2)给定一个工程找到main函数所在的目录

apt

(1) 使用apt或者yum安装treetldrvim,python

(2) 学会apt换源

ssh

(1)直连接:在自己的windows上用ssh连接服务器或者自己的虚拟机/WSL

(2)跳转:在寝室用跳板机连接服务器(暂时不做,有问题)

服务器公共服务器信息

IP:dian.group.org
user:public
port:2222
passwd:ljzzy@beibei

用户管理

(1)创建一个新用户

(2)加入sudo权限

网络

(1) 下载一个文件

(2) 打包成tar或者zip格式

(3) 解压缩

进程

(1)后台执行一个命令

(2) 替换到前台

(3) 建立一个忽视ssh断开信号的进程

更多的作业参考上面MIT的课程

results matching ""

    No results matching ""

    results matching ""

      No results matching ""