教程 linux自学300集(感觉讲的比较全,还不错) 黑马ubuntu Linux系统教程 C语言中文网 写的很全面的感觉
公众号秀拓跋阿秀的总结 2.6W字系统总结,带你实现 Linux 自由!
操作系统:是沟通软件和硬件的桥梁,你在软件中产生了一种操作,那么操作系统就会调动cpu、内存、磁盘等来实现你的操作。Linux是一种操作系统核心。 一般一个产品分为客户端和服务端,客户端就是app、网页、游戏等等,服务端一般用的都是Linux。
Linux系统组成: 各种应用软件、命令、服务 命令解释器shell(bash) linux内核
Linux分类:红帽系列:RHEL、CentOS(服务器很多都是CentOS,所以要会用yum命令)、Fedora、Rocky Linux Debian系列:Debian系统、Kali、Ubuntu系统(可视化窗口做的好看,但企业级不会用,因为占资源)
自学服务器操作的话,要是没有服务器可以用虚拟机创建一个服务器搭一个Linux系统,然后再远程连接这个系统。一般都是远程操作的,直接操作一般都是服务器坏了。
远程连接:起码需要知道 ip地址、用户名(root)、密码。远程连接软件不要找破解的,很可能有木马病毒。Ubuntu默认没有安装SSH,所以想远程连接Ubuntu那边需要先装SSH。 可以买云服务器,然后用本地的增强终端直接通过ssh连买好的云服务器,一样的。
远程连接工具 Windows Xshell/SecureCRT/Putty/FinalShell/MobaXterm Mac SecureCRT/lterm2/FinalShell …… Android JuiceSSH IOS Termius IP地址:每个网络地址
- 公网IP (外网IP):数量限制,比较稀少,只要有网络的地方就可以连接与使用公网ip。比如百度的公网ip可以在cmd里用ping baidu.com来查看,然后这个IP就是公网ip,输入浏览器就直接能访问百度网页。不过像百度这种公网IP会经常变,这个另说。
- 内网(局域网IP):只能在局部使用。 10.0.xx.xx 192.168.xxx.xx 172.16.xxx.xxx
端口:用于区分不同服务,大部分服务都有自己默认的端口号。一般远程连接服务的端口是22。
Bash概述:是命令解释器 (shell),替我们运行、解析命令。
- 执行命令
- 特殊符号
- 运行脚本(代码)
服务器分类
虚拟机 Vmware ESXI 云服务器 国内:阿里云,腾讯云,华为云,Ucloud 国外:aws(亚马逊),GCP(谷歌云),Azure(微软云)
物理服务器 价格昂贵,性能较好:华为,联想,浪潮, Dell Linux用户和用户组管理:Linux用户管理
Linux 是多用户多任务操作系统,换句话说,Linux 系统支持多个用户在同一时间内登陆,不同用户可以执行不同的任务,并且互不影响。例如,某台 Linux 服务器上有 4 个用户,分别是 root、www、ftp 和 mysql,在同一时间内,root 用户可能在查看系统日志、管理维护系统;www 用户可能在修改自己的网页程序;ftp 用户可能在上传软件到服务器;mysql 用户可能在执行自己的 SQL 查询,每个用户互不干扰,有条不紊地进行着自己的工作。与此同时,每个用户之间不能越权访问,比如 www 用户不能执行 mysql 用户的 SQL 查询操作,ftp 用户也不能修改 www 用户的网页程序。
用户组是具有相同特征用户的逻辑集合。简单的理解,有时我们需要让多个用户具有相同的权限,比如查看、修改某一个文件的权限,一种方法是分别对多个用户进行文件访问授权,如果有 10 个用户的话,就需要授权 10 次,那如果有 100、1000 甚至更多的用户呢?显然,这种方法不太合理。最好的方式是建立一个组,让这个组具有查看、修改此文件的权限,然后将所有需要访问此文件的用户放入这个组中。那么,所有用户就具有了和组一样的权限,这就是用户组。
创建新用户 新用户创建 新用户创建2 新用户创建3(讲的不错)
用户切换 用户切换1(包含su和sudo命令) 用户切换2(包含su和sudo命令)当我们只需要短时间内使用其他用户的身份完成某个命令,可以使用
sudo
命令。sudo命令使用前需要先修改配置文件/etc/sudoers,获得使用权限。在不知道root
密码的情况下,我们作为root
用户管理员要授权其他普通用户去执行root
权限的命令操作,sudo
命令可以帮我们实现这一功能。关于sudo
命令与su
命令不同之处,使用root
权限下的命令时sudo
命令只需要知道自己用户的密码,而su
命令需要root
用户的密码,因此sudo
命令比su
命令更加安全。切换用户 su ysy或者su - ysy( 直接进入ysy家目录 ),切换回root也一样。
Linux系统下的文件目录结构
ubuntu没有盘符这个概念,只有一个根目录/,所有文件都在它下面。
只有一块硬盘,home下面的三个对应三个用户,python这个用户存了很多个个人文件。
我从根目录进入,双击home进入home发现有个ysy文件夹,这个文件夹就相当于上面图中的python用户。Linux主要目录速查表:
/:根目录,所有的东西都是从这里开始。
/root : 该目录为系统管理员的家目录,root是具有超级权限的用户。
/home:新增用户时用户的家目录都在/home下面。 root 超级管理员账户的主目录为 /root,普通用户的主目录为 /home/yourIDname。
~:表示当前用户的家目录,如果当前用户是系统管理员root,那么~就是进入了/root文件夹;如果当前用户是普通用户,那么~就进入了用户自己的家目录,也就是自己的文件夹里,假如当前用户是ysy(一个普通用户的名称),那么 ~ 就代表当前所在文件夹为 /home/ysy。
~ysy:表示用户ysy的家目录。
Linux终端命令
1. Linux刚问世的时候并没有图形界面,操作全靠命令完成。
2. 大量服务器维护工作都是远程靠SSH客户端完成,没有图形界面(在当虹实习的时候体会到了,既然不在本地用Linux,那么就可以在win系统里用增强终端来控制远程的Linux服务器)。
Linux 小技巧(快捷键)
1.终端界面放大ctrl shift = 缩小ctrl -
2. linux区分大小写
3. 在敲出文件/目录/命令的前几个前几个字母后,按下tab键可以自动补全,按两下可以提示。
4. 按方向键上/下可以在之前用过的命令里来回切换。
5. 如果想退出选择,或者不想执行当前的命令了,按ctrl+c,多按几次是终止。
Linux中指令的前缀 和 命令格式 指令的前缀&命令格式
1.命令前缀:即终端每一条命令前的内容,例如:[root@centosGuli bin]#
root: 代表当前的登录用户(是Linux管理员,因为Linux管理员账号是root)
@: 没有意义
centosGuli: 代表当前计算机的主机名(Linux默认主机名是localhost)
bin 代表当前所在目录为 bin 目录。需要注意的是,如果当前用户在自己的家目录则当前路径将变成 ~:什么意思呢?就是例如当前用户是 root,如果当前所在文件夹为 /root,那么当前路径为 ~;同理如果当前用户是 drdajie(一个普通用户的名称),如果当前所在文件夹为 /home/drdajie,那么当前路径为 ~。
- #: 代表当前用户是超级用户(root)
- $: 代表当前用户是普通用户
2.命令格式:命令 [选项] [参数]
个别命令使用不遵循此格式 | 命令: linux实现各种功能指令。 |
选项分为简化选项和完整选项,简化选项用 - 调用,完整选项用 – 调用 | 选项 :option 同一个命令的不同功能(条件) |
一条命令可以没有选项和参数 | 参数: 对象(处理文件,目录。。。。) |
一条命令也可以同时有多个选项,需要写在一起 | 例子: 命令 选项 参数 rm -f /oldboy/lidao.txt |
Linux 常用命令(后面要加空格)
序号 | 命令 | 对应英文 | 作用 |
---|---|---|---|
01 | ls | list | 查看当前文件夹下的内容 ls /etc看指定文件夹 ls -l /tmp 显示详细信息 |
02 | pwd | print work directory | 查看当前所在文件夹 |
03 | cd | change directory | 切换文件夹 |
04 | touch | touch | 如果文件不存在,新建文件 touch /home/ysy/test.txt |
05 | mkdir | make directory | 创建目录(新建文件夹) mkdir -p a1/b1/c1 表示在当前目录下创建a1,再在a1里创建b1… |
06 | rm | remove | 删除指定的文件,删除文件夹是rm -r(直接从磁盘里删掉,恢复不了) |
07 | clear | clear | 清屏 |
08 | ip a | 可以查看ip地址 | |
09 | cat | 显示、查看文件内容 |
Linux以 . 开头的文件是隐藏文件(一般都是一些配置文件),ls需要加-a才能显示 ls -a ,ls -l -h (或者ls -lh)是显示包括文件大小的详细信息。ls -la
. 表示当前目录 . .表示上一级目录
cd 和 cd ~都是返回家目录,cd . .返回上一级目录,cd . 是原地踏步,在复制的时候有用。
mkdir -p a1/b1/c1 表示在当前目录下创建a1,再在a1里创建b1…
相对路径和绝对路径
相对路径: 在输入路径时最前面不是/或者~,表示相对当前目录所在的目录位置。cd命令可以直接进入当前文件里面的文件夹,不需要从/home开始写。
绝对路径: 在输入路径时最前面是/或者~,表示从根目录/家目录开始的具体目录位置。~表示/home/ysy。
拷贝和移动文件
序号 | 命令 | 对应英文 | 作用 |
---|---|---|---|
01 | tree [目录名] | tree | 以树状图列出文件目录结构,使用前需要先安装。
|
02 | cp 源文件 目标文件 | copy | 复制文件或者目录 ,例cp ~/Documents/readme.txt ./readme.txt这条命令把Documents里的文件复制到了当前目录里。加-i是覆盖提示 或者cp /etc/hosts /tmp/ 指把etc里的hosts文件复制到tmp里。 如果想复制目录要加-r选项 |
03 | mv 源文件 目标文件 | move | 移动文件或目录,文件或目录重命名(mv ./readme.txt ./demo.txt,重命名)。加-i是覆盖提示 |
gedit是linux里一款文本编辑器
vi编辑器(系统自带)
vi编辑器类似于win系统的记事本,可以用来修改配置文件。vim是vi的升级版,兼容vi所有指令但是要自己安装。 vi 和vim 的区别
流程:例如,编辑/oldboy/oldboy.txt 文件,并写入内容
01. /o1dboy/这个目录必须存在,.txt文件如果不存在vi会自动创建
02. vi /oldboy/oldboy.txt 编辑这个文件
03. 修改文件内容
04. 保存并推出
[root@oldboy79-01 ~]# mkdir /oldboy vi编辑器用法
[root@oldboy79-01 ~]# ls -l /oldboy vi编辑器用法2
[root@oldboy79-01 ~]# touch /oldboy/oldboy.txt 先创建这个文件
vi /oldboy/oldboy.txt 然后编辑这个文件,默认进入的是非编辑状态,改不了内容。需要按 i 进入编辑模式。
按esc退出编辑模式,按 :wq 保存退出。 :q 没有修改文件,仅退出 : q! 强制退出不保存。 按:是进入命令模式,wq这些就是命令。:wq!是保存然后强制退出。
可以用cat /oldboy/oldboy.txt 来查看文件内容
通过yum安装软件 yum到底是干什么的?
yum(全称为 Yellow dogUpdater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。
基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。 使用需要联网,可以用ping baidu.com来看看是否有联网,停止这个命令要用ctrl+C。
yum和apt-get的区别 apt 和 apt-get的区别
通过apt安装或者卸载软件
apt(advance packaging tool),是linux下一款安装包管理工具。可以在终端中方便地安装、卸载、更新软件包。apt-get能够用于运做deb包,deb包 主要应用于Debian系列包括如今比较流行的Ubuntu等发行版上。
sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具。用sudo安装完软件后系统中所有的用户都能使用这个软件。
作用 | 命令 |
---|---|
安装软件 | sudo apt install 软件包 |
卸载软件 | sudo apt remove 软件包 |
更新已安装的包 | sudo apt upgrade |
更换软件源 换软件源
可以更换成国内的镜像源。
wget命令 – 下载网络文件
我的理解是只要网页上那个链接点开来可下载,就可以用这条指令下载。wget命令非常稳定,下载失败会不断的尝试重连,直至整个文件下载完毕。 wget命令
例如,wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2021.11-Linux-x86_64.sh
打包压缩
不同的操作系统中,常用的打包压缩方式是不同的。
系统 | 打包压缩方式 |
---|---|
windows | rar |
Mac | zip |
Linux | tar.gz |
tar命令只负责打包不负责压缩 用gzip压缩tar打包后的文件,扩展名一般用XXX.tar.gz。在tar命令中可以用-z直接调用gzip。
tar -cvf打包文件 tar -zcvf压缩文件
tar -xvf解包文件 tar -zxvf解压缩文件
tar与bizp2命令结合也可以实现打包压缩,扩展名为XXX.tar.bz2
tar -jcvf压缩文件
tar -jxvf解压缩文件
Ubuntu 可以使用 xdg-open 命令快速打开某个文件。 xdg-open 命令 需要注意的是假如我用这个命令打开一幅图 xdg-open cattest.png,那么当前目录必须在那幅图的路径下,不然打不开;我试了一下用绝对路径但是不行,可能是中文的原因吧不太清楚。
管理员权限
Linux 系统为了安全性考虑,使得许多系统命令和服务只能被 root 管理员来使用,通过一些命令可以切换或暂时切换 root 权限。
su:不退出登录的情况下,切换用户身份,格式为su -用户名称。注意到命令中间有个 - 符号,这意味着完全切换到新的用户,即把环境变量信息也变更为新用户的相应信息,而不是保留原始的信息。用户名称可以是普通用户,也可以是 root。由普通用户切换至 root 需要输入管理员密码。
$ su - root
Password: #此处输入管理员密码
sudo:代表 Superuser do,给普通用户提供额外的权限,格式为 sudo [参数] 用户名称。最常用的是为当前用户暂时提供 root 权限,此时不需要输入管理员密码,只需要当前用户密码。该命令可以避免显式输入管理员密码,但有效时间仅有 5 分钟。
$ sudo su
Password: #此处输入当前用户密码
此外,sudo 还可加在其他命令前面,以获取高权限的执行,常用的有包管理命令。