啃书——《Linux就该这么学》——linux基本命令

前言

我本不是爱读书,只是单纯的要学知识,更直白点来说是学技能,因为不想再看那些几重积分什么的,计算计算,从头到尾都是计算。我不想以后回想起我的大学,都是跟别人一样——“我学会了这个怎么算,三重积分、隐函数……”,这不是我想学的,我的专业嘛,入学的几个月里,从学长那里得知这个专业学的非常杂,可以说是什么都学。所以在不想学其他的东西的时候,看这些书,枯燥无味,所以就记录下读书笔记和感悟。多少可以支撑我继续下去。
原本想看鸟哥的书来着,看好多人都推荐,看了几十页,实在懵,啃不动,所以换目标了。
开始读这本书,我看到了作者写的前言。抄下来激励一下自己。

“工作马马虎虎,只想在兴趣和游戏中寻觅快活,充其量只能获得一时的快感,绝不能
尝到从心底涌出的惊喜和快乐,但来自工作的喜悦并不像糖果那样—放进嘴里就甜味十足, 而是需要从苦劳与艰辛中渗出,因此当我们聚精会神,孜孜不倦,克服艰辛后的成就感,世 上没有哪种喜悦可以类比”。
“更何况人类生活中工作占据了较大的比重,如果不能从劳动中、工作中获得充实感, 那么即使从别的地方找到快乐,最终我们仍然会感到空虚和缺憾”

get知识

第一章

一、VM虚拟机的三种网络模式:

  • 桥接模式
    相当于在物理主机与虚拟机网卡之间架设了一座桥梁,从而可以通过物理主机的网卡访问外网。
  • NAT模式
    让VM 虚拟机的网络服务发挥路由器的作用,使得通过虚拟机软件模拟 的主机可以通过物理主机访问外网,在真机中 NAT 虚拟机网卡对应的物理网卡是 VMnet8。
  • 仅主机模式:
    仅让虚拟机内的主机与物理主机通信,不能访问外网,在真机中仅主机 模式模拟网卡对应的物理网卡是VMnet1。

虚拟机是了解过的,本身也安装过多台虚拟机,对于虚拟机的安装已经可以说不常出错了。在第一章仍然学到了知识,就是下面这些。以前关于网络模式只知道有桥接、NAT模式,仅主机模式这些模式,但是不知道具体是什么作用,因为没有遇到错误,就没有学习,这里作者解释了这个,让我可以学习到这些知识。

二、常见的Yum命令
Yum是Linux系统的软件包管理仓库
来自Linux就该这么学
第一章复习题:
问:使用虚拟机安装 Linux 系统时,为什么要先选择稍后安装操作系统,而不是去选择 RHEL 7 系统镜像光盘?
答:在配置界面中若直接选择了 RHEL 7 系统镜像,则VMware Workstation 虚拟机会使用 内置的安装向导自动进行安装,最终安装出来的系统跟我们后续进行实验所需的系统环境 会不一样。
:这个问题也是我之前进行安装虚拟机时所不明白的地方,记录下来。

第二章

  1. Shell 是一个命令行工具,也被称为“终端或壳”,是一个“翻译官”,让系统执行用户输入的命令。
  • 通过上下方向键来调取过往执行过的 Linux 命令;
  • 命令或参数仅需输入前几位就可以用 Tab 键补全;
  • 具有强大的批处理脚本;  具有实用的环境变量功能。
  1. echo命令,很像PHP中的打印命令。
    m0re
    像这样。
  2. date命令。可以查看当前时间
    m0re
    Linux就该这么学
    做实验前,我将虚拟机拍摄了快照。可以随便玩。
    m0re
    这个是root用户才可以进行的操作,所以加个sudo
  3. reboot命令
    重启系统。
  4. poweroff命令
    关闭系统
  5. wget命令
    在终端下载网络文件
    m0re
    栗子:下载书籍。
    m0re
    应该是书上给的url的问题,证书未生效,只要在后面加上--no-check-certificate就可以了。
    使用 wget 命令递归下载www.linuxprobe.com 网站内的所有页面数据以及文
    件,下载完后会自动保存到当前路径下一个名为 www.linuxprobe.com 的目录中。执行该操作 的命令为 wget -r -p http://www.linuxprobe.com,
    就能看到在目录下有这么个文件(同样需要加--no-check-certificate)
    m0re
  6. ps命令
    m0re
    m0re
  7. top命令
    任务管理器,这个我用windows系统的时候也不怎么用,只作了解。
  8. pidof命令,
    查询指定服务进程的PID值。使用方法:pidof [进程名称]
  9. kill命令
    终止指定PID的服务进程,用上个命令查出来的PID可以通过这条命令来终止服务。
  10. who命令
    查询当前登入主机的用户的信息。
    m0re
  11. history命令
    history 命令用于显示历史执行过的命令,格式为“history [-c]”。
    执行 history 命令能显示出当前用户在本地计算机
    中执行过的最近 1000 条命令记录。
  12. ls命令
    这个命令我之前有了解过的。所以书上有些不是很完整的,我还在百度上找了几条扩展的用法,都记录在我的印象笔记上。
    含义:ls(list)
    用法:ls
    m0re
    ls通配符的使用
    m0re
    m0re
    用法2 : ls 路径
    如:ls /root
    用法3:ls 选项 路径
    含义:列出路径下所有文件夹/文件,并以指定格式进行显示
    常见语法
    ls -l 列出各文件的详细信息,如创建者、创建时间、文件的读写权限
    m0re
    ls -a 列出文件下所有文件,包括以 “.” 开头的隐藏文件(linux中以“.”开头的是隐藏文件,如果存在"…"代表存在父目录)
    m0re
    用法4
    ls -lh 路径
    含义:列出文件指定路径下的所有文件,并以可读性较高的形式显示文件大小
    m0re
  13. cd命令
    m0re
    用法: 切换当前工作目录
    语法:cd 路径
    当前如果在"/"下,需要使用绝对路径
    如: 切换到/目录下的usr下的etc目录下
    cd /usr/etc
  14. tar命令
    tar命令直接对压缩包进行解压或对普通文件进行压缩。

命令大部分都记在印象笔记上,这里只记几个。

第三章

  1. 管道符,🙄🙄🙄刚开始没看懂什么意思。可能跟我的看书习惯有关系。
    可以结合两个命令成一个命令来执行,先执行管道符前面的命令,然后再执行后面命令。
    比如:命令1 | 命令2
    还可以这样:命令1 | 命令2 | 命令3
  2. 通配符,好像跟正则表达式差不多(哈,这么理解好像也还可)。
  3. 环境变量
    m0re
    m0re

第四章

  1. vim编辑器,看过一篇文章是写的关于vim编辑器的。感觉很好。
    放上大佬写的博客,有关vim编辑器的,Linux——vi命令详解
    m0re
    书上介绍的仅仅只有创建一个文本文件的介绍,其他的需要自己拓展。这里用到了再说,看一点算一点。
    2.然后根据Yum配置软件仓库,这里书里写的非常详细。跟着做了一遍。
    3.编写一个简单的shell脚本。
    输入vim test.sh名字随意。
    然后在里面编辑如下内容
#!/bin/bash
#For example by https://zxcv0221.github.io
pwd
ls -al

第一行是脚本声明,为了告诉系统使用哪一种Shell解释器来执行这个脚本。
第二行是注释信息,我在这里放上了我的个人博客地址。可以随便加东西。
第三行,第四行才是linux命令。
写完后:wq!进行保存退出就可以了。
然后执行一下

bash test.sh

然后就能看到结果了。
我也模仿了一遍,看下效果。
m0re
4. 逻辑运算符:与、或、非
&&逻辑与,它表示当前面的命令执行成功后才会执行它后面的指令,判断一个文件是否存在,如:/dev/cdrom输入命令:[-e /dev/cdrom ] && echo "Exist"如果存在则输出Exist。
m0re
||逻辑或,表示前面的语句执行失败才会执行后面的语句,书上用的“栗子”是判断当前登录的用户是否为非管理员身份。
m0re
!逻辑非,表示把条件测试中的判断结果取相反值,如果判断结果是true,那么就返回false。反之类似。
综合:将三种逻辑语句简单的放一起,效果:
m0re5. 流程控制语句
if条件语句的多分支结构由 if、then、else、elif、fi 关键词组成,它进行多次条件匹配判
断,这多次判断中的任何一项在匹配成功后都会执行相应的预设命令,相当于口语的“如 果……那么……如果……那么……”。
举个栗子:

[root@linuxprobe ~]# vim chkhost.sh #!/bin/bash
ping -c 3 -i 0.2 -W 3 $1 &> /dev/null if [ $? -eq 0 ] then
echo "Host $1 is On-line." else
echo "Host $1 is Off-line." fi

for循环语句
m0re

while循环语句
m0re
小游戏:
m0re

第五章

用户身份与文件权限

  1. useradd命令用于创建新的用户。
    m0re
  2. 其他的书上非常详细,我好像暂时不用这些,再看这个命令:chmod,这个比较熟悉,是提权的,之前看到大佬的博客的什么教程来着,忘了,不过这个命令印象很深,耳熟能详的词语:提权
    书上的介绍是这样:
    m0re
    m0re
    除了设置文件或目录的权限外,还可以设置文件或目录的所有者和所属组,这里使用的命令为 chown,其格式为“chown [参数] 所有者:所属组 文件或目录名称”。在针对目录进行操作时需要加上大写参数-R 来表示递归操作。
    m0re
    不过,我的linux系统,有点奇怪,我之前做实验的时候发现的,但是没有在意,就是我删除文件的时候,像这样:
    m0re
    “一点都不留情啊,问都不问直接给我删了。”跟书里的操作不一样啊。这个我去查了一下,然后发现有人问了这个问题,而且下面有人回答,我就直接用了。
    在普通用户下,是没有提示的,而在root用户下,就会提示:
    m0re
    解决办法,可根据百度找到和自己情况类似的,我已经更改过了,但是没留图。所以就放一个链接吧。linux用rm命令删除文件为什么没有提示?
  3. SBIT特殊权限位
    这个权限是为了防止误删一个用户误删其他用户的文件,这个特殊权限可以确保用户只能删除自己的文件,而不能删除其他用户的文件。默认已经设置了SBIT特殊权限位,因此除非是该目录的所有者,否则无法删除这里面的文件。
    如果想要对其他目录来设置SBIT特殊权限位,用chmod命令就可以了,对应的参数o+t代表设置SBIT粘滞位权限
chmod -R o+t 文件名/
栗子:
chmod -R o+t lxj/
  1. 文件的隐藏属性
    4.1、chattr命令
    设置文件隐藏权限,格式为:chatter [参数] 文件
    m0re
    m0re
    m0re
    可以看出这个已经不能删除了,其他的命令自行尝试。
    4.2、lsattr命令
    lsattr命令用来显示文件的隐藏权限,格式为lsattr [参数] 文件
    在linux系统中,文件隐藏权限必须使用lsattr命令来查看。使用ls是看不出来什么问题的。
[lxj@wkx 桌面]$ lsattr lxj
-----a---------- lxj
  1. su命令与sudo服务
    su命令可以顺利解决切换用户身份的需求,是当前用户在不退出登录的情况下,顺利切换到其他用户。这个在使用root权限的时候经常用到。
    使用过程中有个细节,以前没注意。就是在使用su切换用户时,尽量添加一个(-)这个就是代表完全切换到新的用户,还把环境变量信息也变更为新用户的信息。是个好习惯吧,记一下。
su - root
su - lxj

而sudo就是给普通用户提供额外的权限完成root用户才能进行的操作。

#格式
sudo [参数] 文件名称/某个命令

sudo 的功能如下:
m0re
亮点
在书的小角落里有这么一段内容:每次使用sudo命令都要输入一次当前用户的登录密码,可能费时间什么的。有些人会觉得比较麻烦,作者给我们提供了一种方法,可以节省大量时间。
m0re
然后配置完了,可以试试这个命令

sudo poweroff

嗯😁这个一眼没看清就关机了。

Linux基础

下面是我学习过程做得笔记,都是最基础的linux命令,常用的。
基础指令(重点)

command [-options] [parameter]
command 命令名 ,相应功能的英文单词或单词的缩写。
[-options] 选项,可以用来对命令进行控制,也可以省略
[parameter] 传给命令的参数,可以是零个、一个、或多个。

查阅命令信息

command --help

显示command的命令帮助信息

man command

查阅command命令使用手册
按q退出

常用命令分类

  1. 创建和删除目录(文件夹)
    touch
    作用:
    • 如果文件不存在,创建文件
    • 如果文件存在,修改文件的末次修改时间
      如:在桌面创建一个文件名为网安的txt文件
      m0re
      可以用touch同时创建多个文件
      m0re
  2. rm(删除功能)
    m0re
    作用:删除文档/文件
    语法:rm 需要移除的文档路径
    删除一个普通文件

强制删除一个文件夹m0re
删除文件夹需要用 -r 强制删除用-rf

删除一个目录下有公共特性的文件
m0re

Linux中 * 表示通配符,表示任意字符,h * 表示以h开头的文件后续字符不管。
  1. mkdir
    语法一: mkdir 路径 (路径可以是文件夹名称也可是完整的路径)
    在当前目录下创建一个目录:
    m0re
    语法二: mkdir -p
    如:在指定路径建一个文件夹 在桌面上吧
    一次性创建多层目录时需要-p ,否则会报错。
    m0re
    语法三: mkdir 路径一 路径二 路径三 (表示创建多个文件)
    m0re
  2. 拷贝和移动文件
    cp 拷贝
    m0re
    作用:复制文件/文件夹到指定的位置
    语法:cp 被复制的文档路径 被复制的路径

注意:Linux在复制过程中可以对文件进行重命名 格式: cp 被复制文件路径 被复制到的路径/新文件名 注意复制文件为文件夹时
cp后要加-r【-r表示递归复制】否则目录将被忽略

  1. mv 移动
    作用:移动文档到新的位置
    语法:mv 需要移动的文档路径 移动到的文档路径
    重命名的语法和移动是一样的

  2. 查看文件内容
    cat指令
    m0re
    功能:cat 有直接打开文件的功能
    语法1:cat 文件路径
    作用2:合并文件
    语法2:cat待合并文件1 待合并文件2 >合并后文件路径

  3. more
    适合查看文件内容较多的文件
    m0re

  4. grep
    grep是强大的文本搜索工具
    允许对文本进行模式查找
    m0re
    常用的两种模式查找
    m0re
    感觉这个跟正则表达式很像啊。

  5. pwd指令
    用法:打印当前工作目录
    m0re

  6. tree

  • tree是一种递归目录列表命令,产生一个深度缩进列表文件,这是彩色的ALA dircolors如果ls_colors设置环境变量和输出是TTY。树已经被移植和报道以下操作系统下工作:Linux,FreeBSD,OS X操作系统,Solaris,HP UX,Cygwin,HP NonStop OS / 2。
  • tree命令安装
    CentOS7: yun install tree 在root权限
    测试安装:tree
    m0re
    tree命令使用
    格式: tree 参数
    m0re

OK,目前就学这些,发现这些命令用多了真的好用,很有意思。虽然看书无聊,但是学到东西了。

文末寄语:

每个人都会经过这个阶段,看见一座山,就想知道山后面是什么。我很想告诉他,可能翻过去山后面,你会发觉没有什么特别。——《东邪西毒》

posted @ 2020-06-27 14:06  m0re  阅读(59)  评论(0编辑  收藏  举报