随笔一记-Linux操作系统、使用Hexo生成博客

好久都没有写博客了,看着最近发布的一篇文章,都是一个月以前了…之所以不想写,也是给自己找的借口吧,看那些大佬们都有自己的博客,然后去自己也去捣鼓了半天,还是没给弄明白(想自己写个博客的主题,奈何还是没弄好)

趁着周末,也就随笔写写吧。

我是想把近一个月的学习笔记及其各种方法上传的,奈何这些知识内容是真的多,一时半会还没办法给发出来(我总不能今天直接发个二三十篇文章笔记吧)。等我自己的博客搭建好了,我会把所有的知识点上传上去,毕竟经营一个自己的博客网站才是最好的!

今天就分享一下hexo和linux下的基操吧,基操勿6。。。

Linux操作系统

硬件:五大部件(运算器、控制器、存储器、输入设备、输出设备) —> 裸机
软件:系统软件和应用软件
操作系统:覆盖在硬件上的软件,用于提供人和计算机交互的接口(界面)

个人操作系统:Windows / macOS / Linux
服务器操作系统:商业化的Unix / Linux / Windows Server

Unix —> Minix —> Linux —> Android
Unix —> BSD —> FreeBSD —> macOS —> iOS
Unix —> Solaris / Hp-UX / AIX

Linus —> Linux内核(kernel) ----> Linux发行版本
Redhat / CentOS / Ubuntu / Debian / SUSE

安全远程连接

—> SSH —> XShell / FinalShell / Termius

ssh root@IP地址(公网)—>>>输入密码

没有GUI(图形用户界面) —> Shell(壳程序 - 人机接口)
—> Bash(Bourne Again Shell)

命令格式:命令 [参数] [作用的对象]

调出帮助文档

  1. 在命令后面加上" --help"参数
  2. 使用man命令获取帮助手册 —> manual
    man mkdir
  3. 三方工具:tldr pwd

查看历史命令:history
清除历史命令:history -c
执行历史命令:!历史命令编号

文件操作相关的命令

pwd —> print working directory —> 显示当前工作目录
cd —> change directory —> 切换目录(绝对路径/相对路径)
ls —> list directory contents —> 列出文件夹下的内容
-l:长格式查看
-a:查看所有文件(包括以点开头的隐藏文件和文件夹)
-R:递归式查看
mkdir —> make directories —> 创建文件夹
-p:创建父文件夹(如果不存在)
rmdir —> remove directory —> 删除空文件夹
touch —> 创建空文件或者修改文件的最后访问时间
rm —> remove —> 删除文件
-f:(force)强制删除
-r:(recursive)递归式删除(可以用来删除文件夹)
cat —> concatenate —> 查看文件的内容
-n:显示行号
head / tail —> 查看文件的开头和结尾
-行数
more / less —> 逐页逐行查看文件内容
wc —> word count —> 统计行数、单词数、字节数
iconv —> 转换文件编码
~ Unicode —> 字符集(万国码)—> 其中一种实现方式叫utf-8
-f:原始编码
-t:目标编码

mv —> move —> 移动文件 —> 剪切
cp —> copy —> 拷贝文件
-r:(recursive)递归式拷贝(拷贝文件夹)

file —> 查看文件属性

压缩文件 / 解压文件
gzip / gunzip
xz -z / xz -d

WinRAR —> 归档/解归档
WinZip —> 压缩/解压缩

归档:把多个文件合并到一个文件中
解归档:把一个文件拆成多个文件
tar -cf html.tar *.html —> create
tar -xf html.tar —> extract

安全文件拷贝(通过网络跨主机拷贝文件)

sftp … …

scp root@一台服务器的IP地址:/路径/文件名 root@另一台服务器的IP地址:/路径/文件名

文件查找:

find 路径 参数 规则
find / -name ‘*.py’ 按文件名查找
find ./ -perm 0644 按权限查找
find ./ -size +1k -size -5k 按大小查找
find ./ -name ‘*.log’ -delete 查找后删除

常用快捷键:

Tab:自动补全命令或路径
Ctrl+u:删除整行
Ctrl+w:删除光标前面的一个单词
Ctrl+a:光标回到行首
Ctrl+e:光标去到行尾

重定向:

echo打印一个语句,然后输入到文档里面去(自动创建文档)
输出重定向:>
echo apple > fruits.txt (会覆盖)
追加输入重定向:>>
echo apple >> fruits.txt
echo banana >> fruits.txt
错误输出重定向:2>
输入重定向:<
wall < 文档 将文档中的内容反向输出来

管道:

| 操作系统提供的进程间通信的I/O通道
前一个命令(进程)的输出作为下一个命令(进程)的输入

sort fruits.txt | uniq -c // 排序后去重

Web服务器:

Apache / Nginx
启动Nginx服务(Web服务) —> Web服务器
systemctl start nginx (CentOS 7.x)
service nginx start (CentOS 6.x)
停止Nginx服务
systemctl stop nginx
重启
systemctl restart nginx
查看运行状态
systemctl status nginx
设置/禁用开机自启
systemctl enable nginx
systemctl disable nginx

查看网络状态

netstat -ntlp
-n:地址和端口的数值
-t:tcp
-l:listen - 正在监听
-p:process - 显示进程信息

CentOS系统上如何安装软件和服务

  1. 使用包管理工具安装软件
    yum --> Yellow dog Updater Modified
    搜索:yum search nginx
    安装:yum install -y nginx 遇见y/n就确认
    卸载:yum erase -y nginx / yum remove -y nginx
    更新:yum update nginx / yum update更新所有
    查看信息:yum info nginx
    查看安装的所有软件包:yum list installed | grep nginx
    rpm
  2. 源代码构建安装 —> configure / Makefile
    例子1:源代码构建安装Git
    ~ 下载源代码:
    wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.27.0.tar.xz
    ~ 解压缩和解归档
    xz -d git-2.27.0.tar.xz —> git-2.27.0.tar
    tar -xf git-2.27.0.tar —> git-2.27.0(文件夹)

    以上2步可以缩减成1步,tar -zxf git-2.27.0.tar.xz 解压缩并解归档
    安装前的准备工作
    cd git-2.27.0
    yum install -y libcurl libcurl-devel zlib zlib-devel 补包
    yum install -y gcc 安装C语言编译器
    ./configure --prefix=/usr/local 安装前配置安装路径,安装软件一般都安装在这个目录
    编译源代码生成可执行程序
    make && make install
    通过下面的命令检查是否安装成功
    git --version
    whereis git
    例子2:源代码构建安装Python 3
    补充安装Python 3需要用到的依赖项
    yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel libdb4-devel libpcap-devel xz-devel libffi-devel
    下载和检查Python3的源代码
    wget https://www.python.org/ftp/python/3.7.8/Python-3.7.8.tar.xz
    md5sum Python-3.7.8.tar.xz 校验MD5码,看和官网是否一样
    解压缩和解归档
    xz -d Python-3.7.8.tar.xz
    tar -xf Python-3.7.8.tar
    或者 直接tar -zxf Python-3.7.8.tar.xz
    安装前的准备工作
    cd Python-3.7.8
    ./configure --prefix=/usr/local/python37 --enable-optimizations 安装前配置
    构建和安装
    make && make install
    配置PATH环境变量

    vim ~/.bash_profile —> 当前用户环境变量
    vim ~/.bashrc —> 全局用户环境变量,千万不要随便乱改

    vim /etc/bashrc —> 系统环境变量

​ —> Go
​ export PATH=$PATH:/usr/local/python37/bin
​ —> Esc ZZ
​ ~ 检查是否安装成功
​ 退出登录,重新登录,激活PATH环境变量
​ python3 --version
​ pip3 --version

  1. 直接下载可执行二进制程序

MD5 —> 哈希函数/哈希算法 —> 给对象生成签名(指纹)

Vim编辑神器的使用

工作模式:
命令模式
移动光标:
~ G:最后一行
~ gg:第一行
~ 数字G:指定行
~ 左下上右:h j k l
~ 0:行首
~ $:行尾
~ w:下一个单词
~ 下一页/上一页:Ctrl+f / Ctrl+b
~ 下一行/上一行:Ctrl+e / Ctrl+y
编辑内容:

​ ~gg=G :整理代码,自动缩进

​ ~ 删除行:dd / 100dd
​ ~ 删除到行首/行尾:d0 / d$
​ ~ 删除一个单词:dw
​ ~ 拷贝行:yy / 10yy
​ ~ 粘贴:p
​ ~ 撤销:u
​ ~ 恢复:Ctrl+r
​ 保存退出
​ ~ ZZ
​ 进入编辑模式:
​ i / I / a / A / o / O
​ 宏操作:
​ 录制 - q
​ qa —> i —> # —> Esc —> j0 —> q
​ @a / 100@a
​ 进入末行模式:
​ : / ?
​ ~ 编辑模式(插入模式)
​ 回到命令模式:Esc
​ ~ 末行模式(底线命令模式)
​ set nu / set nonu
​ set ts=4
​ set autoindent / set noautoindent
​ set expandtab
​ set ruler / set noruler
​ set hls / set nohls
​ w / q / wq / q! / qa

搜索 /keyword ?keyword
1,$s/keyword/content/cgie
c - confirm - 确认
g - global - 全局
i - ignore case - 忽略大小写
e - error - 忽略错误

修改权限: 1 执行 2 只写 4 只读

chmod u+x,g+x,o+x 文件名 —> 添加执行权限
chmod 755 文件名 —> 添加执行权限

把Python程序改成可执行脚本

在首行添加 #!/usr/local/python37/bin/python3

设置PATH环境变量,可以让code里面的程序直接运行,把以下行加入配置文件
export PATH=$PATH:/root/code

创建符号链接(软链接) —> 快捷方式 硬链接,改变其中一个另一个也改变
ln -s /usr/local/python37/bin/python3 /usr/bin/python3

#!/usr/bin/python3

映射快捷键:

inoremap _main if __name__ == ‘__main__’:
inoremap pr print(
map gg99999dd

别名和取消别名

alias ‘lla=ls -la’
alias ‘rmf=rm -f’

unalias lla
unalias rmf

vim多窗口操作
:sp —> 水平拆分窗口
:vs —> 垂直拆分窗口
:ls —> 查看所有文件
:b 编号 —> 切换文件
double Ctrl+w —> 切换光标到下一个窗口
:qa —> 退出所有窗口

用户管理

~ 创建用户
useradd hellokitty

~ 修改密码
passwd hellokitty

~ 删除用户
userdel -r hellokitty

~ 设置密码过期
chage -M 30 hellokitty ---> 30天后密码过期
chage -d 0 hellokitty  ---> 下次登录修改密码

~ 改变文件所有者
chown hellokitty filename
chown -R hellokitty dirname

~ 切换用户
su - switch user

~ 以超级管理员的身份执行命令
sudo - super user do
前提条件:当前用户必须在sudoers清单中
可以使用visudo编辑sudoers清单添加指定的用户

~ 其他命令:mesg write wall

MariaDB —> MySQL的开源免费分支
yum install -y mariadb mariadb-server

安装和使用MySQL

删除和mariadb相关的包
yum list installed | grep mariadb | awk ‘{print $1}’ | xargs yum erase -y

安装common包
rpm -ivh mysql-community-common-5.7.31-1.el7.x86_64.rpm

安装libs和libs-compat包
rpm -ivh mysql-community-libs-5.7.31-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.31-1.el7.x86_64.rpm

安装devel包(给开发者使用的)
rpm -ivh mysql-community-devel-5.7.31-1.el7.x86_64.rpm

安装client包(客户端工具)
rpm -ivh mysql-community-client-5.7.31-1.el7.x86_64.rpm

安装server包(MySQL服务器程序)
yum install -y libaio numactl-libs
rpm -ivh mysql-community-server-5.7.31-1.el7.x86_64.rpm
MySQL的数据文件 /var/lib/mysql
MySQL的日志文件 /var/log/mysqld.log

安装软件:rpm -ivh
移除软件:rpm -e
查询软件:rpm -qa

启动MySQL
systemctl start mysqld

停止MySQL
systemctl stop mysqld

重启MySQL
systemctl restart mysqld

查看MySQL状态
systemctl status mysqld

连接MySQL数据库
mysql -u root -p

查看mysql临时密码

cat /var/log/mysqld.log | grep ‘temporary password’

修改数据库密码
sql> alter user ‘账户名’@‘数据库名’ identified by ‘密码’;

如果暂时需要使用弱口令密码,可以做下面的设置PATH环境变量
sql> set global validate_password_policy=0;
sql> set global validate_password_length=6;

netstat -ntlp —> mysqld 3306

版本控制Git的使用:

1990s —> CVS / VSS —> 锁定模式
2000 —> Subversion —> SVN —> 合并模式

中央集权型的版本控制系统(必须有版本控制器服务器才能使用版本控制)

BitKeeper
2005 —> Git —> 分布式版本控制系统

  1. 创建本地仓库
    git init(在某一个项目文件里,比如code)

  2. 把工作区的文件放到暂存区
    git add filename
    git add . (把所有文件放入暂存区)

  3. 把缓存区的文件提交到本地仓库
    第一次提交代码需要设置用户名和邮箱
    git config --global user.name “账户名”
    git config --global user.email “邮箱地址”

    git commit -m ‘这里写上本次提交的注释’

  4. 查看提交日志(历史),用于恢复
    git log 弱查看
    git reflog 强查看,可以回到过去和未来的版本

  5. 用暂存区的内容恢复工作区
    git restore filename

  6. 版本回退
    git reset --hard ID

  7. 添加远端仓库
    git remote add origin URL
    git remote remove origin 移除远端仓库
    git remote -v

  8. 同步代码
    上推(把自己的工作成功同步到服务器)
    git push -u origin master
    git push
    下拉
    git pull
  9. 解决代码冲突 —> reject / CONFLICT

    git pull //先拉下来
    git diff //查看两文件区别
    vim 冲突的文件
    git add . //全部加入缓冲区
    git commit -m ‘解决了冲突’
    git push -u origin master //重新推上去

  10. 配置免密访问
    ssh-keygen -t rsa -b 2048 -C “邮箱地址”
    —> ~/.ssh/ —> id_rsa / id_rsa.pub

    cat id_rsa.pub —> 把公钥部署到码云或者Github上

    git remote remove origin 先移除原来没免密的
    git remote add origin SSH地址
    git remote -v

    git push -u origin master // origin master是本地的

  11. 克隆代码
    git clone 仓库地址
    git clone --depth=1 仓库地址 文件夹名字

  12. 分支操作
    查看分支:
    git branch
    git branch -a
    创建分支:
    git branch 分支名
    切换分支:
    旧:git checkout 分支名
    新:git switch 分支名
    创建并切换分支:
    旧:git checkout -b 分支名
    新:git switch -C 分支名
    合并分支(把指定分支的工作成果合并到当前所在的分支)
    git merge 分支名
    删除分支:
    git branch -d 分支名
    git branch -D 分支名

    ​ git push -u origin new-cool-function hello 建立分支联系

防火墙软件
iptables
firewalld —> CentOS

定时任务:
Linux系统下的每个文件有三个时间属性:

  1. atime - 最后访问时间
  2. mtime - 最后修改时间
  3. ctime - 创建时间

总结:

  1. Linux —> 用它做服务器
    Web服务器、数据库服务器、缓存服务器、消息队列服务器、分布式存储服务器、……

  2. 云服务器 —> 性价比高、伸缩性强、配置简单(控制台)

  3. SSH 22/tcp —> FinalShell / Termius / Putty / XShell / MobaTerm

  4. Shell —> command —> Bash

  5. 命令:

    文件/文件夹操作
    pwd / cd / ls / mkdir / rmdir / touch / rm / cp / mv
    wc / file / cat / tac / rev / more / less / head / tail
    iconv / gzip / gunzip / xz / tar / uniq / sort / cut

    用户/用户组/权限操作
    useradd / userdel / passwd / chage / chmod / chown / chgrp
    su / sudo / visudo / logout / exit / w / who / whoami
    last / lastb

    网络操作
    wget / scp / sftp / ping / ifconfig / ip / netstat

    进程管理
    kill / killall / pkill / top / ps
    & / jobs / fg / bg

    在程序执行代码后面加&,代表该代码在后台运行

redis-server >> redis.log &
Ctrl+c —> 结束进程
Ctrl+z —> 暂停进程,置于后台

~ 系统管理 —> CPU、内存、IO设备
cat /proc/cpuinfo
cat /proc/meminfo
sar / free / iostat / df

  1. 安装软件和服务
    包管理工具
    • yum
      yum search
      yum install
      yum erase / yum remove
      yum update
      yum info
      yum list installed
    • rpm
      rpm -ivh
      rpm -e
      rpm -qa
    源代码构建安装
    • yum安装依赖项
    • wget下载源代码

两种压缩文件方式及一种归档文件的操作命令

    - gzip 压缩
    - gunzip 解压缩
    - xz 文件名  ==> 压缩文件
    - xz -d /   解压缩
    - tar -cf 归档文件名.tar  要归档的文件1 文件2 文件3...
    - tar -xf 归档文件.tar   ==> 解归档同时保留原归档文件

./configure
make && make install
配置PATH环境变量

  1. 命令的组合执行
    a; b; c
    a || b || c
    a && b && c
  2. vim的使用
    命令模式
    编辑模式
    末行模式
  3. Shell编程

使用Hexo生成博客

  1. 安装node.js和git
    node --version
    npm --version
    sudo npm install -g npm
  2. 安装hexo-cli工具
    npm config set registry http://registry.npm.taobao.org/ 更改淘宝镜像源
    npm install -g hexo-cli
  3. 使用hexo创建博客项目
    hexo init 文件夹
    cd 文件夹
    npm install —> 安装博客项目所需的依赖项
  4. 把写好的markdown文件放置到source/_posts目录,

  5. ~ hexo g —> 把Markdown变成HTML页面

  6. 运行博客项目
    hexo s —> localhost:4000
  7. 部署到GitHub的Pages服务
    在GitHub上创建一个名为"用户名.github.io"的仓库
    修改博客项目的_config.yml —> deploy
    deploy:
    type: git
    repo:https://github仓库的地址
    branch: master
    安装部署到github的插件
    npm install hexo-deployer-git --save
    完成部署(把生成的HTML页面push到仓库中)
    hexo g -d
    hexo d -g
    打开浏览器,访问https://git账户名.github.io
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值