今日学习目标
- 磁盘管理
- 网络管理
- 系统管理
- 重定向和信息黑洞
学习进度
Linux(11/20)
一天总结
磁盘指令
1.查看硬盘信息
df 命令可以输出一下信息:默认是以 KB为单位显示,-h 可以以友好的方式展示。(人类更易于阅读)
磁盘信息,使用率以及挂载的位置。
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 安装
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 有空格的、会输出
2.用户组操作
查看用户所在的组:groups 用户名 ,下面可以看到 xixi 用户属于 root 用户组。
也可以使用 id 命令来查看用户的更多信息:
3.权限操作
查看:使用 ll
命令可以查看目录或者文件的权限,红色圈出来的区域
权限类别:有三种,分别是读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 ,普通用户是没有权限查看这个文件的。
另一个是 普通用户可以看的的 /etc/passwd
3.系统服务初始化配置
查看 /etc/inittab 文件。
Linux 默认的级别是 3,不能把 initdefault 设置为0 或者 6 。
如图所示,init 后面有7种数字,常用的有 0,3 ,5,6
- init 0 慎用关机!!!!
- init 3 默认多用户模式
- init 5 图形化界面
- init 6 重启服务器
4.主机名配置
在 /etc/sysconfig/network 下面配置hostname = xxx。
5.配置 DNS
在 /etc/hosts里面做映射
或者在 /etc/resolv.conf 设置nameserver
6.SUDO权限配置
除了 root 管理员之外,其他的都是普通用户。不推荐直接给普通用户全部的 root 权限,
可以使用 sudo 来解决这个问题。让普通用户也能使用一些 root 权限的命令。
编辑文件 /etc/sudoers
vim /etc/sudoers , 可以添加格式: 授权用户 主机=(ALL或者指定用户) 特定某些命令或者ALL , 多个命令之间使用逗号隔开。
比如上面新增的: xixi ALL=(root) /sbin/service 就是给xixi 用户添加sudo权限可以执行 service 命令
如果不想每次使用sudo的时候输入密码,可以加入 NOPASSWD: 来配置不需要密码!!
使用 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
环境变量
全局环境变量在 /etc/profile 里面配置,慎用。
局部变量在 ~/.bash_profile 里面配置。主要是设置一些命令路径等
重定向与管道
1.输出重定向:
>
覆盖
>>
追加
2.输入重定向
<
重定向到一个程序:cat < 1.txt
标准输出重定向:1> 等价于 > ,只会输出正确的信息。
错误输出重定向:2>,只会输出错误的信息。
如上,cat 一个不存在的文件,则会报错,如果使用 1> 则不会把错误信息重定向到 123 文件中。
使用 2> 则会把错误信息重定向到 123 文件中。
4.结合使用 2>&1 专业说法:将标准错误输出重定向到标准输出。这种比较常用,因为我们在开发的过程中肯定需要完善的日志信息,错误的、正确的信息都将会保存下来。
5.管道 | 一般结合 grep 使用。
命令执行控制
1.&& 只有前面的命令执行正确,才会执行下一个命令。
2.|| 只有前面的命令执行错误,才会执行下一条命令
信息黑洞
/dev/null
使用 ll /dev/null 可以看出 null 是一个设备块文件。
使用 du /dev/null
可以看到 null 的大小为 0
使用 echo “some thind” >> /dev/null 之后,再次查看 null 文件的大小,依然为 0
遇到的问题以及解决方案
问题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