所有的IT知识都时候依托以OSI七层模型(TCP/IP四层);
协议:(规定)
应用层协议:http https(B/S) ssh telnet smtp pop3 imap ftp tftp dns dhcp
传输层:tcp udp -- 端口
网络层:路由协议 被路由协议(IPv4 IPv6) x.x.x.x
数据链路层:以太网协议 MAC ff:ff:ff:ff:ff:ff:ff 全球唯一
物理层:01的电信号
Linux的目录结构
Linux的磁盘管理 fdisk -- 分区(逻辑边界)写入文件系统;
-l 磁盘的命名 mkfs -t //指定文件系统格式;
mount 要挂载的设备 挂载点 【存储设备在Linux系统上必须挂载】
umount 要挂在的设备/挂载点
df -h /etc/fstab 实现开机自动挂载
/ /bin /sbin /etc /usr /usr/local/ /var /opt /sys /proc /tmp /lib /lib64 /home /root /cdrom /media /mnt
常见的关于目录文件操作的命令:
ls 文件通配符globbing * ? [ ] ^ $ cd . .. ~ - 绝对路径与相对路径
grep 正则表达式
1、字符串匹配 . [] [^] [:digit:] [:alpha:] ...
2、次数匹配 * ? \{m\} \{m,n\} \{0,n\} \{m,\}
3、位置锚定 ^ $ \b <\ \b />
4、分组 \(ab\)* abababab ab* abbbbb .* -v -i ^$ -- 空白行 mkdir -pv 同时创建多级子目录 rm -r rmdir 删空目录 tree -L -d
文件相关的命令
1、创建和删除操作
Touch 摸 修改时间戳 stat (atime mtime ctime),如果没有该文件就创建该文件 -C MMDDhhmm[CC]YY.ss top
--> 查看进程【CPU:sy ur】 -a Rm *find* 【范围】 -file d -name a* [文件属性] -exec 命令 {}\; -ok 命令 {}\; | xargs 命令 ;
Mkdir -pv
2、拷贝和移动文件
Cp -a //携带所有文件属性一块复制 Mv move 1、移动文件 2、修改文件名称 mv a b mv /tmp/a /root/ 文件名扩展 {} 创建目录 姓名_学号 赵云_00001 mkdir {赵云,石磊}_{00001,00002} 赵云_00001 赵云_00002 石磊_00001 石磊_00002
3、查看文件内容
Cat 一次性查看文件中所有内容 cat /etc/init.d/ More //man命令 / ? q Less 在更多的清下,查看大文件,我们使用less Tail 默认查看倒数10行 -n // tail -n 20 文件名 简化:-20 *-f* 不退出文件,实时查看文件内容 Head 查看行首 -n // head -n 20 文件名 简化:-20
4、其他
Echo
-e -n echo $PATH
-n // print("Hello World",end='\t') print("Hello World")
print("Hello World")
-e 识别 \t \n \r echo -n -e "Hello World \t" 重定向 > 和 >> fd 文件标识符 0 -- 标准输入 1 -- 标准输出 2 -- 错误输出
程序 = 指令 + 数据 代码 变量
变量里面的数据从何而来?通过代码执行的数据又输出到哪里?
规定:默认标准输入为--键盘 标准输出为--显示器 而重定向就是用来改变输入和输出的;
输出重定向 > 覆盖重定向 默认工作中不能使用 set -C 去掉这个功能,同时 >| 可以进行强制重定向(set +C开启覆盖重定向功能)
>> 追加重定向 在原有的文件上,在添加追加的数据即可;
扩展: 在Linux中,命令输出除了默认输出结果以外,还返回一个命令执行状态的结果;
返回0代表命令执行成功,而返回非0则是失败;$? 存储上一条命名的执行状态结果;
在工作中,我们往往不需要命令输出的结果,而只需要命令执行的状态,我们就会使用 重定向 将输出结果重定向至 空文件
(/dev/null) cat a.txt > /dev/null
输入重定向
< 把后面的文件,交给前面的命令来执行;
tr 命令,将前面的内容替换为后面的内容
tr abc ABC < a.txt << 将多行内容同时输入,用在 cat 命令中 cat >>文件<<EOF >a >EOF
错误输出重定向
2> 需要带上 fd(文件标识符)
2>> 追加的错误重定向输出 扩展优化: cat a.txt > /dev/null cat a.txt 2> /dev/null &> /dev/null 无论命令执行正确与否,都将输出内容指定到/dev/null &>> [普通文件] 管道 command 1 | comand 2 | command 3 | command 4 | ......... 将前面的命令的执行结果,输出给后面一条命名执行;
【Linux思想:结合小功能,完成复杂功能】 tail -7 /etc/fstab | cut -d' ' -f1 cut 切 -d 指定分隔符‘ ’ -f 取的列 1-3 1,3 1
Linux远程
1、查看或配置网卡信息
网卡和IP地址
ifconfig 没有该命令,我们需要安装网络包工具(net-tools) apt install net-tools
如果,网卡没有起来,我们需要修改默认的网卡配置文件; /etc/network/interfaces vim /etc/network/interfaces
1、动态 - dhcp auto eth0 iface eth0 inet dhcp 【修改配置文件,就需要重启服务】 /etc/init.d/networking restart
2、静态 - 手动去配置 address 192.168.94.10 netmask 255.255.255.0 gateway 192.168.94.1
2、远程管理机制 Ssh 开启Ubuntu的ssh端口的监听功能;
tcp-22 netstat -tnl // t -- tcp协议 n -- 不做解析
如果没有:apt install openssh-server -y /etc/init.d/ssh start 【Ubuntu默认只能使用普通用户进行远程连接】
ssh teacher@192.168.94.10 centos下,直接使用root用户远程登录即可; ssh root@192.168.94.10