Linux 知识整理03

Author Avatar
cuteximi 11月 01, 2017
  • 在其它设备中阅读本文章

linux 学习记录02

要注意的地方

时刻提醒自己!

  • 保持记笔记的习惯,按照统一(md)的格式可以每节课结束记一次,中午吃完饭总结上午学的东西,记录一次。下午学完总结下午所学的知识。晚上总结全天的学习记录。
  • 周总结可以使用md、思维导图
  • 不要让自己懒,想办法让自己保持专注,借助外力或者内在的暗示。
  • 要有提前意识,预习,准备简历,准备笔试面试。
  • 多与老师交流,先思考,再去问问题、
  • 学习资料在网上找,或者找前辈要
  • 白天听老师将一遍,晚上可以看别的机构的老师讲的内容,作为补充,此时视频可以为多倍速播放
  • 回顾java的基础部分和Java web开发的知识点
  • 多练习,多总结,要扎实基础。
  • 记住节奏很快的,不要装懂。

今日学习目标

  • 磁盘管理
  • 网络管理
  • 系统管理
  • 重定向和信息黑洞

日间阶段总结

MORNING

6:00 - 8:00

希望之后可以利用起来这两个小时!!!

8:00 - 10:00

磁盘指令
1.df 查看磁盘信息。默认以 kb 显示。加上参数 -m(以M单位显示) -h(更加友好的显示方式)

image.png | left | 747x258

2.du 加上参数 –max-depth=数字 可以查看目录深度

网络指令
1.网络部分:
查看网络网卡信息:ifconfig
测试连通性:ping
查看网络信息:netstat -anp(显示程序名) -t(TCP) -u(UDP) -l (监听)
在后面加上管道符 | 过滤 grep 端口号 可以查看某个端口是否被占用
使用 lsof 命令也可以查看端口是否被占用:
lsof -i:port 没有这个命令的话,可以使用 yum install lsof 安装

image.png | left | 747x89

curl -x 网址 可以模拟 HTTP 请求

NOON

10:00 - 12:00

用户管理

  • useradd username 创建用户
  • passwd username 修改密码
  • userdel username 删除用户
  • usermod -l newname oldname 修改用户名字
  • usermod -L username 锁定用户(注意不要 root 锁 root
  • usermod -U username 解锁用户

可以查看 usermod -h 来查看具体的使用方式。

用户组管理

也是增删改查。

  • groupadd name
  • groupmod -n newname oldname
  • 查看用户组 groups

权限管理

使用 ll 可以查看文件以及目录的权限。
三种权限,读r, 写w, 执行x

UGO模型

12:00 - 14:00:小结

记录上午学的内容。

重点是系统管理,涉及到用户,用户组以及他们对应的权限,文件的权限。权限由人去分配,和在哪个组无关。
1.普通用户使用 __who am i__ 查看自己是谁,也可以使用 id 命令查看自己是详细信息,也可以查看 /etc/passwd ,但是只有管理员才能查看 /etc/shadow

2.用户组的概念,用户的集合差不多,使用 groups 查看当前用户的用户组。 可以使用 usermod -g组名 用户名 来修改用户组的主组。usermod -G 组名 用户名 修改用户的附属组。
3.使用 chown username:group 文件 可以修改文件的所属者和所属组。 使用 chown username:group 目录 修改目录的所属者和所属组、加上参数 -R 可以递归的把文件目录以及里面的内容都做修改。
4.权限采用的是UGO模型,也即是用户、用户组和其他组。修改权限可以使用 chmod ugo+rwx 文件 ,也可以使用 chmod 777 文件 ,也可以使用 单个或多个数字灵活使用。

网络管理方面注意会使用查看对应端口号的网络信息,以判断是否被占用等。可以使用命令 lsof -i:port

也可以使用 netstat -anp | grep port 查看端口号

AFTERNOON

14:00 - 16:00

NAT模式和桥接模式:
NAT是物理主机模拟一个子网出来以供虚拟机里面的服务器使用。
桥接是物理主机和虚拟机服务器公用同一个子网。缺点是浪费IP

由此可见,NAT模式下可以访问外部网络,但是外部网路不能访问我的虚拟机。
桥接模式下虚拟机可以访问外部网络,同时外部网络也可以访问虚拟机。

综上,NAT 节省IP且安全。桥接模式浪费IP

16:00 - 18:00

系统配置:

修改初始化配置文件 vim /etc/inittab

image.png | left | 747x364

如图所示,init 后面有7种数字,常用的有 0,3 ,5,6

  • init 0 :pout: 慎用关机
  • init 3 默认多用户模式
  • init 5 图形化界面
  • init 6 重启服务器

因为除了 root 管理员之外,其他的都是普通用户。但是也不能直接给普通用户全部的 root 权限,
可以使用 sudo 来解决这个问题。让普通用户也能使用一些 root 权限的命令。
编辑文件 /etc/sudoers

vim /etc/sudoers , 可以添加格式: 授权用户 主机=(ALL或者指定用户) 特定某些命令或者ALL , 多个命令之间使用逗号隔开。

image.png | left | 747x234

比如上面新增的: xixi ALL=(root) /sbin/service 就是给xixi 用户添加sudo权限可以执行 service 命令

如果不想每次使用sudo的时候输入密码,可以加入 NOPASSWD: 来配置不需要密码!!

image.png | left | 747x217

sudo -l 可以列出该用户所有的sudo权限。

如果,向给一个组添加sudo权限的话,必须得在组名前面加一个 % 号,如下图所示:

image.png | left | 747x181

18:00 - 20:00

EVENING

20:00 - 22:00

总结

22:00 - 24:00

练习命令,看学习视频。

学习进度

Linux(11/20)

一天总结

磁盘指令

1.查看硬盘信息
df 命令可以输出一下信息:默认是以 KB为单位显示,-h 可以以友好的方式展示。(人类更易于阅读)
磁盘信息,使用率以及挂载的位置。

image.png | left | 698x178

2.查看文件或者目录的大小

du 命令 + 文件或者目录,默认单位为 kb ,同上 加上 -h 也会以更易阅读的方式展示。du 命令查看的大小,不足1M的按照1M显示。

还有一个参数 –max-depth=n, 其中 n 代表一个数字, 用来查看目录的层级。

网络命令

查看网络网卡信息:ifconfig
测试连通性:ping

查看网络信息:netstat -anp(显示程序名) -t(TCP) -u(UDP) -l (监听)
在后面加上管道符 | 过滤 grep 端口号 可以查看某个端口是否被占用

使用 lsof 命令也可以查看端口是否被占用:
lsof -i:port 没有这个命令的话,可以使用 yum install lsof 安装

image.png | left | 747x89

curl -x 网址 可以模拟 HTTP 请求,可以使用 -X 或者 –request 执行特性的 HTTP METHOD
可以试一下 curl www.baidu.com

系统管理

1.用户操作

在 root 下面新建用户。

useradd 名字,就会新增一个用户
passwd 名字,修改该用户的密码
userdel -r 名字 ,删除该用户(以及目录),注意如果想要删除该用户的home目录。必须要加上参数 r

usermod -l newname oldname 修改名字
usermod -L 用户 锁定用户
usermod -U 用户 解锁用户
注意:这里的虽然锁定用户了,但是还是可以从 root 用户su到被锁的普通用户。
更多与锁定有关的资料可以参考:几种锁定用户的方式

查看当前用户是谁:whoami 输出 用户名
查看当前登录的是谁以及使用的终端号:who am i 有空格的、会输出

image.png | left | 747x67

2.用户组操作
查看用户所在的组:groups 用户名 ,下面可以看到 xixi 用户属于 root 用户组。

image.png | left | 482x68

也可以使用 id 命令来查看用户的更多信息:

image.png | left | 747x72

3.权限操作

查看:使用 ll 命令可以查看目录或者文件的权限,红色圈出来的区域

image.png | left | 747x229

权限类别:有三种,分别是读r,写w,执行x。对应的数字是 4 2 1

UGO模型。user group other 分别是三个不同的权限组、

上面说了这么多权限的概念,下面开始修改权限:(注意是 root 下面执行)
(1)修改所属者与所属组
格式:chown 用户:用户组 文件或目录
如果单独修改一个的话,另一个缺省就可以。(这句话不全对)

比如:
chown xix:root 123.txt
chown xixi: 123.txt(错),这种都会改。所属者和所属组都会变成 xixi
chown :root 123.txt(可以的)

加上 -R 就是递归的修改!!!

(2)修改文件或目录权限

使用 chmod 命令,后面可以使用 ugo+rwx 或者 ugo-rwx 或者 755 这样的。

上面 + 号代表授权,- 号代表取消授权

系统配置

1.用户组信息配置 /etc/group
2.用户信息配置
一个是 只有root可以看到的 /etc/shadow ,普通用户是没有权限查看这个文件的。

image.png | left | 520x94

另一个是 普通用户可以看的的 /etc/passwd

3.系统服务初始化配置
查看 /etc/inittab 文件。

image.png | left | 747x364

Linux 默认的级别是 3,不能把 initdefault 设置为0 或者 6 。

如图所示,init 后面有7种数字,常用的有 0,3 ,5,6

  • init 0 :pout: 慎用关机!!!!
  • init 3 默认多用户模式
  • init 5 图形化界面
  • init 6 重启服务器

4.主机名配置

在 /etc/sysconfig/network 下面配置hostname = xxx。

image.png | left | 308x230

5.配置 DNS

在 /etc/hosts里面做映射

或者在 /etc/resolv.conf 设置nameserver

image.png | left | 692x602

6.SUDO权限配置

除了 root 管理员之外,其他的都是普通用户。不推荐直接给普通用户全部的 root 权限,
可以使用 sudo 来解决这个问题。让普通用户也能使用一些 root 权限的命令。
编辑文件 /etc/sudoers

vim /etc/sudoers , 可以添加格式: 授权用户 主机=(ALL或者指定用户) 特定某些命令或者ALL , 多个命令之间使用逗号隔开。

image.png | left | 747x234

比如上面新增的: xixi ALL=(root) /sbin/service 就是给xixi 用户添加sudo权限可以执行 service 命令

如果不想每次使用sudo的时候输入密码,可以加入 NOPASSWD: 来配置不需要密码!!

image.png | left | 747x217

使用 sudo -l 可以查看该用户所有的 sudo 权限。

系统时间,日期

date
cal
cal 2018
cal 10 2018

更新系统时间

使用服务 ntp 来同步时间。

yum install -y ntp 来安装。

nptdate cn.ntp.org.cn 来更新同步时间。

如果网络有问题或者太慢的,可以来这个网站找到Ip池里面提供的ip. ntp.org.cn :heart:

image.png | left | 747x455

环境变量

全局环境变量在 /etc/profile 里面配置,慎用。
局部变量在 ~/.bash_profile 里面配置。主要是设置一些命令路径等

image.png | left | 747x462

重定向与管道

1.输出重定向:
> 覆盖
>> 追加
2.输入重定向
< 重定向到一个程序:cat < 1.txt

3.
标准输出重定向:1> 等价于 > ,只会输出正确的信息。
错误输出重定向:2>,只会输出错误的信息。

image.png | left | 618x158

如上,cat 一个不存在的文件,则会报错,如果使用 1> 则不会把错误信息重定向到 123 文件中。
使用 2> 则会把错误信息重定向到 123 文件中。

4.结合使用 2>&1 专业说法:将标准错误输出重定向到标准输出。这种比较常用,因为我们在开发的过程中肯定需要完善的日志信息,错误的、正确的信息都将会保存下来。

5.管道 | 一般结合 grep 使用。

命令执行控制

1.&& 只有前面的命令执行正确,才会执行下一个命令。
2.|| 只有前面的命令执行错误,才会执行下一条命令

信息黑洞

/dev/null

使用 ll /dev/null 可以看出 null 是一个设备块文件。

image.png | left | 747x69

使用 du /dev/null 可以看到 null 的大小为 0

使用 echo "some thind" >> /dev/null 之后,再次查看 null 文件的大小,依然为 0

image.png | left | 370x68

遇到的问题以及解决方案

问题1 NAT和桥接不清楚

【问题描述】

对于NAT和桥接模式不是很清楚,懵懵懂懂的那种

【问题思路】
查资料,老师讲解。以教室的网络为例。

【解决方案】
NAT是物理主机模拟一个子网出来以供虚拟机里面的服务器使用,使用vmnet8网卡。

桥接是物理主机和虚拟机服务器公用同一个子网,使用vmnet0网卡。

NAT模式下可以访问外部网络,但是外部网路不能访问我的虚拟机。
桥接模式下虚拟机可以访问外部网络,同时外部网络也可以访问虚拟机。

综上,NAT 节省IP且安全。桥接模式浪费IP

问题2 Mac下使用rz报错

问题描述】

使用expect脚本自动登录的ssh远程的服务器,再次使用rz的时候iterm2卡死。

【问题思路】
进程交互的问题

【解决方案】

expect和rz只能同时选择一个,还是使用 scp或者rsync吧。
参考:https://blog.csdn.net/pkueecser/article/details/46491133

This blog is under a CC BY-NC-SA 3.0 Unported License
本文链接:http://blog.cuteximi.com/linux03/