Git 基本用法(上)
Git 基本用法(上)
git的初始化Git 配置使用Git的第一件事就是设置你的名字和email,这些就是你在提交commit时的签名,每次提交记录里都会包含这些信息。使用git config命令进行配置:
12$ git config --global user.name "Scott Chacon"$ git config --global user.email "schacon@gmail.com"
执行了上面的命令后,会在家目录(/home/shiyanlou)下建立一个叫.gitconfig 的文件(该文件为隐藏文件,需要使用ls -al查看到). 内容一般像下面这样,可以使用vim或cat查看文件内容:
1234$ cat ~/.gitconfig[user] email = schacon@gmail.com name = Scott Chacon
上面的配置文件就是Git全局配置的文件,一般配置方法是git config –global <配置名称> < ...
Git 介绍
Git 介绍
git诞生略
版本控制系统Linus一直痛恨的CVS及SVN都是集中式的版本控制系统,而Git是分布式版本控制系统,集中式和分布式版本控制系统有什么区别呢?
先说集中式版本控制系统,版本库是集中存放在中央服务器的,而大家工作的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始工作,工作完成,再把自己的修订推送给中央服务器。这类系统,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。那分布式版本控制系统与集中式版本控制系统有何不同呢?首先,分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。既然每个人电脑上都有一个完整的版本库,那多个人如何协作呢?比方说你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。
和集中式版本控制系统相比,分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,某一个人 ...
Linux 日志系统
Linux 日志系统
常见的日志日志是一个系统管理员,一个运维人员,甚至是开发人员不可或缺的东西,系统用久了偶尔也会出现一些错误,我们需要日志来给系统排错,在一些网络应用服务不能正常工作的时候,我们需要用日志来做问题定位,日志还是过往时间的记录本,我们可以通过它知道我们是否被不明用户登陆过等等。
在 Linux 中大部分的发行版都内置使用 syslog 系统日志,那么通过前期的课程我们了解到常见的日志一般存放在 /var/log 中,我们来看看其中有哪些日志
根据图中所显示的日志,我们可以根据服务对象粗略的将日志分为两类
系统日志
应用日志
系统日志主要是存放系统内置程序或系统内核之类的日志信息如 alternatives.log 、btmp 等等,应用日志主要是我们装的第三方应用所产生的日志如 tomcat7 、apache2 等等。
接下来我们来看看常见的系统日志有哪些,他们都记录了怎样的信息
日志名称
记录信息
alternatives.log
系统的一些更新替代信息记录
apport.log
应用程序崩溃信息记录
apt/history.log
使用 a ...
Linux 进程管理
Linux 进程管理
进程的查看不管在测试的时候、在实际的生产环境中,还是自己的使用过程中,难免会遇到一些进程异常的情况,所以 Linux 为我们提供了一些工具来查看进程的状态信息。我们可以通过 top 实时得查看进程的状态,以及系统的一些信息(如 CPU、内存信息等),我们还可以通过 ps 来静态查看当前的进程信息,同时我们还可以使用 pstree 来查看当前活跃进程的树形结构。
top 工具的使用top 工具是我们常用的一个查看工具,能实时的查看我们系统的一些关键信息的变化:
1$ top
top 是一个在前台执行的程序,所以执行后便进入到这样的一个交互界面,正是因为交互界面我们才可以实时的获取到系统与进程的信息。在交互界面中我们可以通过一些指令来操作和筛选。在此之前我们先来了解显示了哪些信息。
我们看到 top 显示的第一排,
内容
解释
top
表示当前程序的名称
11:05:18
表示当前的系统的时间
up 8 days,17:12
表示该机器已经启动了多长时间
1 user
表示当前系统中只有一个用户
load average: 0.29,0.2 ...
Linux 进程概念
Linux 进程概念
概念的理解进程与程序概念的理解首先程序与进程是什么?程序与进程又有什么区别?
程序(procedure):不太精确地说,程序就是执行一系列有逻辑、有顺序结构的指令,帮我们达成某个结果。就如我们去餐馆,给服务员说我要牛肉盖浇饭,她执行了做牛肉盖浇饭这么一个程序,最后我们得到了这么一盘牛肉盖浇饭。它需要去执行,不然它就像一本武功秘籍,放在那里等人翻看。
进程(process):进程是程序在一个数据集合上的一次执行过程,在早期的UNIX、Linux 2.4及更早的版本中,它是系统进行资源分配和调度的独立基本单位。同上一个例子,就如我们去了餐馆,给服务员说我要牛肉盖浇饭,她执行了做牛肉盖浇饭这么一个程序,而里面做饭的是一个进程,做牛肉汤汁的是一个进程,把牛肉汤汁与饭混合在一起的是一个进程,把饭端上桌的是一个进程。它就像是我们在看武功秘籍这么一个过程,然后一个篇章一个篇章地去练。
简单来说,程序是为了完成某种任务而设计的软件,比如 vim 是程序。什么是进程呢?进程就是运行中的程序。
程序只是一些列指令的集合,是一个静止的实体,而进程不同,进程有以下的特性:
动态 ...
Linux 下软件安装
Linux 下软件安装
小贴士
注意:如果你在安装一个软件之后,无法立即使用Tab键补全这可命令,你可以尝试先执行 source ~/.zshrc,然后你就可以使用补全操作。
aptapt 包管理工具介绍
APT是Advance Packaging Tool(高级包装工具)的缩写,是Debian及其派生发行版的软件包管理器,APT可以自动下载,配置,安装二进制或者源代码格式的软件包,因此简化了Unix系统上管理软件的过程。APT最早被设计成dpkg的前端,用来处理deb格式的软件包。现在经过APT-RPM组织修改,APT已经可以安装在支持RPM的系统管理RPM包。这个包管理器包含以 apt- 开头的的多个工具,如 apt-get apt-cache apt-cdrom 等,在Debian系列的发行版中使用。
apt-getapt-get 是用于处理 apt 包的公用程序集,我们可以用它来在线安装、卸载和升级软件包等,下面列出一些apt-get包含的常用的一些工具:
工具
说明
install
其后加上软件包名,用于安装一个软件包
update
从软件源镜像服务器上下 ...
Linux 挑战:数据提取
Linux 挑战:数据提取
介绍小明在做数据分析的时候需要提取文件中关于数字的部分,同时还要提取用户的邮箱部分,但是有的行不是数组也不是邮箱,现在需要你在data2这个文件中帮助他用正则表达式匹配出数字部分和邮箱部分。在这里下载
1wget http://labfile.oss.aliyuncs.com/courses/1/data2
将下载的data2保存在/home/shiyanlou/data2
目标
在文件data中匹配数字开头的行,结果写入/home/shiyanlou/num文件
在文件data中匹配出正确格式的邮箱,结果写入一个名为/home/shiyanlou/mail的文件
提示
邮箱的格式
注意符号.的处理
来源2016年tapfun校招面试题
答案12$ cat data2 | grep -v '[[:lower:]]' > /home/shiyanlou/num $ cat data2 | grep '.*@.*\.com' > ...
Linux 正则表达式基础
Linux 正则表达式基础
基本语法:一个正则表达式通常被称为一个模式(pattern),为用来描述或者匹配一系列符合某个句法规则的字符串。
选择|竖直分隔符表示选择,例如”boy|girl”可以匹配”boy”或者”girl”
数量限定数量限定除了我们举例用的*,还有+加号,?问号,如果在一个模式中不加数量限定符则表示出现一次且仅出现一次:
+表示前面的字符必须出现至少一次(1次或多次),例如,”goo+gle”,可以匹配”gooogle”,”goooogle”等;
?表示前面的字符最多出现一次(0次或1次),例如,”colou?r”,可以匹配”color”或者”colour”;
*星号代表前面的字符可以不出现,也可以出现一次或者多次(0次、或1次、或多次),例如,“0*42”可以匹配42、042、0042、00042等。
范围和优先级()圆括号可以用来定义模式字符串的范围和优先级,这可以简单的理解为是否将括号内的模式串作为一个整体。例如,”gr(a|e)y”等价于”gray|grey”,(这里体现了优先级,竖直分隔符用于选择a或者e而不是gra和ey),”(grand)?fath ...
Linux 挑战:历史命令
Linux 挑战:历史命令
介绍在linux中,对于文本的处理和分析是极为重要的,现在有一个文件叫做data1,同学们可以在这里下载,
1wget http://labfile.oss.aliyuncs.com/courses/1/data1
里面记录是一些命令的记录,现在需要你从里面找出出现频率次数前3的命令并保存在 /home/shiyanlou/result。
目标
处理文本data
将结果写入result
结果包含次数和命令,如“100 ls”
提示
cut截取(-c 8- 明白含义吗)
uniq -dc去重
sort 的参数选择-k1 -n -r
答案类似于
1cat data|....|....|.... > /home/shiyanlou/result
来源2016年百度校招面试题
答案1cut data1 -c 8- | sort -k 1 | uniq -dc | sort -k 1 -n -r | head -3 > /home/shiyanlo ...
Linux 数据流重定向
Linux 数据流重定向
数据流重定向简单的重定向
文件描述符
设备文件
说明
0
/dev/stdin
标准输入
1
/dev/stdout
标准输出
2
/dev/stderr
标准错误
文件描述符:文件描述符在形式上是一个非负整数。实际上,它是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表。当程序打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符。在程序设计中,一些涉及底层的程序编写往往会围绕着文件描述符展开。但是文件描述符这一概念往往只适用于 UNIX、Linux 这样的操作系统。
默认使用终端的标准输入作为命令的输入和标准输出作为命令的输出
12$ cat # (按Ctrl+C退出)
将cat的连续输出(heredoc方式)重定向到一个文件
1234567891011$ mkdir Documents$ cat > Documents/test.c <<EOF#include <stdio.h>int main(){ printf("hello wor ...