Linux的初次见面。

SECTION ONE

一.Linux

1.计算机

Linux只是操作系统的内核名字,没有别的含义。内核非常重要,有了它操作系统才能运行起来,但是他不能构成一个完备的操作系统。与GNU开源软件相结合才组成了操作系统。

2.Linux中一切皆文件。(重要思想)

   Linux中文件存储结构为倒树型结构

其中根目录为一级目录

           底下是二级目录

如图:

此处我们列举一下root里所含文件及目录:

/bin       二进制可执行文件,系统常规命令(重要)

/boot     启动目录,存放系统自动启动文件,内核,还有初始化程序(重要)

/dev      系统设备管理文件

/etc       大多数系统配置文件,服务存放路径(重要)(若删除很多服务无法支持)

/home   普通用户家目录(重要)与超级用户家目录不同,普通包含在超级里面

/lib        函数库

/lib64    64位函数库

/media  临时挂载点

/mnt      临时挂载点

/opt       第三方软件安装目录

/proc     系统硬件信息和系统进程信息

/root      超级用户家目录,超级用户登陆系统后默认在的地方。超级用户拥有最高权限,可以管理其他的

/run       自动临时的设备挂载点

/sbin      系统管理命令,通常只有root可以执行(重要)

/srv        系统数据目录

/var        系统数据目录

/sys        内核相关数据

/tmp       临时文件产生目录

/usr        用户相关信息数据

 

二.虚拟机相关知识

1.什么是虚拟机

虚拟机是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。(简单来说,就是和物理机[真机]一模一样,你可以干任何你想干的事情,玩坏了都不怕,嘿嘿)

2.基本使用手册

先在桌面点击右键打开一个新的terminal,

输入 rht-vmctl start desktop,打开一个虚拟机

输入 rht-vmctl view desktop,查看一个虚拟机

输入 rht-vmctl start server,打开一个虚拟机

输入 rht-vmctl view server,查看一个虚拟机

输入 rht-vmctl poweroff desktop,关闭虚拟机

输入 rht-vmctl reset desktop,重置虚拟机(玩坏了用的)

注意:可能出现的报错形式:

(1)在输入 rht-vmctl start desktop打开一个虚拟机后,再次输入 rht-vmctl start desktop,此时出现报错如图:

(2)在未打开虚拟机desktop的时候,输入 rht-vmctl view desktop想要查看一个虚拟机,此时出现报错如图:

其中root(超级用户)登录方式

Not listed? ---- root ---- 超级用户登录密码

 

三.Linux中基本操作

1.在linux中如何运行命令

例如:(具体命令的用法意义在后面提,这里我们先看一看它的效果)

ls用来查看目录里面有什么

命令        参数       目标

ls              -l           test   

ls          --size        test

命令 参数 目标(中间空格隔开)  

参数用来限定命令的执行方式

注意:

1)参数用来指定命令的某些功能,可以加也可以不加

2)命令和参数还有目标之间要用空格分开

3)在执行命令时通常遵循这些规则,特殊情况除外

4)命令必须在命令提示符后输入,没有提示符的输入是无效的

2.命令提示符中字段含义

例如:[kiosk@foundation0 Desktop]$  (切开来一块一块看)

kiosk:当前用户,运行shell的是谁

@:分割符号

foundation0:主机名短名称(可以输入fundation查询主机名全称)

Desktop:所在当前主机位置

$:身份提示符

$:代表普通用户;#:代表超级用户

 

四.Linux中的文件和目录(也就是平时所说的文件夹)

1.文件建立

          touch filename     

2.目录建立(文件夹)

          mkdir directory

          mkdir -p dir1/dir2/dir3     (-p建立递归目录,当上层目录不存在时自动建立多层)

3.文件删除

          rm file            此时删除会有提示,输入y,点回车

          rm -f file          -f=--force 表示强制删除不提示

4.目录删除

          rm -r directory     -r表示递归删除,也就是删除目录本身和里面的所有内容

          rm -r -f dir           删除目录不提示

          rm -fr dir    

          rm -rf dir

5.编辑文件

(1)gedit

       gedit filename,然后直接输入,但此时terminal不能用,被gedit占用了。用这个的前提是必须要有图形界面,而且gedit如果当你的电脑意外短路将不会保存里面的内容。这一点可是非常致命的啊!!!

(2)vim

       vim file ---- 按i进入insert模式 ---- 书写内容 ---- 按esc退出插入模式 ---- :wq保存退出

      vim的文件,就算突然退出或者异常,不会删除原来已有的内容。删除.swp文件后,再次打开,vim恢复正常。(目前还没有进行过这样的操作

6.文件复制

              cp    源文件                         目的地文件

              cp -r  源目录                        目的地目录

              cp    源文件1  源文件2         目的地文件

7.文件移动

              mv    源文件                          目的地文件   (相当于给文件重命名)

              mv    源目录/源文件              目的地目录

8.文件内容查看

               cat   filename                         查看文件的全部内容

                 cat -b filename                          显示行号

                 less   filename                        分页浏览

less filename分页浏览的用法如下:

上/下键                               逐行上下移动

/keyword                            高亮显示关键字,n向下匹配,N向上匹配

q                                        退出

          head file                   查看文件前10行

          head -n 5 fie            查看文件前5行

          tail    file                     查看文件后10行

          tail -n 5 file                 查看文件后5行

          tail  -f  file                监控文件内容变化

9.文件大小统计                        

           wc   -l   filename                   行数

           wc   -w  filename                  单词数

           wc   -c   filename                  字节数

 

五.关于路径的命令

1.显示当前路径/工作地址(就是我在哪儿这个问题)

    pwd

2.文件的寻址

我们将所谓的文件路径(path)分为绝对路径和相对路径。

绝对路径:由根目录(/)开始写起的文件名或目录名称。是文件在系统的真实位置,此路径在寻找时不会考虑现在所在的位置信息。

相对路径:相对于目前路径的文件名写法。(反正开头不是/就是相对路径的写法)

3.切换路径

          cd       目录名称       进入到指定目录

          cd -                          当前目录和当前目录之前所在的目录之间进行切换

          cd ~                         进入当前用户家目录

          cd ..                         进入当前目录的上层目录

4.查看文件目录属性

          ls                       

          ls  -l    file                 文件属性

          ls       dir                  目录中所包含的内容

          ls  -d   dir                 显示目录本身

          ls  -a   dir                 显示所有文件(包含隐藏文件)

          ls  -s   dir                 查看并且按照大小排序

 

六.系统中历史的调用

           history                     查看历史

           history  -c                  清空当前环境中的历史

           !数字                                调用此行历史

           !test                                 调用以test关键字开头的最近一条历史

           Ctrl + r + 关键字              调用历史中最近一条含有此关键字的历史

 

七.在系统中获得帮助

1.查看命令用途          

           whatis

2.查看命令用法

          命令 --help                   查看命令的基本用法,适用于多数命令

显示内容中:

                    []             表示选项可以加也可以不加

                    ...            表示选项加入的个数任意

                    <>           表示选项是必须加入的

                    Usage     标出命令用法

                    Options   对参数作用作说明

3.man查看命令或配置文件的说明手册

man       命令

man 5    配置文件(查看配置文件的用途)

4.man的用法:同less的用法

 

八.系统的通用配置符号

*                           匹配0到任意字符

?                          匹配单个字符

[[:alpha:]]             单个字母

[[:lower:]]             单个小写字母

[[:upper:]]             单个大写字母

[[:digit:]]               单个数字

[[:punct:]]             单个符号

[[:alnum:]]            单个字母或数字

[1-9]                     1位,是1-9的任意数字

[!3-5]或者[^3-5]    1位,不是3-5的数字

{1..3}                     3个,1 2 3

{1,3,5}                   3个,1,3,5这三个数

 

九.系统中的输入输出管理(重定向)

注意:此节试验在普通用户下操作:通过su - student转成普通用户。

1.理解系统的输入输出

  I/O是输入输出的缩写。这个功能可以把命令行的输入重定向为从文件中获取内容,也可以把命令行的输出结果重定向到文件中。如果我们将多个命令行关联起来,将形成非常强大的命令——管道。

2.管理输入输出的符号

输出重定向符号:>

>         重定向正确输出

2>       重定向错误输出

&>       重定向所有输出

注意:重定向时,如果指向同一文件内,将会覆盖原文件内容。

find /etc/ -name passwd  此句可以理解为:根据name(名字)去寻找/etc里的passwd的文件。

find /etc/ -name passwd > file        重定向将正确内容输出到file(正确内容为可以查看的)

find /etc/ -name passwd 2> file.err     重定向将错误内容输出到file.err(错误内容为不可以查看的)

find /etc/ -name passwd &> file.all      重定向将所有内容输出到file.all

3.输出追加(与重定向不同,此命令默认追加到原文件的最后)

find /etc/ -name passwd >> file             追加正确内容输出到file

find /etc/ -name passwd 2>> file.err         追加错误内容输出到file.err

find /etc/ -name passwd &>> file.all         追加所有内容输出到file.all

4.管道

(1)管道的作用

       “|”管道的作用是把前一条命令的输出变成后一条命令的输入

注意:管道只允许正确输出通过

      通过管道的输出将会变成输入

      如果需要保存输出内容,那么需要复制一份输出,命令是”tee”

(2)实验过程

find /etc/ -name passwd | wc - l           看到结果为2,因为错误输出不能通过管道

find /etc/ -name passwd 2>&1 | wc - l                 看到结果为19,因为错误输出被转换为正确输出

find /etc/ -name passwd 2>&1 | tee file | wc - l    保存一份输出到file

5.输出重定向

cat > file << EOF

Hello

World

EOF

 

SECTION TWO

一.详细学习vim

1.vim的三种模式

普通模式:浏览文件

插入模式:对文件内容进行编辑

命令模式:临时更改vim的工作方式,对字符进行批量处理,永久更改vim工作方式需要编辑配置文件:/etc/vimrc

2.调整vim的工作方式

set nu              显示行号

set nonu          不显示行号

set mouse=a   鼠标有用

注意:这些设置都是一次性的 再次进入就没了

3.字符搜索

/keyword 关键字高亮

4.字符管理

  y

  yl     复制一个字母  

  y3l   复制三个字母

  yw   复制一个单词

  y3w 复制三个单词

  yy    复制一行

  y3y  复制三行

  d  

  dl     删除一个字母

  d3l   删除三个字母

  dw   删除一个单词

  d3w 删除三个单词

  dd    删除一行

  c      剪切

  cl     剪切一个字母

  c3l   剪切三个字母

  cw   剪切一个单词

  c3w 剪切三个单词

  cc    剪切一行

注意:剪切之后vim会进入插入模式,要粘贴需要按esc退出插入模式然后按p粘贴

  p         粘贴

  u         撤销

  ctrl + r 回复撤销

5.vim可视化模式

  v          字符可视化

  V          行可视化

  ctrl + v  块可视化

其中批量添加字符,应该ctrl + v选中要加入字符所在的列 ---- 按大写I键,进入插入模式 ---- 加入字符 ---- 按esc退出

6.字符的替换

     :%s/要替换的字符/替换成的字符/g

 如 :%s/westos/redhat/g                     (g代表替换所有位置)

:1,5s/westos/redhat/g               替换1到5行

7.vim的分屏功能

ctrl + w s                          上下分屏

ctrl + w v                          左右分屏

ctrl + w c                               关闭光标所在屏幕

ctrl + w 上下左右                   光标移动到指定屏幕

:sp file2                                 同时编辑当前文件和file2

8.在命令模式下光标的移动

gg                                  光标移动到文件的第一行

G                                   光标移动到文件的最后

:数字                              光标移动到指定行

ZZ                                  保存退出

9.插入模式下光标移动

i                                   光标所在位置插入    

I                                   光标所在行行首插入

o                                  光标所在行下一行插入

O                                 光标所在行上一行插入

a                                  光标所在字符的下一个字符插入

A                                  光标所在行的行尾插入

s                                  光标所在字符删除并插入

S                                  光标所在行删除并插入

10.vim的退出

:q                                  退出,在文件内容没有改变时使用

:wq                               退出保存

:q!                                 强制退出不保存,在改变文件后不想保存时使用

:wq!                              强制退出保存,在对只读文件编写时使用。注意:所编辑的只读文件必须是当前用户的文件

11.vim监控    

     watch -n 1 ‘tail -n 3 /etc/passwd /etc/group;ls -l /home/’   每隔1秒监控一次命令实施情况(类似于电脑后台一直在重复所监控的命令)

注意:watch用于监控的是命令,而tail -f filename监控的是文件。

12.更改配置文件使vim打开就有行标且鼠标可用

vim /etc/vimrc

set mouse=a

set nu(去掉行标为set nonu)

 

二.用户管理

1.用户存在的意义

Linux是一个多用户系统。因此为了保证各文件的安全,需要用用户来设定权限。

2.组存在的意义

设定某个用户所在组的权限。(为了安全)

3.用户的查看

1)查看当前用户   whoami

2)系统中用户的查看

id               查看指定用户id信息

id -u           查看用户的uid

    -g           查看用户的gid

    -G          查看用户所在的所有组id

    -n           显示名字而不是id数字

4.切换用户

   su - 用户名称

其中”-”表示用户身份切换时同时切换当前用户环境。

执行高级用户切换低级用户时不需要密码,低级用户切换高级用户需要密码,平级切换也需要密码。

注意:每次su切换到其他用户操作完成之后退出,在切换到另外用户操作

5.用户在系统中的存储方式

/etc/passwd

  用户信息文件

  用户名称:用户密码:uid:gid:说明文字:家目录:默认shell

/etc/group

  用户组信息文件

  组名:组密码:组id:组成员

/etc/shadow

  认证信息文件

/home/usename

  用户家目录

6.用户管理命令

1)用户删除

userdel

userdel    westos             删除用户但不删除用户的配置文件

userdel -r  westos           删除用户并删除用户的配置文件

2)用户建立

useradd -u  8888               westos   指定用户uid

useradd -g  21                   westos   指定用户初始组id,”21”用户组必须是存在的

useradd -G  21                   westos  指定用户附加组id,”21”用户组必须是存在的

useradd -c  “hello”              westos  指定用户的说明

useradd -d  /home/lee         westos 指定用户的家目录

useradd -s  /sbin/nologin     westos 指定用户默认shell

可以连在一起写:

3)用户组

groupadd                                  建立用户组   

groupadd  -g  8888                   建立用户组并指定用户组id

groupdel                                    删除用户组

4)更改用户信息 usermod

usermod   -l 新名称   westos         更改用户的名称

usermod   -u 8888     redhat          更改用户的uid

usermod   -g 21         redhat          更改用户的初始组

usermod   -G 21        redhat          更改用户的附加组

usermod   -G “”          redhat          删除用户所有附加组

usermod   -c “haha”    redhat         更改用户说明文字

usermod   -md /home/lee   redhat  更改用户家目录

usermod   -s /sbin/nologin  redhat  更改用户的shell

usermod   -L    westos  冻结用户

usermod   -U    westos  解冻用户

5)用户认证信息

/etc/shadow      记录用户认证信息

此文件一共有9列:

用户名称:用户密码:用户密码最后一次被更改时间:用户密码最短有效期:用户密码最长有效期:密码警告期限:用户非活跃天数:用户到期日:用户自定义列

6)用户密码

passwd        redhat    更改redhat密码

passwd -l     redhat    对密码加锁

passwd -u     redhat     对密码解锁

passwd -d      redhat    清空redhat密码

注意:

普通用户改密码时:

(1)必须知道当前永久原始密码(2)密码不能和账号名称相似(3)密码不能是纯数字或字母(4)密码不能是有序的字母和数字的组合

7)用户密码最后一次被更改的时间

passwd -e    redhat      改变用户最后一次更改密码的时间为0,用户在登录时会被强制

8)修改密码

(1)用户密码最短有效期

passwd -n 1 redhat         redhat用户在1天之内不能修改密码

(2)用户到期日

chage -E 2018-09-23 redhat   redhat用户在2018-09-25到期

 

三.文件权限

1.文件权限的查看

ls -l file

ls -ld dir

ll  file

ll -d dir

2.文件权限的读取

例如:

- | rw- | rw- | r-- | 1 | kiosk | kiosk | 0 | Sep 23 14:52 | file

[1]        [2]          [3]   [4]        [5]    [6]      [7]                [8]

[1]文件类型

- 空文件,或者文本

d 目录

l 软链接

s socket套接字

b block块设备

c字符设备

[2]权限

 rw- | rw- | r--

 a       b      c

a.[u]文件所有者对文件能做什么操作

b.[g]文件所有组能对文件做什么操作

c.[o]其他人能对文件做什么操作

[3]对文件:文件硬链接个数(文件内容被记录的次数)

    对目录:目录中子目录的个数(不是文件)

[4]文件所有人

[5]文件所有组

[6]对文件:文件大小

    对目录:目录中子文件元数据大小

[7]文件内容被修改的时间

[8]文件名称

3.如何修改文件的所有人和所有组

chown / chgrp

chown       username    file/dir

chown       user.group    file/dir

chown    -R   user.group    dir     (同时更改了所有人和所有组)

chgrp     group        file/dir

chgrp     -R   group    dir               (只更改了所有组)

不加R只改变文件夹的所有人或所有组

加R改变文件夹里所有文件的所有人或所有组(递归)

4.如何修改文件的权限

1)对权限的理解

r 对文件:是否可以查看文件中的内容   ----> cat file

  对目录:是否可以查看目录中有什么子文件或子目录   ----> ls dir

w对文件:是否可以改变文件里面记录的字符

  对目录:是否可以对目录中子目录或子文件元数据进行更改

x对文件:是否可以通过文件名称调用文件内记录的程序

  对目录: 是否可以进入目录

2)更改方式

第一种方式:

chmod <u|g|o><+|-|=><r|w|x>   file|dir

chmod u+x   /mnt/file1

chmod g-r    /mnt/fil2

chmod ug+r   /mnt/file3

chmod u+r,g+x  /mnt/file4

chmod +x   /mnt/file5

chmod o=r-x   /mnt/file6

第二种方式:

rwx(顺序不能改变)

分别记为:210

我们令r=4,w=2,x=1

可得r-x|r--|--x

        5   4   1

从而得到:

7=rwx

6=rw-

5=r-x

4=r--

3=-wx

2=-w-

1=--x

0=---

 

四.其他

1.自动补齐

       我们为了避免命令输入错误或者只记得命令的前半部分而遗忘后部分时,可以用tab补齐目录、路径或命令。

但有的时候一次tab并不能补齐,则代表以此关键字开头的内容不唯一。

      此时tab两次,列出所有以此关键字开头的内容

2.加入中文输入法  

     左上角Application ---- System Tools ---- Settings ---- Rejion&language ---- Input source ---- add ----Chinese ---- Intelligent Pinyin

3.截屏方法

     方法一:左上角点击utility,然后screen shot

     方法二:用命令gnome-screenshot-a截取任意区域

 

例题

1.新建用户组,shengchan,caiwu,jishu

2.新建用户要求如下:

tom是shengchan组的附加用户

harry是caiwu组的附加用户

leo是jishu组的附加用户

新建admin用户,此用户不属于以上提到的三个部门

3.新建目录要求如下:

/pub目录为公共存储目录,对所有用户可以读、写、执行

/sc目录为生产部存储目录,只能对生产部人员可以写入

/cw目录为财务部存储目录,只能对财务人员可以写入

 

题1答案

题2答案

题3答案

 

仍然存在的一些问题:

1.本机再尝试whatis命令时,试图通过该命令得到关于某些命令的用法,然而所得为<Nothing is appropriate>。具体原因目前还不清楚。

在查询之后,发现应该是电脑少一个数据库mandb,输入mandb后数据库更新然后就ok啦。。。

2.本机在用方法一截图时,总是出现截图失败的提示,具体原因不明。(所以才在网上找了命令自己敲)

应该是因为用户缓存的问题。

3.对于已整理的部分,有一些地方不太清楚具体原因以及意义。比如系统的输入输出管理(重定向),EOF,man 5 文件在本机只有部分文件可以显示(以解决),用户和用户组的意义。

本文参考书目为:《Linux命令行大全》 William E.Shotts,Jr.

 

猜你喜欢

转载自blog.csdn.net/dodobibibi/article/details/82870423