实验楼Linux基础入门第一周

&&使用oschina的git服务器
1.创建了项目 https://git.oschina.net/abc99/wyq20169314
2.配置项目
(1)为项目添加公钥
项目管理-部署公钥管理-添加新的公钥
打开git客户端,生成公钥,生成命令如下

这样在d盘下就会有两个文件:

在d盘下创建一个文件夹为mypro,把oschina_key、oschina_key.pub放到里面

用记事本打开oschina_key.pub,把公钥添加到oschina中

5.测试使用

先git clone 项目地址,把项目下载下来

修改一下readme的内容

git进入到项目中,为项目添加新的文件,然后commit,再提交到远程服务器中

在项目页面中,刷新之后,就可以查看到我们刚刚更新的ReadMe内容

第一讲:Linux 就是一个操作系统,是系统调用和内核那两层
第二节 基本概念及操作
1.实验环境:实验楼自带XFCE-terminal
2.实验通过shell(终端模拟器)来与系统打交道
3.命令行操作
Tab补全
ctrl+c中断、
方向上键利用历史输入命令、
通配符(*、?)
使用man命令获取帮助,八个区段
4.banner 输出图形字符
$ sudo apt-get update (手动更新软件包索引)

    $ sudo apt-get install sysvbanner

    $ banner 20169314

  '-w'参数指定打印宽度,因为我们的环境在屏幕中显示比较小,必须要加上宽度限制。

  $ printerbanner -w 50 A

第三节、用户及文件权限管理
0.用户管理 权限机制
一、用户管理
1.查看用户

$ who am i表示当前伪终端用户的用户名,第二列的 pts/0 中 pts 表示伪终端

$ whoami查看当前登录用户的用户名

2.创建用户 root权限

$su <user> 切换到用户user,需要密码

$sudo <cmd> 运行cmd命令,需要用户属于sudo组,且需要密码

$su-<user>  环境变量改变

$su -l lilei 切换用户,需要密码

ctrl+d或exit 退出终端
![](http://images2015.cnblogs.com/blog/1115783/201703/1115783-20170304095139095-309704150.png)
![](http://images2015.cnblogs.com/blog/1115783/201703/1115783-20170304095225548-1839392510.png)

3.查看用户组
(1)group命令

(2)查看 /etc/group文件

cat /etc/group|sort(cat用于读取指定文件的内容并打印到终端输出,|sort表示将读取的文本进行一个字典排序再输出)

cat /etc/group |grep -E "shiyanlou"(过滤掉不想看到的结果)

4.用sudo命令将wyq添加到sudo用户组,让其有权限

$ su shiyanlou

$ groups wyq

$ sudo usermod -G sudo wyq(获得权限,usermod 命令可以为用户添加用户组,需要密码)

$ groups wyq(返回用户,查看是否获得权限)

5.删除用户

    $ sudo deluser wyq --remove-home

二、文件权限

1.查看文件权限

$ ls -l


打开并查看内部文件r+x
创建其他文件w
用命令查看文件大小:ls -lh
2.修改权限rwx!

作业:

第四节、Linux 目录结构及文件基本操作
一、Linux 目录结构
FHS (文件系统层次结构标准)定义了两层规范
第一层是, / 下面的各个目录应该要放什么文件数据,例如 /etc 应该要放置设置文件,/bin 与 /sbin 则应该要放置可执行文件等。
第二层则是针对 /usr 及 /var 这两个目录的子目录来定义。例如 /var/log 放置系统登录文件、/usr/share 放置共享数据等
进入上一级目录 $ cd ..
进入home目录 $ cd ~或者$ /home/<用户名>
pwd 获取当前路径
绝对路径,简单地说就是以根"/"目录为起点的完整路径路径
相对路径,也就是相对于你当前的目录的路径,相对路径是以当前目录 . 为起点,以你所要到的目录为终点
二、Linux 文件的基本操作

    $ touch 文件名 (创建新文件)

    $ mkdir 目录名 (创建新目录)

    $ mkdir -p a/b/c  (同时创建多级目录)

    $ cp 文件名 a/b/c(复制文件 到文件夹或目录中)

    $ mkdir d
    $ cp -r d b(复制目录d到目录b处)

    $ rm 文件名(删除文件或文件夹)
    $ rm -f 文件名(强制删除)
    $ rm -r 目录名(删除目录)
    
    $ mkdir 目录e
    $ mv 文件a 目录e(移动 剪贴 文件a到目录e)

    $ mv 旧名 新名(重命名)

    查看文件
    $ cat -n 文件名(快速查看文件,-n显示行号)
    $ nl 文件名(添加行号并打印)
    使用more和less分页查看,默认显示一页内容
    使用head和tail显示文件,显示头几行和尾几行
    使用file命令可以查看文件的类型
    用vim编辑区编辑文件内容

第五讲 环境变量与文件查找
一、如何建议一个变量
1.使用declare命令创建一个变量名为 tmp 的变量,用=号赋值运算符为变量 tmp 赋值为 shiyanlou,并读取变量的值:

    $ declare tmp

    $ tmp=shiyanlou

    $ echo &tmp

2.三种环境变量相关的命令,set,env,export
3.命令的查找路径与顺序
4.添加自定义路径到“PATH”环境变量
5.修改和删除已有变量
二、搜索文件

  1. $ whereis who(简单快速)

  2. $ locate /etc/sh

    $ locate /usr/share/*.jpg(快速,全面)

3.which(从path指定环境中搜索)
4.find(详细)

第六讲 文件打包与解压缩

用 zip压缩,用unzip解压缩
用rar压缩、unrar解压缩,要先安装rar、unrar工具
tar分别有对应的解压命令

第七讲 文件系统与磁盘管理
一、简单文件系统操作

1.查看磁盘和目录的容量

    使用 df 命令查看磁盘的容量

   $ df

    使用 du 命令查看目录的容量

    $ du
    $ du -h

2.简单的系统操作(这个不太会,我先进行后面的内容)
3.作业

第八讲 Linux下的帮助命令
一、内建命令与外部命令
内建命令实际上是 shell 程序的一部分,其中包含的是一些比较简单的 Linux 系统命令,这些命令是写在bash源码的builtins里面的,并由 shell 程序识别并在 shell 程序内部完成运行,通常在 Linux 系统加载运行时 shell 就被加载并驻留在系统内存中。而且解析内部命令 shell 不需要创建子进程,因此其执行速度比外部命令快。比如:history、cd、exit 等等。
外部命令是 Linux 系统中的实用程序部分,因为实用程序的功能通常都比较强大,所以其包含的程序量也会很大,在系统加载时并不随系统一起被加载到内存中,而是在需要时才将其调用内存。虽然其不包含在 shell 中,但是其命令执行过程是由 shell 程序控制的。外部命令是在 Bash 之外额外安装的,通常放在/bin,/usr/bin,/sbin,/usr/sbin等等。比如:ls、vi等。
 type 命令来区分命令是内建的还是外部的。

$ type ls
$ type exit

二、 帮助命令
1.help命令
进入 bash 中,其内置有help命令,help命令只能用于查询内建命令。

![](http://images2015.cnblogs.com/blog/1115783/201703/1115783-20170304161214048-2068902430.png)

--help用来查询外部命令

$ ls --help

2.man 命令
得到的内容比用 help 更多更详细,而且 man 没有内建与外部命令的区分
3.info命令
 是 GNU 的超文本帮助系统,能够更完整的显示出 GNU 信息。

第十讲 Linux任务计划crontab
crontab 命令常见于 Unix 和类 Unix 的操作系统之中(Linux 就属于类 Unix 操作系统),用于设置周期性被执行的指令。该命令从输入设备读取指令,并将其存放于 crontab 文件中,以供之后读取和执行。通常,crontab 储存的指令被守护进程激活,crond 为其守护进程,crond 常常在后台运行,每一分钟会检查一次是否有预定的作业需要执行。通过 crontab 命令,可以在固定的间隔时间执行指定的系统指令或 shell script 脚本。时间间隔的单位可以是分钟、小时、日、月、周的任意组合。

第十一讲 命令执行顺序控制与管道

一、命令执行顺序的控制

1.顺序执行

$ sudo apt-get update

$ sudo apt-get install some-tool

$ some-tool

以上三条可以一次性输完,可以自己运行

$ sudo apt-get update;sudo apt-get install some-tool;some-tool

2.有选择的执行命令

我们需要能够有选择性的来执行命令,比如上一条命令执行成功才继续下一条,或者不成功又该做出其它什么处理,比如我们使用 which 来查找是否安装某个命令,如果找到就执行该命令,否则什么也不做。

$ which cowsay>/dev/null && cowsay -f head-in onch~

如果没有安装cowsay也不会发生什么不好的后果

&&就是用来实现选择性执行的,它表示如果前面的命令执行结果(不是表示终端输出的内容,而是表示命令执行状态的结果)返回0则执行后面的,否则不执行.
shell中的&&和||除了用于表示逻辑与和或之外,还可以实现这里的命令执行顺序的简单控制。||在这里就是与&&相反的控制效果,当上一条命令执行结果为≠0($?≠0)时则执行它后面的命令

3.管道

管道是什么,管道是一种通信机制,通常用于进程间的通信(也可通过socket进行网络通信),它表现出来的形式就是将前面每一个进程的输出(stdout)直接作为下一个进程的输入(stdin)。

管道又分为匿名管道和具名管道

在使用一些过滤程序时经常会用到的就是匿名管道,在命令行中由|分隔符表示,|在前面的内容中我们已经多次使用到了。具名管道简单的说就是有名字的管道,通常只会在源程序中用到具名管道。

1.用ls命令查看/etc目录里有哪些文件和目录

$ ls -al /etc

$ ls -al /etc |less

通过管道将前一个命令(ls)的输出作为下一个命令(less)的输入,然后就可以一行一行地看.

2.cut 命令,打印每一行的某一字段

$ cut /etc/password -c 5

3.grep 命令,在文本中或 stdin 中查找匹配字符串

一般形式:grep [命令选项]... 用于匹配的表达式 [文件]...

  1. wc 命令,简单小巧的计数工具

$ wc /etc/passwd

5.sort 排序命令

将输入按照一定方式排序,然后再输出,它支持的排序有按字典排序,数字排序,按月份排序,随机排序,反转排序,指定特定字段进行排序等等。

$ cat /etc/passwd |sort

  1. uniq 去重命令

uniq命令可以用于过滤或者输出重复行

作业:
用ASCII命令显示图片

$ sudo apt-get update

$ sudo apt-get install aview

$ sudo apt-get install imagemagick

$ wget http://labfile.oss.aliyuncs.com/courses/1/Linus.png

$ acsiiview Linus.png

以上为网络攻防第一周博客。通过这周学习,了解了很多之前没有接触过的知识,希望在之后的学习更进一步。

posted @ 2017-03-05 10:48  pokermans  阅读(628)  评论(1编辑  收藏  举报