实验要求:
Ubuntu操作系统,C语言编程。
创建多个父进程与子进程,并撤销这些进程。
编写一段程序,使用系统调用fork()创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示字符a;子进程分别显示字符b和字符c。试观察记录屏幕上的显示结果并分析原因
源码展示
12345678910111213141516171819...
在 Bash 脚本中,$#、$0、$1 和 $2 是特殊的变量,它们代表了脚本中传递的参数信息。
$#
$# 表示传递给脚本的参数个数。例如,如果你的脚本名为 script.sh,并且你通过命令 ./script.sh param1 param2 运行它,那么 $# 的值将会是 2。
$0
$0 表示脚本本身的名称。通常它为脚本当前路径。例如,如果你在当前目录下执行 ./scr...
基本语法
1234567if [ condition ]; then # 如果条件为真,则执行这里的代码elif [ other_condition ]; then # 如果第一个条件为假,但第二个条件为真,则执行这里的代码else # 如果所有条件都为假,则执行这里的代码fi
条件表达式
1. 字符串比较:
str1 == str2:检查两个字符串是否相等。
st...
1. for 循环
for 循环通常用于遍历一个序列或列表。
基本格式:
1234for variable in listdo # 循环体done
variable:循环变量,变量名任取,每次迭代都会从列表中取一个值赋给它。
list:一个值的序列,可以是字符串、数字或文件名列表。
示例:
1234567891011121314151617# 遍历字符串列表for i in ...
如何获知自己的系统版本?
通用命令:
1hostnamectl
基于 Red Hat 的系统(如 CentOS、RHEL 等):
1cat /etc/redhat-release
1lsb_release -a
Debian、Ubuntu 和基于它们的系统:
1cat /etc/issue
1lsb_release -a
Fedora:
1cat /etc/fedora-relea...
每个Linux系统进程都有三个标准流:
标准输入(stdin):通常是键盘输入。
标准输出(stdout):通常是终端或控制台显示的输出。
标准错误(stderr):用于错误消息的输出。
默认情况下,大多数命令从标准输入读取数据,并将结果输出到标准输出,错误消息输出到标准错误。数据流重定向允许你改变这种默认行为,将输出重定向到文件或其他命令,或者从文件中读取输入。
输出重定向
&g...
iptables是一个与系统本身ip数据包出入规则有关的命令,用于配置Linux的防火墙规则。第一次接触这个命令感觉很像是ACL(Access Control List)那一套。
下面我将用一个简单的实验实践iptables,以演示其基本功能
实验:用iptables封禁ssh服务(默认使用22端口)
步骤
执行命令iptables -h(简略)或者man iptables(详细)...
运营商会封禁哪些端口?
协议
可能会被拦截的端口
TCP
42、135、137、138、139、445、593、1025、1434、1068、3127、3128、3129、3130、4444、5554、5800、5900、9996
UDP
4789、4791、1026、1027、1434、1068、5554、9996、1028、1433、135 - 139
SMTP
...
服务器支持的远程传文件协议很多,我应该用哪种?
简单文件传输:
FTP(常用21端口)
局域网文件共享:
SMB(常用139端口)
网络不稳定情况,需要用户权限管理情况:
SFTP(基于ssh,用22端口)
配置:配置sftp&&ssh服务
安全高速:
WinSCP(基于ssh,用22端口)