Day015 - Linux-Git(2018-11-17)

网络相关的命令

ping 目的IP - 检测网络可达性 - ICMP
tracepath 目的IP - 检查数据路由
ifconfig - 检查网络接口 可以加接口参数(eth0)
ip addr
ip - 查看网络接口相关信息
netstat - 查看网络状态(端口占用、进程、已建立的链接)
netstat -nap - 以数值的形式查看网络连接情况(推荐,可以结合管道使用)(n: numeric, a:all, p:process)
sftp - 安全网络文件传输
scp - 安全文件拷贝
scp 文件 [email protected]:/root/新文件名

命令 & - 让命令在后台运行
redis-server & -开启redis服务,并且不占用shell程序 (&将程序放到后台,不占用shell程序交互式环境)
jobs - 查看后台运行的进程 查看结果:[1]+ Running redis-server &
fg %编号 - 让命令回到前台运行
Ctrl + z - 将前台进程暂停放到后台
bg %编号 - 将命令在后台运行
redis-server > redis.log & - 将程序放到后台运行,并将结果输出到log日志中

https需要证书,非对称加密

万年历

执行命名时直接输入参数(命令行参数)
import sys

sys.argv以列表的方式获取了命令行参数
./mycal.py 等于 python3 mycal.py , python3是命令,所以./mycal.py或者mycal.py是第一个参数

写在.bash_profile中的代码每次链接上了会自动执行

#!/usr/bin/python3
"""
万年历
"""
from datetime import datetime

import sys


def is_leap(year):
   """判断指定年份是否是闰年"""
   return year % 4 == 0 and year % 100 != 0 or year % 400 == 0


def get_month_days(year, month):
   """获取指定月份对应的天数"""
   days = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
   if month == 2 and is_leap(year):
       days[2] = 29
   return days[month]


def main():
   # 通过sys.argv可以获取命令行参数
   # 命令行参数: 在执行命令时和命令输入在同一行的参数
   if len(sys.argv) == 3:
       year = int(sys.argv[2])
       month = int(sys.argv[1])
   else:
       now = datetime.now()
       year = now.year
       month = now.month
   y = year if year > 2 else year - 1
   m = month if month > 2 else month + 12
   c = y // 100
   y = y % 100
   w = y + y // 4 + c // 4 - 2 * c + 26 * (m + 1) // 10
   w %= 7
   months = [
       'January', ' February', 'March', 'April', 'May',
       ' June', ' July', ' August', 'September',
       'October', ' November', 'December'
   ]
   print(f'{months[month - 1]} {year}'.center(20))
   print(f'SU MO TU WE TH FR SA')
   print(' ' * 3 * w, end='')
   days = get_month_days(year, month)
   for day in range(1, days+1):
       print(f'{day}'.rjust(2), end=' ')
       if w % 7 == 6:
           print()
       w += 1
   print()

if __name__ == '__main__':
   main()

Git

版本控制:
1990s - 锁定模式

  • CVS (Concurrent Version System)/ VSS (Visual Source Safe)

2000s - 合并模式

  • SVN (Subversion) - 集中控制式

分布式版本控制系统 - BitKeeper
2005年 - Git / Mercury

安装git:
1.下载git源代码压缩文件
wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.19.1.tar.xz
2.解压缩和解归档
xz -d git-2.19.1.tar.xz
tar -xvf git-2.19.1.tar
3.配置安装路径
cd git-2.19.1
./configure --prefix=/usr/local
4.安装git的网络依赖库
yum -y install libcurl-devel
5.构建和安装
make && make install
6.检查安装结果
git --version

使用git
1.创建git仓库
git init 在当前目录下创建git仓库

2.将代码纳入暂存区
git add 文件名
git add . - 将所有文件放入暂存区

3.查看暂存区状态
git status
git rm --cached 文件名 (从暂存区移除)
git checkout -- 文件名 (将暂存区文件恢复到工作区)

4.配置身份表示
git config --global user.name "..."
git config --global user.email "..."

5.提交到本地仓库
git commit -m '提交的原因'

6.查看提交日志
git log
git reflog - 看到未来的版本(曾经提交过又被撤回的版本)

7.回到历史版本
git reset HEAD^回到上一个版本
git reset HEAD^^回到上上个版本
git reset 版本的哈希码:
git reset --hard HEAD^
git reset --hard HEAD^^
git reset --hard 版本的哈希码

--hard参数是为了保持工作区和历史版本的一致性

你可能感兴趣的:(Day015 - Linux-Git(2018-11-17))