zoukankan      html  css  js  c++  java
  • 实验楼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

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

  • 相关阅读:
    【23设计模式】总结
    【JAVA】内部类,内部接口
    【JAVA】接口
    【JAVA】抽象类,抽象方法
    【JAVA】类加载器
    【JAVA】枚举
    【JAVA】序列化
    【JAVA】异常笔记
    汇编笔记_第十一章
    汇编笔记_第十章
  • 原文地址:https://www.cnblogs.com/wangyaqiong/p/6498415.html
Copyright © 2011-2022 走看看