当然可以,以下是一份关于 Linux 系统的学习文档:
Linux 学习指南
1. Linux 简介
- Linux 是一个开源的类 Unix 操作系统。它由 Linus Torvalds 在 1991 年首次发布。
- Linux 的主要优点包括稳定性、安全性、开源性质以及对各种硬件的支持。
- Linux 的发行版本可以大体分为两类,一类是商业公司维护的发行版本,一类是社区组织维护的发行版本,前者以著名的 Redhat(RHEL)为代表,后者以 Debian 为代表。
2. Linux 发行版
RedHat 系列:Redhat、Centos、Fedora 等
Debian 系列:Debian、Ubuntu 等
- CentOS:一个企业级的 Linux 发行版,基于 Red Hat Enterprise Linux。
- Ubuntu:适合初学者的 Linux 发行版,易于安装和使用的
图形化桌面系统
- Fedora:一个社区驱动的项目,它是 Red Hat 的上游,提供了最新的开源软件。
- Debian:一个稳定且强大的 Linux 发行版,适合服务器环境。
3. Linux 命令行
Linux 命令行是一个强大的工具,可以让你完成许多任务。一些基本的命令包括:
ls
:列出目录的内容cd
:改变当前目录pwd
:打印当前工作目录cp
:复制文件或目录mv
:移动或重命名文件或目录rm
:删除文件或目录tar -xzvf soft.tar.gz
: 解压包
4. 文件系统
Linux 文件系统是一个层次结构,从根目录(/)开始,包含了所有的文件和目录。一些重要的目录包括:
/bin
:包含了许多基本的二进制程序/etc
:包含了系统的配置文件/home
:包含了用户的家目录/var
:包含了经常变化的文件,如日志文件
5. 权限和所有权
每个文件和目录都有三组权限:用户权限、组权限和其他权限。每组权限可以是以下三种权限的任意组合:
读取(r):用户有权读取文件的内容,或者列出目录的内容。
写入(w):用户有权修改文件的内容,或者在目录中创建和删除文件。
执行(x):用户有权执行文件,或者进入目录。
- 你可以使用 chown 命令更改文件的所有者,使用 chgrp 命令更改文件的组。
- 你可以使用 chmod 命令更改文件的权限。例如,chmod u+x filename 会给文件的所有者执行权限。
6. 包管理
大多数 Linux 发行版都有一个包管理系统,可以方便地安装、更新和删除软件包。
- RedHat 使用
yum
,常见的安装包格式 tar , rpm 包,安装 rpm 包的命令是“rpm -参数” - Ubuntu 使用
apt
, 常见的安装包格式 tar , deb 包,安装 deb 包的命令是“dpkg -参数”补充:apt = apt-get、apt-cache 和 apt-config 中最常用命令选项的集合。
7. Shell 脚本
Shell 脚本是一种可以自动化任务的强大工具。你可以编写脚本来自动执行一系列的命令。
8. 系统管理
用户和组管理
在 Linux 中,每个用户都有一个唯一的用户名和用户 ID。用户可以被分配到一个或多个组,每个组也有一个唯一的组名和组 ID。可以使用 useradd、usermod 和 userdel 命令来添加、修改和删除用户。同样,可以使用 groupadd、groupmod 和 groupdel 命令来添加、修改和删除组。
监控系统资源
检查系统的 CPU 使用率、内存使用情况、磁盘空间和网络流量等。可以使用 top
、vmstat
、iostat
、df
和 netstat
等命令来监控系统资源。
Shell 脚本学习指南
1. 什么是 Shell 脚本?
Shell 脚本是一种用于自动化任务的脚本语言,它将一系列命令写入一个文件,然后通过解释器来执行这个文件。
像 C、java 之类,在执行前需要先进行编译
。它们需要合适的编译器来让我们的代码完成某个任务。
像 php、javascript、shell 之类,则不需要编译器,因此它们需要解释器
,而我们不需要编译代码就可以运行程序。
常见的 shell 解释器环境:
- Bourne Shell(/usr/bin/sh 或/bin/sh)
- Bourne Again Shell(/bin/bash)
2. Shell 脚本的基本结构
一个基本的 Shell 脚本包括了一个 (#!指定环境
)行 和一些命令。例如:
#!/bin/bash
echo "Hello, World!"
这个脚本使用echo
命令输出"Hello, World!"。
3. 变量
在 Shell 脚本中,你可以使用变量来存储数据。例如:
- 定义变量,等号两侧避免使用空格:
#!/bin/bash
greeting="Hello, World!" # 定义变量
echo $greeting #使用变量需要,只要在变量名前面加美元符号即可,
greeting_1="hello, ${greeting} !" # 变量引用
4. 控制结构
Shell 脚本支持 if、for、while 等控制结构。例如:
#!/bin/bash
for i in {1..5}
do
echo "Number $i"
done
# if
if condition
then
command1
else
command
fi
# 行内 表达
if [ $(ps -ef | grep -c "ssh") -gt 1 ]; then echo "true"; fi
5. 函数
你可以在 Shell 脚本中定义函数来复用代码。例如:
#!/bin/bash
greet() {
echo "Hello, $1!"
}
greet "World"
6. 命令行参数
你可以在运行 Shell 脚本时传递命令行参数。例如:
#!/bin/bash
echo "Hello, $1!" #从1 开始取,这里拿到world
然后你可以这样运行脚本:./script.sh World
Shell 文件包含
Shell 文件包含的语法格式如下:
. otherFile # 注意点号(.)和文件名中间有一空格
# or
source "./otherFile"
source 的另一种用法
# 在当前bash环境下读取并执行FileName中的命令。
# a.sh
git add .
git commit -m "..."
git push
# 执行
source a.sh
Shell 输入/输出重定向
# 重置
command1 > file1
# 追加
command1 >> file1
# 同时替换输入和输出,执行 cat,从文件info读取内容,然后将输出写入到user中。
cat < info > user
连接到服务器
SSH 链接
打开终端:CMD
输入 SSH 命令:在终端中,输入以下命令:
# 其中,“用户名”是你在服务器上的账户名,“服务器地址”可以是服务器的IP地址或域名。
ssh 用户名@服务器地址
- 接受服务器的公钥:如果这是你第一次连接到该服务器,系统会提示你接受服务器的公钥。你可以输入“yes”来接受。
- 输入密码:系统会提示你输入密码。输入你的用户密码后,如果密码正确,你将被登录到服务器。
配置 SSH 免密登录
ssh-copy-id 的本质是把你本地的公钥添加到服务器/远程机的~/.ssh/authorized_keys 文件里
在本地机器上生成 SSH 密钥对:打开终端,输入以下命令:
bashssh-keygen -t rsa
按照提示进行操作,你可以为密钥设置密码,也可以直接按 Enter 键留空。
将公钥复制到服务器:使用
ssh-copy-id
命令将公钥复制到服务器。假设你的用户名是user
,服务器地址是server
,那么命令如下:bashssh-copy-id user@server
输入你的用户密码后,公钥就会被复制到服务器。
这里有可能出现 ssh-copy-id 命令找不到,可使用git-bash 客户端代替
测试免密登录:再次使用 SSH 命令连接到服务器,如果一切正常,你应该可以在不输入密码的情况下登录到服务器。
以上就是 SSH 免密登录的配置步骤。需要注意的是,如果你在生成 SSH 密钥对时设置了密码,那么每次使用私钥时都需要输入这个密码。如果你希望完全免密登录,你可以在生成密钥对时不设置密码。
第三方工具
rz 不能用
yum -y install lrzsz
rz //上传文件
sz //下载文件