《信息安全系统设计基础》第1周学习总结

 

 

20145336张子扬 《信息安全系统设计基础》第1周学习总结

教材学习内容总结

在linux中快捷键

  • CTRL+ALT+T:打开终端,天天使用终端,用鼠标打开太低效了
  • CTRL+SHIFT+T:新建标签页,编程时有重要应用
  • ALT+数字N:终端中切换到第N个标签页,编程时有重要应用
  • Tab:终端中命令补全,当输入某个命令的开头的一部分后,按下Tab键就可以得到提示或者帮助完成
  • 上下键盘:切换命令历史,刚输入一个很长的命令,按上键就可以恢复
  • CTRL+C:中断程序运行
  • Ctrl+Z: 将当前程序放到后台运行,恢复到前台为命令fg
  • Ctrl+A: 将光标移至输入行头,相当于Home键
  • Ctrl+E: 将光标移至输入行末,相当于End键
  • Ctrl+K: 删除从光标所在位置到行末

在linux命令行中,命令格式一般为:

command [options] [arguments] //命令 【选项】(可选)【参数】(可选)

ls命令:显示当前文件夹的文件
ls.命令:这里.是一个参数,指当前文件,和命令有所冲突,语句和ls是一样的效果
ls -a .命令:显示当前文件夹所有文件包括隐藏文件和目录

如果你想创建多个文件

$ touch love_{1..10}_linux.txt

查找时可以使用*和?来代替未知或者忘记的字符

man

在 Linux 环境中,如果你遇到困难,可以使用man 命令,它是Manual page的缩写。

在man的手册中一般包括以下及部分内容

  • name(名称):该命令或函数的名称,接着是一行简介
  • synopsis(概要):对于命令,正式的描述它如何运行,以及需要什么样的命令行参数。对于函数,介绍函数所需的参数,以及哪个头文件包含该函数的定义。
  • description(说明):命令或者函数功能的文本描述
  • examples(示例):常用的示例
  • see also(参见):相关的命令或者函数列表

查找到后你可以使用n键切换到下一个关键字所在处,shift+n为上一个关键字所在处。使用Space(空格键)翻页,Enter(回车键)向下滚动一行,或者使用j,k(vim编辑器的移动键)进行向前向后滚动一行。按下h键为显示使用帮助(因为man使用less作为阅读器,实为less工具的帮助),按下q退出,如果想获得更详细的帮助,可以使用info命令。如果只想查看某个具体参数的作用,可以使用--help。

man -k:可以帮助我们学习代码,像是一个搜索引擎。可以结合man -k key|grep来实现关键词查找。man -k等价于apropos。man -f cmd可以查看命令的基本功能,等同于whatis。

cheat

cheat命令可以提供显示Linux命令使用案例,包括该命令所有的选项和简短但尚可理解的功能。

它比man命令提供的信息更加简单,但是同样更加易懂,用实例来告诉你这一条命令应该如何使用。

cheat命令在linux里并没有安装,需要自己安装

find

find命令可以查找一个文件在系统的位置

locate

locate是神速版的find

grep

grep可以对全文件进行全文检索,比如寻找main函数在那个文件中,可以通过grep -n main*.c,快速找到main在那个c文件中并指出第几行。

whreris和whicd

whereis和which命令可以快速找到文件安装的位置

我对linux自带的firefox浏览器进行了实验操作:

apt-cache

apt-cache可以在使用apt-get install安装一个程序时先找软件源库中是否有这个程序

用户的创建

可以使用who am i来查找当前的用户

如果你想要新建一个用户,可以使用sudo adduser xxx来进行创建新用户

查看etc/group文件

使用 cat /etc/group | sort

使用 cat /etc/group | grep -E "shiyanlou"只显示与实验楼相关的信息

etc文件格式说明

groupname:password:GID:userlist

将其它用户加入sudo用户组

使用usermod命令将用户添加入用户组,但需要root权限

su shiyanlou(输入用户的密码)
groups zzy
sudo usermod -G sudo zzy
groups zzy

删除用户

sudo deluser zzy --remove-home

linux查看文件权限

https://dn-anything-about-doc.qbox.me/linux_base/3-10.png/logoblackfont

文件权限

cat <file name>之类的命令读取某个文件的内容

一个目录要同时具有读权限和执行权限才可以打开,而一个目录要有写权限才允许在其中创建其它文件

链接数:链接到该文件所在的 inode 结点的文件名数目

文件大小:以inode结点大小为单位表示文件的大小,给ls加上 -lh参数来更直接的查看文件的大小

ls -A 显示当前目录和上一级目录下所有文件包含隐藏文件,在linux中开头为.的文件为隐藏文件
ls -dl<目录名> 显示该目录的完整属性
ls -AsSh 用比较简介的形式展现

变更文件所有者,将在zzy下的xxx变更到shiyanlou

cd /home/zzy
ls xxx
sudo chown shiyanlou xxx
cp xxx home/shiyanlou

Linux 目录结构及文件基本操作

1、Linux 的文件组织目录结构。

Linux 是以树形目录结构的形式来构建整个系统的,虽然目录存储和系统内核都是在磁盘里,但是磁盘是挂载(这里的挂载是什么意思)在目录上的

linux中大部分目录结构是规定好了(FHS 标准)

fhs标准

fhs定义了两层规范:第一层是/下面的各个目录应该放置什么样的文件规范,例如:/etc应该放置设置文件,/bin和/sbin则应该放置可执行文件

第二层则是针对/usr及/var这两个目录的子目录来定义。例如/var/log放置系统登陆文件,/usr/share放置共享数据等等。

2、相对路径和绝对路径。

绝对路劲:是以根"/"目录为起点的完整路径,以你所要到的目录为终点。例如:/usr/local/bin

相对路径:是相对于你当前的目录的路径,相对路径是以当前目录 . 为起点,以你所要到的目录为终点。例如:usr/local/bin

3、对文件的移动、复制、重命名、编辑等操作。

Linux 文件的基本操作

touch:创建空白文件,主要是用来更改时间戳的,但是在不加任何参数的条件下,只指定一个用户名,可以创建一个空白文件

mkdir xx:创建一个名为“xx”的目录

mkdir -p father/son/grandson:可以创建一个多级目录
cp xx father/son/grandson:将xx文件复制到father/son/grandson中
cp -r father family:将这个目录整个复制到family中
rm xx:删除文件,前提是要在这个目录下
rm -f xx:强制删除
rm -r xx:删除目录
mv file1 Documents:将文件移动到目的文件夹中
mv file1 myfile:更改名字
批量命名:rename,需要用到正则表达式
cat xx:显示文件,
cat -n xx:显示行号
tac:倒叙显示 tac:正序显示 nl:添加行号并打印(这样打开方式只能用鼠标滚轮来翻页)
more xx:打开文件,可以使用Enter键向下滚动一行,使用Space键向下滚动一屏,按下h显示帮助,q退出。(这种显示只能向下滚动,怎么向上滚动啊)
tail和head:只显示头和尾 -n <紧跟行数> -f 动态不停的读取某个文件的内容并显示,起到实时监视的作用
file命令查看类型

环境变量与文件查找

declear可以声明一个变量,使用=号赋值运算符为变量赋值。

读取变量的值,使用echo命令和$符号($符号用于表示引用一个变量的值)

三种环境变量 

1. 当前 Shell 进程私有用户自定义变量

2. Shell 本身内建的变量

3. 从自定义变量导出的环境变量

教材学习中的问题和解决过程

在一开始使用vmware虚拟机时,更新了虚拟机,不知为何虚拟机奔溃了

在网上寻找了原因,需要在安装目录文件中删去三个文件,虚拟机回复正常

课后作业中的问题和解决过程

在使用man命令时,man 手册的内容很多,涉及了 Linux 使用过程中的方方面面,为了便于查找,是做了分册(分区段)处理的,在Research UNIX、BSD、OS X 和 Linux 中,手册通常被分为8个区段,安排如下:

我在命令行中尝试了一下man printf,man 1 printf,man 3 printf

实现banner的安装

banner是一个可以输出图形字符的linux命令,但使用之前需要先安装

$ sudo apt-get update

$ sudo apt-get install sysvbanner

 

其他(感悟、思考等,可选)

第一次接触linux系统,带给我的新奇的感觉,新奇的是它带个用户不同于windows系统的体验。在windows系统中,用户可以通过键盘,鼠标在图形界面上进行操作。但在linux系统中,我们更多的是使用键盘输入在命令行中完成对计算机的操作,不再依赖于图形化界面。这种模式对于用户来说更难掌握,需要更加丰富的知识才能进行操作,同样当你熟练运用linux后,它的效率也会比windows系统高很多的。

在linux系统中都是使用命令行输入命令对计算机进行操作,在命令行中基本是纯英语的,由于我英语水平不高,有些命令行的提示还得去百度,很尴尬。

我觉得刚开始学一门新知识都是比较费劲的,应为你不仅要去学习相对应的知识,还要去适应它的 学习方法。学习linux我觉得对于每一条命令,动手去操作,了解它的用途,对应的参数,每种选项有什么效果,就像学英语要像先记单词一样。而老师建议我们去熟练掌握man方法,cheat方法就是让我们掌握查字典的方法。久而久之,我们就能够掌握自主学习的方法。

本周进度有点慢,因为在准备复习,在下周要加快进度,多动手操作。

学习进度条

 代码行数(新增/累积)博客量(新增/累积)学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时    
第一周 / 1/2 19/20  
         

 

参考资料

原文地址:https://www.cnblogs.com/20145336yang/p/5883355.html