使用开源中国托管代码
- 安装Git
- Windows下安装Git,到[Git for Windows](https://git-for-windows.github.io/)下载安装Windows 版git
- 安装完点击桌面上的「Gib Bash」图标或在Windows程序列表中选择「Git Bash」
- 在Git Bash中可以运行Linux 命令,我们使用```git --version```查看一下安装的版本,证明Git命令可用
- 安装JDK
- 由于自己的系统是win10,所以参考[这篇文章](http://jingyan.baidu.com/article/64d05a024b327ade55f73b8a.html)安装了JDK
- 安装完成后,用javac命令测试了JDK环境是否可用
- 用一段简单的代码测试了环境,代码如下,文件名为Hello.java
class Hello{ public static void main(String[] args) { System.out.println("Hello World!Hello World!"); } }
- 将路径切换到Hello.java文件所在路径后,用javac Hello.java
和java Hello
命令编译运行
- 学习使用oschina的git服务器
- 在[Git@OSC](https://git.oschina.net/)上面注册账号并创建了一个名为besti-20169213的工程,项目语言选择了C++语言,开源许可证选择了GPL v2类型
- 为项目添加公钥
- 打开Git客户端生成公钥
- 这样在G盘下就有了两个文件
- 将oschina_key.pub打开,全选里面的内容,填入公钥中
- 测试使用
- 在Git客户端中,切换到想把项目保存的路径,用git clone
+自己项目的链接将项目下载下来
- 这样可以看到文件路径下有这么两个文件
- 可以对readme文件进行修改,将修改后的项目上传到Git服务器上
- 刷新项目可以看见刚刚提交过的内容
- 上传了一个Hello文件夹,主要是测试,里面包含了.java和.class文件
学习《Linux入门(新版)》
一、Linux简介
- 介绍了Linux的发展史,应需而生
- 介绍了对Linux的诞生有极其重要的影响的人物
- 介绍了Linux与Windows各方面的对比
- Linux免费或收取少许费用;Windows昂贵
- Linux软件大多为开源自由软件,由全球所有的 Linux 开发者和自由软件社区提供支持;Windows软件有着数量和质量的优势,不过大部分为收费软件
- Linux较Windows来说有更好的安全性
- Linux有图形界面操作和完全的命令行操作两种方式可选,Windows纯图形界面下操作使用
- Linux较Windows在私人定制方面有充分的自由性
- Linux在Windows的后台进行数据处理和运算,支持着Windows的软件运行
- Linux没有特定的支持厂商,游戏娱乐支持度不足,专业软件支持度不足
- 学习Linux要注重基础,从头开始
二、基本概念及操作
-
实验楼提供了在线的桌面环境,其运用的终端是Xfce
-
基本操作
- 重要的快捷键
[Tab]
使用Tab键来进行命令补全,Tab键一般键盘是在字母Q旁边,这个技巧给你带来的最大的好处就是当你忘记某个命令的全称时你可以只输入它的开头的一部分然后按下Tab键就可以得到提示或者帮助完成,当然不止补全命令,也可以补全目录,补全命令参数
[Ctrl+c]
当你在 Linux 命令行中无意输入了一个不知道的命令,或者错误的使用了一个命令,导致在终端里出现了你无法预料的情况,想要立即停止并恢复到你可控的状态,就可以使用Ctrl+c键来强行终止当前程序- 输入tail命令测试(tail命令执行后无任何变化在,只会显示键盘的输入)
- 输入find命令测试(find命令执行后会一直输出不懂的程序)
- 输入tail命令测试(tail命令执行后无任何变化在,只会显示键盘的输入)
- 其他的一些快捷键
Ctrl+d 键盘输入结束或退出终端
Ctrl+s 暂停当前程序,暂停后按下任意键恢复运行
Ctrl+z 将当前程序放到后台运行,恢复到前台为命令fg
Ctrl+a 将光标移至输入行头,相当于Home键
Ctrl+e 将光标移至输入行末,相当于End键
Ctrl+k 删除从光标所在位置到行末
Alt+Backspace 向前删除一个单词
Shift+PgUp 将终端显示向上滚动
Shift+PgDn 将终端显示向下滚动 - 键盘上键可以找到历史命令
- 通配符
- 用touch命令创建几个txt文件,想不起来文件名称的时候,可以使用
ls *.txt
命令,列出所有txt类型的文件 - 想创建一系列的文件时可以使用
touch love_{1..10}_linux.txt
命令 - Shell的常用通配符
字符 含义- 匹配 0 或多个字符
? 匹配任意一个字符
[list] 匹配 list 中的任意单一字符
[!list] 匹配 除list 中的任意单一字符以外的字符
[c1-c2] 匹配 c1-c2 中的任意单一字符 如:[0-9] [a-z]
{string1,string2,...} 匹配 string1 或 string2 (或更多)其一字符串
- 匹配 0 或多个字符
- 用man命令获取帮助
- 为了比较容易地找到man中对自己有用的命令,man命令做出了区分,要查看哪个区段的命令,man命令后面跟哪个区段的数字即可
man 1 ls
区段 说明
1 一般命令
2 系统调用
3 库函数,涵盖了C标准函数库
4 特殊文件(通常是/dev中的设备)和驱动程序
5 文件格式和约定
6 游戏和屏保
7 杂项
8 系统管理命令和守护进程
- 为了比较容易地找到man中对自己有用的命令,man命令做出了区分,要查看哪个区段的命令,man命令后面跟哪个区段的数字即可
- 用touch命令创建几个txt文件,想不起来文件名称的时候,可以使用
- 重要的快捷键
第二次试验作业
- 先使用
sudo apt-get update
和sudo apt-get install sysvbanner
命令安装banner - 然后使用
banner linux
和banner shiyanlou
- 使用
printerbanner -w 50 A
-w 控制打印宽度
- 练习安装figlet和toilet
三、用户及文件权限管理
-
本次实验主要进行Linux 中创建、删除用户,及用户组等操作以及Linux 中的文件权限设置
-
查看用户(注意
who am i
和whoami
的区别)
- who命令其他常用参数
参数 说明
-a 打印能打印的全部
-d 打印死掉的进程
-m 同am i,mom likes
-q 打印当前登录用户数及用户名
-u 打印当前登录用户登录信息
-r 打印运行等级
- who命令其他常用参数
-
创建账户
- 在 Linux 系统里, root 账户拥有整个系统至高无上的权利,比如 新建/添加 用户
- 需要用到sudo 命令。使用这个命令有两个前提,一是要知道当前登录用户的密码,二是当前用户必须在 sudo 用户组
- 创建的用户通常会在home的目录下,可以查看
-
切换用户
- 需要用到su 命令,su
可以切换到用户user,执行时需要输入目标用户的密码,su - 命令也是切换用户,同时环境变量也会跟着改变成目标用户的环境变量。
- 需要用到su 命令,su
-
查看当前用户属于哪个用户组
- groups命令(冒号之前表示用户,后面表示该用户所属的用户组)
- 查看/etc/group文件,其中cat命令用于读取指定文件的内容并打印到终端输出,| sort 表示将读取的文本进行一个字典排序再输出
可以用下面的命令查看自己想要的信息
- groups命令(冒号之前表示用户,后面表示该用户所属的用户组)
-
将其他用户加入sudo用户组
- 查看xiaoming用户是否在sudo用户组里
- 不在,切换回shiyanlou用户将xiaoming用户添加进入sudo用户组
- 查看xiaoming用户是否在sudo用户组里
-
删除用户
-
查看文件权限
- ls命令的一些其他用法
- ls命令的一些其他用法
-
变更文件所有者
-
修改文件权限
- 二进制数字表示
- 加减赋值操作
- 二进制数字表示
第三次实验作业
四、Linux目录基本结构及文件基本操作
- 查看文件
- 查看文件类型
五、环境变量与文件查找
- 变量
- 不同变量不同的命令
命令 说明
set 显示当前 Shell 所有环境变量,包括其内建环境变量(与 Shell 外观等相关),用户自定义变量及导出的环境变量
env 显示与当前用户相关的环境变量,还可以让命令在指定环境中运行
export 显示从 Shell 中导出成环境变量的变量,也能通过它将自定义变量导出为环境变量 - 使用vimdiff工具比较导出的几个文件的内容
- 查看PATH环境变量的内容
- 作业
六、文件打包与解压缩
- 文件压缩格式
文件后缀名 说明
*.zip zip程序打包压缩的文件
*.rar rar程序压缩的文件
*.7z 7zip程序压缩的文件
*.tar tar程序打包,未压缩的文件
*.gz gzip程序(GNU zip)压缩的文件
*.xz xz程序压缩的文件
*.bz2 bzip2程序压缩的文件
*.tar.gz tar打包,gzip程序压缩的文件
*.tar.xz tar打包,xz程序压缩的文件
*tar.bz2 tar打包,bzip2程序压缩的文件
*.tar.7z tar打包,7z程序压缩的文件 - 压缩文件格式与参数
压缩文件格式 参数
*.tar.gz -z
*.tar.xz -J
*tar.bz2 -j - 作业
七、文件系统操作与磁盘管理
- 使用 df 命令查看磁盘的容量
- 创建虚拟镜像
- 创建虚拟镜像文件
- 使用 mkfs 命令格式化磁盘
作业
八、Linux下的帮助命令
主要介绍了Linux下怎么获取命令的帮助文件
九、Linux任务计划crontab
-
crontab命令
-
这节讲解了 crontab 的一些简单的应用和一些简单的概念
十、命令执行顺序控制与管道
- 有选择的执行命令
- 管道
- grep命令
- wc计数小命令
- grep命令
- 作业
十一、简单的文本处理
- tr命令
-d 删除和set1匹配的字符,注意不是全词匹配也不是按字符顺序匹配
-s 去除set1指定的在输入文本中连续并重复的字符 - col 命令
-x 将Tab转换为空格
-h 将空格转换为Tab(默认选项) - join命令
-t 指定分隔符,默认为空格
-i 忽略大小写的差异
-1 指明第一个文件要用哪个字段来对比,,默认对比第一个字段
-2 指明第二个文件要用哪个字段来对比,,默认对比第一个字段 - paste 命令
-d 指定合并的分隔符,默认为Tab
-s 不合并到一行,每个文件为一行 - 作业
十二、数据流重定向
- 数据流重定向
- 简单的重定向
文件描述符 设备文件 说明
0 /dev/stdin 标准输入
1 /dev/stdout 标准输出
2 /dev/stderr 标准错误 - 作业
十三、正则表达式基础
- 优先级
运算符 说明
\ 转义符
(), (?😃, (?=), [] 括号和中括号
*、+、?、{n}、{n,}、{n,m} 限定符
^、$、\任何元字符 定位点和序列
| 选择
十四、Linux下软件安装
介绍了Linux下软件的各种安装方法,平常用的最多的还是sudo apt-get install 软件名
- 作业
十五、Linux进程概念
- 进程具有:动态性,并发性,独立性,异步性,结构性
- 线程(thread)是操作系统能够进行运算调度的最小单位
- 进程分为用户进程和系统进程
- 进程也可以分为交互进程,批处理进程和守护进程
十六、Linux进程管理
- top
- 第一行
内容 解释
top 表示当前程序的名称
11:05:18 表示当前的系统的时间
up 8 days,17:12 表示该机器已经启动了多长时间
1 user 表示当前系统中只有一个用户
load average: 0.29,0.20,0.25 分别对应1、5、15分钟内cpu的平均负载 - 第二行
内容 解释
Tasks: 26 total 进程总数
1 running 1个正在运行的进程数
25 sleeping 25个睡眠的进程数
0 stopped 没有停止的进程数
0 zombie 没有僵尸进程数 - 第三行
内容 解释
Cpu(s): 1.0%us 用户空间占用CPU百分比
1.0% sy 内核空间占用CPU百分比
0.0%ni 用户进程空间内改变过优先级的进程占用CPU百分比
97.9%id 空闲CPU百分比
0.0%wa 等待输入输出的CPU时间百分比
0.1%hi 硬中断(Hardware IRQ)占用CPU的百分比
0.0%si 软中断(Software IRQ)占用CPU的百分比
0.0%st (Steal time)是当 hypervisor 服务另一个虚拟处理器的时候,虚拟 CPU 等待实际 CPU 的时间的百分比 - 第四行
内容 解释
8176740 total 物理内存总量
8032104 used 使用的物理内存总量
144636 free 空闲内存总量
313088 buffers 用作内核缓存的内存量 - 第五行
内容 解释
total 交换区总量
used 使用的交换区总量
free 空闲交换区总量
cached 缓冲的交换区总量,内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖
- 第一行
- ps命令
- pstree命令
十七、Linux日志系统
- 根据服务对象将日志分为两类:系统日志和应用日志
- 简单了解系统日志结构,还有日志工具的配置
学期目标
- 入门网络攻防,能走下来流程,最终能攻破防御较差的目标机
学习进度条
教材学习 | 视频学习 | 博客量(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 12章 | 20篇 | ||
第一周 | 《Linux基础入门》 | 1/1 | 练习Linux命令,在码云上面创建项目,学习使用博客园写博客并用Markdown编辑器规范格式 |