​linux入门学习笔记#01​

​linux入门学习笔记#02​

​linux入门学习笔记#03​

本章主要讲 Linux 中的网络(和传输)以及进程控制

目录

​检查文件处传输的正确性、完整性​

​防火墙​

​使用wget下载文件​

​在后台运行程序/脚本​

​定时运行程序crontab​

​tar 和 zip​


常用的传输方式

  • ping

查看机器是否通网

ping 192.111.111.111 这个 ip 十次

ping -c 10 192.111.111.111
  • telnet

是一个服务,需要手动开启,默认不开启是因为 telnet 的传输是不加密的,容易被窃取

  • SSH

使用 last 查看之前 ssh 登陆的人

  • ftp

也是一种服务,可以完全被 SSH 替代,可以不用开用 scp 替代,因为开的服务越多机器就越不安全

scp 是 ssh 的 copy,比 ftp 安全些,是目前传输的主流方式

linux 上 scp 就是一个命令,windows 上是一个软件叫做 winscp

建议不在 linux 和 windows 之间传文件,好好学 vi,通常传到 windows 上是为了做备份

ftp 中 ascii 上传下载的结果是不一样的(末尾的几个字符)

但是 binary 的上传下载结果是一样的

要传就用 binary

而且 ftp 不能直接传文件夹,要传文件夹只能 tar 成一个文件之后再传

  • scp

本机之间的文件传递用 cp,两个机器之间的文件处传递用 scp

上传:

scp 源文件 用户名@主机:目的文件名

scp -r 原文件夹 用户名@主机:目的文件夹

下载:

scp 用户名@主机:/path/文件名 /path/文件名

  • /etc/hosts 文件, 用来解释局网中的主机名和 ip 地址直接的关系

 

检查文件处传输的正确性、完整性

linux 中有 md5sum 命令生成文件 MD5 码

检查 md5 是否一样,可以用 diff 检查

md5sum * > MD5SUM

假设1.txt是原文件,或正确传输了原文件的md5为1.txt.md5

$ md5sum 1.txt > 1.txt.md5

$ md5sum 2.txt > 2.txt.md5

$ diff 1.txt.md5 2.txt.md5 # 有输出则是没有正确传输

# 直接比较文件diff 1.txt 2.txt 也可以,可以用-r比较文件夹,但对大文件比较慢

 

防火墙

防火墙开了很多服务就用不了了,建议对外网的(公网、固定 ip 地址的)打开防火墙,对内网不用开

CetOS上

检查防火墙状态

$ systemctl status iptables.service

打开防火墙

$ systemctl start iptables.service

把上一条命令的 start 换成 stop 和 restart 即可停用/重启

 

Ubuntu上一般是

ufw: sudo ufw enable  # 启用
sudo ufw default deny # 防外对内访问
sudo ufw disable # 关闭
sudo ufw status # 查看状态
sudo ufw allow/deny [service] # 开启相应服务

ufw配置文件位于:/etc/ufw/ufw.conf
也可以直接在该配置文件中修改(修改之后要重启才能生效)

 

使用wget下载文件

下载​​http://www.linuxde.net/testfile.zip​​这个文件并打开断点续传开关 -c

wget -c  http://www.linuxde.net/testfile.zip

 

在后台运行程序/脚本

在前台运行就是直接在命令行里输入命令回车,需要在命令行界面等待程序运行完毕,要结束运行使用 Ctrl+C

长时间运行的程序一般放在后台,回车之后无需等待提示符出现

要结束运行用 ps -ef|程序名 然后 kill PID

 

两种后台运行程序的方式

1、在命令后面加上 &

关闭 shell 后即结束这个后台进程(父进程 shell 结束了,这个用&的在后台运行的子进程也结束)

语法如下

$ command [arguments] &

$ command [arguments ] > cmd.out &

2、 nohup

较常用,此时在后台运行的进程不再是输入命令行的 shell,而是 root

也就是说将在后台运行的事情交给了 root,只要 root 还在,这个后台进程就不会结束

但是程序运行的权限还是用户的,不是 root 的权限

$ nohup ls –R / > ls.list &

 

定时运行程序crontab

经常拿来做定时备份

语法: crontab [-e [UserName]|-l [UserName]|-r [UserName]|-v [UserName]|File ]

说明:

-u user 是指设定指定 user 的时程表,这个前提是你必须要有其权限(比如说是 root)才能够指 定他人的时程表

              如果不使用 -u user 的话,就是表示设定自己的时程表。

参数: -e [UserName]: 执行文字编辑器来设定时程表,内定的文字编辑器是 VI. -l [UserName]: 列出目前的时程表

时程表的格式 : f1 f2 f3 f4 f5 program

 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第 几天。program 表示要执行的程式。
当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程式,其余类推
当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执 行,其余类推

当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其余类 推
当 f1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,f2 为 a, b, c,... 时表示第 a, b, c...个小时要执行,其余类推

使用者也可以将所有的设定先存放在档案 file 中,用 crontab file 的方式来设定时程表。 由于 unix 版 本不一样,所以部分语法有差别,例如在 hp unix aix 中设定间隔执行如果采用*/n 方式将出现语法错 误,在这类 unix 中 ,间隔执行只能以列举方式,详请见例子。
使用方法:

用 VI 编辑一个文件 cronfile,然后在这个文件中输入格式良好的时程表。编辑完成后,保存并退 出。

 

tar 和 zip

tar 用二进制形式对一堆文件进行打包(如果单单用 ftp 直接传,会非常慢)

因为 ftp 直传会非常慢,而且传过来格式也不一样,所以一般用 tar 打包

注意 tar 只管打包不压缩,所以 tar 后的结果和原来的文件一样大要压缩用 zip

 

如果是源文件是纯文本,压缩率非常高,用zip压缩之后会更小

如果源文件是音视频文件,因为mp4等式基于目标的压缩,zip压缩音视频的效率不如mp4,压了之后更大

也可以用 multi-volume 指定达成多少个、多大的文件,要记住顺序

也可以用 split 命令把大文件劈成小份

 

一般来说在公司时候,利用公司的资源做出来的东西,署名权是你的,但是知识产权不是你的,能不能拷贝走要看公司条款