Linux
大约 5 分钟
介绍
发行版(Distributions)
每个distribution除了架构的严谨度与选择的套件内容外,其实差异不太大
- Ubuntu
- CentOS
系统安装与初始化:虚拟机VMware
- 有时候放久了会自动黑屏
把鼠标聚焦后,动一动键盘就会好
- 无法上下移动查看全部信息,可以输出到一个文件中查看
# 例如
yum list >> /list.log
Linux操作(基本常用命令)
echo # 打印
ls # -a / -al 显示包括隐藏文件
ll # 显示文件列表详细信息
mkdir # 目录名 建立目录
touch # 新建文件
uname # 显示版本信息
dir # 显示当前目录文件
pwd # 查询当前所在的目录位置
cd # cd ..回到上一层目录,注意cd 与..之间有空格。cd /返回到根目录。
cat # 文件名 查看文件内容
cat >abc.txt # 往abc.txt文件中写上内容。
more # 文件名 以一页一页的方式显示一个文本文件。
cp # 复制文件
mv # 移动文件
rm 文件名 # 删除文件,rm -a 目录名删除目录及子目录 rm -rf
rmdir # 删除子目录,目录内没有文档。
chmod # 设定档案或目录的存取权限
grep # 在档案中查找字符串
diff # 档案文件比较
find # 档案搜寻
date # 现在的日期、时间
who # 查询目前和你使用同一台机器的人以及Login时间地点
w # 查询目前上机者的详细资料
whoami # 查看自己的帐号名称
groups # 查看某人的Group
passwd # 更改密码
history # 查看自己下过的命令
ps # 显示进程状态 ps aux (命令将显示所有进程的详细信息,包括进程ID、父进程ID、CPU使用情况)
kill # 停止某进程
gcc # 黑客通常用它来编译C语言写的文件
su # 权限转换为指定使用者
telnet IP # telnet连接对方主机(同win2K),当出现bash$时就说明连接成功。
ftp # ftp连接上某服务器(同win2K)
netstat -nap # 查看端口号
passwd root # 修改root密码
reboot
service firewalld status
df -h #查看容量
- 善用`man`和`--help`(如 `man ls`)
## 文件与目录管理
### 1. 文件系统结构
- FHS标准(/bin, /etc, /home, /var等目录作用)
### 2. 文件操作命令
- 查看文件:cat, less, head, tail, file
- 编辑文件:vim, nano
- 权限管理:chmod, chown, umask
- 查找文件:find, locate, which
### 3. 磁盘管理
- 挂载/卸载:mount, umount, /etc/fstab
- 磁盘空间:df, du, lsblk
## 用户与权限
### 1. 用户管理
- 用户/组操作:useradd, usermod, passwd, groupadd
- 切换用户:su, sudo 配置
### 2. 文件权限
- 权限表示法(rwx、数字权限如 755)
- 特殊权限:SUID, SGID, Sticky Bit
## 进程与服务管理
### 1. 进程监控
- 查看进程:ps, top, htop, pstree
- 终止进程:kill, pkill, killall
### 2. 服务管理
- Systemd:systemctl start/stop/enable(服务单元文件)
- 传统SysVinit:service, chkconfig
## 网络配置与管理
### 1. 基础网络命令
- 配置IP:ifconfig/ip addr, nmcli
- 连通性测试:ping, traceroute, netstat, ss
- 下载工具:wget, curl
### 2. 防火墙
- iptables 基础规则
- firewalld(CentOS)或 ufw(Ubuntu)
## 日志与排错
### 1. 日志文件
- 系统日志:/var/log/messages, /var/log/syslog
- 查看工具:journalctl(Systemd)
### 2. 故障排查
- 磁盘故障:fsck, dmesg
- 网络问题:tcpdump, nc
vim学习
软件管理
包管理工具
Debian系:apt, dpkg(apt install/remove)
RedHat系:yum/dnf, rpm(yum install/erase)
Arch系:pacman(-Syu)
编译安装
- 源码下载之后,编译三步骤:./configure, make, make install
Shell脚本
### 1. 脚本编写
- Shebang(#!/bin/bash)
- 变量、条件判断(if-else)、循环(for/while)
- 函数定义与调用
### 2. 实用案例
- 备份脚本、日志分析脚本
实践一、快速搭建带后台的php模板网站(宝塔)
宝塔是一个运维工具,没必要深入去了解学习,知道基本怎么用就OK
1. 安装
- 通过xshell等工具,进入主机空间(以阿里云,主机空间最好干净一些些,以免发生莫名其妙的情况)
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install.sh && sh install.sh
- 等待安装完成即可;安装完最后可以看到log中有登录账号和密码等;
2. 上传代码
- 进入宝塔登录界面(一般是
域名:8888
)进行登录; - 【文件】 - 【上传代码包】-【解压】;
3. 安装环境,创建网站
- 【软件管理】 - 安装相关的环境(注意版本);
- 【数据库】- 【root密码】;
- 【网站】-【添加站点】-【指定好根目录和环境版本】;
4. 进入网站域名
- 【一般为install文件夹】- 【设置项目的数据库,数据之类的】- 【完成】;
- 完成之后即可访问对应的页面;
实践二、Linux上传下载工具
1. FileZilla
2. lrzsz
yum insall lrzsz
# rz 上传
rz
# sz 下载
sz [file]
3. sftp
通过 sftp 协议进行连接
# 上传
put
# 下载
get
实践三、Linux 下载解压文件过程
# 下载
wget [url]
curl [url]
# 解压
tar xf [name].xz
cd ./[name]
# 修改环境变量 profile, 先备份
cp /etc/profile /etc/profile.bak
vim /etc/profile
# 添加 export PATH=$PATH:*/bin
# 使之立即生效
source /etc/profile
# 单单使用 export PATH=$PATH:*/bin 是 临时添加环境变量
# 解压zip文件
# 下载unzip
unzip [file]
实践四、Linux安装mysql
vi /etc/yum.repos.d/mysql-community.repo
gpgcheck=0
实践五、yum操作
1. 仓库清除缓存
# 清除cache
yum clean all
rm -rf /var/cache/yum
# 重新生成cache
yum makecache
yum repolist
2. yum更换镜像源
- 有时候yum在makecache时一直在尝试其他镜像,可考虑更换
- 在
/etc/yum.repos.d/
下的连不上的仓库.repo
直接删掉rm
掉
# 1. 备份
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
# 2. 更换为阿里云
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
yum install
实践六、scp服务器间通信
stages:
- deploy
before_script:
- echo "deploy start"
# 添加服务器间互信 scp-keyscan -p [PORT] [IP]
- echo "$KNOWN_HOSTS" -> ~/.ssh/known_hosts
job_deploy:
stage: deploy
script:
- sshpass -p $PASSWORD scp -r ./dist $USERNAME@$IP:/var/your-server
- sshpass -p $PASSWORD scp -r ./https $USERNAME@$IP:/var/your-server
- sshpass -p $PASSWORD scp -r ./package.json $USERNAME@$IP:/var/your-server
- sshpass -p $PASSWORD scp -r ./deploy $USERNAME@$IP:/var/your-server-deploy
- sshpass -p $PASSWORD ssh $USERNAME@$IP "mv /var/your-server-deploy/deploy/docker/Dockerfile /var/your-server"
- sshpass -p $PASSWORD ssh $USERNAME@$IP "sh /var/your-server-deploy/deploy/script.sh"
only:
- dev
tags:
- be
after_script:
- echo "deploy Success"
相关文献
《Linux命令行与Shell脚本大全》
在线平台:Linux Academy、OverTheWire