Linux基本概述

Linux网络配置

一些常见命令

ctrl + alt + t                // 打开终端
sudo apt install net-tools    // 安装网络工具
ifconfig                      // 查看IP地址
ctrl + c                      // 终止程序

桥接模式和NAT模式


桥接模式(Bridged Networking)--桥接网络

手动配置IP、子网掩码、网关,地址需要和宿主机同一网段,相当于局域网内新建了一台主机。

NAT模式(Netword Address Translation)--网络地址转换

所谓nat模式,就是虚拟系统会通过宿主机的网络来访问外网,而这里的宿主机相当于有两个网卡,一个是真实网卡,一个是虚拟网卡,真实网卡相当于链接了现实世界的真实路由器,而宿主机的虚拟网卡,相当于链接了一个可以认为是虚拟交换机(这个虚拟交换机他同时链接了虚拟系统(linux)和宿主机),这个时候的虚拟网络想访问外网,就必须通过宿主机的IP地址,而外面看来也确实是宿主机的IP地址(实则是虚拟机访问的!!),完全看不到虚拟网络局域的内部形式,而这个时候linux和宿主机和虚拟交换机形成一个网段,宿主机和真实路由形成一个网段!!

静态IP地址的设置

远程连接

远程连接工具

Windows常用xshell;MAC常用item2

xshell是一款终端模拟软件,它可以使用ssh协议连接到远程服务器上。我们使用xshell连接到我们的虚拟机。在将来的工作中,服务器通常放置在机房当中,程序员们通常是使用xshell、putty等ssh软件来连接到服务器,从而能够在服务器上面编程

  • 更新apt:sudo update apt

  • 安装ssh:sudo apt install ssh

  • 查看ssh是否启动:ps -elf | grep sshd

用xshell连接虚拟机:

注意:主机处填写虚拟机IP地址,随后输入用户名及密码即可连接。

Linux发行版本

发行版本 = 内核 + 其他软件支撑

Linux架构图

应用层可以通过 系统调用、shell和库函数 来访问内核层。

内核负责两个功能:控制计算机硬件资源(CPU、内存、外部设备);为上层应用层运行提供环境。

系统调用:内核为上层应用程序提供的接口。

库函数:对系统调用进行包装,方便程序员使用(如:printf、scanf、malloc、free...)。

shell(命令解释器):它读取用户输入,然后执行命令。shell拥有很多版本,我们将介绍bash(Bourne-again shell),它位于/bin/bash,Linux和MacOS都可以使用bash。

命令:一般来说,命令都是一些简单的可执行程序。
脚本(script):命令的集合。

Linux系统与用户

  • Linux是多用户的系统,一个用户可以多次(同时)登录一个Linux系统,多个用户也可以(同时)登录一个Linux系统。(与Windows桌面版本不一样)

  • 使用Linux系统就像是入住一间豪宅。豪宅有它的主人,家人和客人;类似地,Linux系统的用户也分为普通用户和特权用户。

  • 普通用户有很多个,它们只能使用系统的部分功能,而超级用户只有一个,它的名字是root,它可以使用系统的所有功能--包括删除另外一个用户。

  • 对于部分普通用户,它们可以使用sudo命令来临时提高自己的权限,从而可以执行一些(而不是所有)特权命令,比如想要使用apt install命令在系统上安装软件,使用shutdown命令关机等等。

  • 普通用户的shell命令提示符是$,root的shell命令提示符是#。

  • 每个用户都在一个组当中。组被用于将若干用户集合到项目或部门当中去。组机制允许同组的各个成员可以共享资源

  • 为了节约空间,操作在保存用户和组信息的时候,只保存两个整型数字,称为用户ID和组ID。用户ID和组ID和用户名和组名是一 一对应的。

Linux常用命令

在进入Linux的时候,只需要输入用户名和口令就可以登录Linux系统。用户名的信息存储在/etc/passwd里面,而口令信息存储在/etc/shadow里面。当用户登录以后,系统会先显示一些系统信息,然后最后一行会是一个用来输入命令的地方,这就是我们的shell程序,它是一个命令行解释器,我们可以向其中输入命令(按下enter键发送命令),然后shell程序会读取命令并执行命令。shell命令也可以读取存储在文件里面的命令,这种文件称为shell脚本。

cat /etc/passwd
cat /etc/shadow

man命令

Linux系统中会内置帮助手册(此手册不用完整的读完,当作字典查阅即可),帮助手册有8个部分,包括用户手册、程序员手册和系统管理员手册等等。通常通过关键字+数字的形式来说明是第几个手册的帮助信息。例如,ls(1)就说明是第一部分(用户手册,即shell命令手册)的ls命令的信息

使用man命令可以查看帮助信息:

man [手册编号] 命令名字


重点掌握前三个(分别对应shell、system call、library routine)

关机命令

ex:
shutdown now

用户子系统

查看所有用户命令

cat /etc/passwd


添加用户

useradd 用户名

注意:只有root用户或者拥有sudo权限的用户使用sudo命令才能添加用户

在Linux系统中,没有消息就是最好的消息。通常命令执行成功时是不会有任何提示的,只有失败的时候才会在shell里面打印错误信息

给useradd命令添加参数,在用户名之前使用-m,可以为用户添加默认家目录(如果不添加家目录,这个用户将无法创建文件)。使用-m参数的同时还需要使用-s参数来指定shell的位置(如果不添加shell的位置,用户的默认shell使用的是sh,它的功能比较弱)

useradd -m 用户名 -s /bin/bash

切换用户

su 用户名      // su(switch user)

切换到其他用户,在su命令后面添加用户名即可。从root用户进入其他用户的时候不需要密码。

删除用户

/*
1、如果用户正在使用中,那么这个用户就不能被删除
2、如果用户在su命令和exit命令构成的用户 栈结构 当中的时候,那么这个用户也不能被删除
3、无法删除用户的家目录以及邮箱
*/
userdel 用户名      
userdel -r 用户名    //用户主目录中的文件将随用户主目录和用户邮箱一起删除

设置密码

passwd 用户名

退出当前用户

exit

当嵌套使用su指令来依次进入多个用户时候,多个用户是使用 栈结构 来管理的。执行su指令相当于将新用户压入栈顶,执行exit指令相当于弹出栈顶。

当用户在上述的 栈结构 中存在的时候,那个用户是不能够被删除的

文件子系统

  • Linux的文件系统是一套单根目录结构。

  • 目录的根基是被称为 根root 的目录,它写作"/"

  • 文件拥有不同的类型,比如目录文件、普通文件等等(目录也是一种文件)

  • 由文件名组成的字符串,以"/"分隔称为路径。根目录开始的路径称为绝对路径,当前目录下的路径称为相对路径。最后一个"/"之前的部分称为目录部分,后面的称为文件部分

查看当前目录

~是家目录的简写,它和/home/用户名/是等价的

在shell的命令输入栏左边,会提示当前目录的路径。其中,如果路径的最左边是~,那么路径的根是用户的家目录(即/home/用户名);如果路径的最左边是/,那么路径的根是root目录。当前目录是相对路径的起始位置,也是进程的“当前位置”。使用pwd命令可以显示当前工作目录:

pwd

切换当前工作目录


用 env 可以查看当前的环境变量,在这里面可以看到"OLDPWD",例如:

创建和删除目录

使用mkdir可以创建目录

使用示例:

mkdir 目录名
  • 如果直接去/home下面使用mkdir,它会提示没有权限。能否在一个目录下去添加新的文件,依赖于用户对目录的写权限,因为在目录下添加文件,实际上是修改了目录文件里面的内容。

  • 目录文件里面实际上是存储一个链表,其中每个链表结点代表一个文件的文件名和磁盘地址信息。

  • 使用mkdir可以一次创建多个目录。

使用rmdir可以删除目录

  • 同样可以使用rmdir删除多个非空目录
rmdir 目录名

注意:rmdir不可以删除非空目录

通配符(wildcard)

  • *:可以匹配任意多个字符(包括 0 个)

  • ?:可以匹配任意一个字符

  • 类(集合):

    • [characters]:匹配集合里任意一个字符

    • [!characters]:匹配集合外任意一个字符

    • [0-9]:匹配任意一个十进制数字

    • [a-z]:匹配任意一个小写字母

使用示例:

查看目录内容

ls -a

示例:

 


 

ls -i

示例:

 


 

在ls命令后面添加-l参数,可以显示文件的详细信息

ls -l

示例:
 


 

 

  • 第一个字母用来说明文件的类型,这种方法是和Windows使用后缀来代表文件类型不同的。

    • -:普通文件
    • d:目录文件
    • c:字符设备文件(鼠标、键盘等)
    • b:块设备文件(磁盘)
    • l:symbol link  符号链接(软链接)
    • p:管道文件
    • s:socket 本地套接字
  • 后续的九个字母代表的是权限。依次是代表拥有者的读,写,执行、拥有组的读,写,执行
    和其他用户的读,写,执行权限。如果文件可读则显示r,可写则显示w,可执行则显示x,
    没有相关权限则显示 - 。

  • 后续的两个字符串依次代表文件拥有者和拥有组。

  • 随后的数字代表了文件的所占用的空间,这个属性只对普通文件,目录文件和符号链接有意义。普通文件的大小可以是0。目录的大小是固定的,在本机中是4096,它和目录下面的文件大小无关,目录文件主要是存放目录下的文件的文件名。符号链接的大小是它指向的文件的路径名长度。

  • 接着就是一个时间和日期,说明的是最后修改的时间。

  • 最后的字符串说明了文件名字,如果是符号链接,它还会显示指向文件的名字。

在ls命令后面添加-lh参数,可以将文件详细信息以“人类可读”的方式来显示,也就是文件的占用空间会自动根据大小来按照K,M,G的单位显示。

ls -lh

示例:

复制文件或者目录

cp [选项] 源文件 目标路径|目标文件
# 当目标是目录的时候,cp命令会直接在目标目录下拷贝一份副本,文件名和源文件一致
# 当目标是文件的时候,cp命令会拷贝源文件的内容,重命名为目标文件的名字

Ubuntu当中,如果cp命令中目标路径已经存在同名文件,那么就会直接覆盖(其他发行版中在选项中添加-f(force 强制)也可以实现同样的效果)
 
如果希望在覆盖之间进行警告,则应该在选项中添加-i(interactive 交互式)。

cp -i

如果源文件是一个目录,那么在选项中必须要添加-r,这里r是recursive(循环递归)的意思,也就是说添加-r以后,cp命令会递归地将目录下的所有文件都进行拷贝。

大致有三种常用的cp操作:

  • cp file1 file2

  • cp file dir(要求dir存在)

  • cp dir1 dir2 -r     //如果dir2不存在,则创建目录dir2,然后将dir1里面的内容复制到dir2中;如果dir2存在,则把dir1以及dir1中的内容复制到dir2目录中

示例:

 

posted @ 2023-02-15 21:29  MyXjl  阅读(18)  评论(0编辑  收藏  举报