26/07/2018

课堂笔记

1.操作系统宏观介绍

windows

Mac OS-类Unix,Itunes

  • Unix system
  • Unix BSD- Mac OS
  • Unix like - Linux

服务器系统-Linux

 

Debian----Ubuntu (2004)

Slackware --- Suse (1994)

                         Redhat ---Fedora (2002)

                                      --- RHEL ---CentOS (2004, 2014被Redhat收购)

 

内核网站kernel.org,如何查看内核版本, # uname -r,查看内核版本,可以下载最新的内核安装到CentOS;# uname -a, 可以看出x86_64,64位的操作系统; # cat /ect/redhat-release

32位的系统最多识别3个G的内存

# cat /etc/motd

CentOS官网- centos.org;https://wiki.centos.org/download

 

 

2. 虚拟机的介绍

vmware是付费的,我们用的是vmware workstation;有些企业使用virtual box,多台服务器组成集成,进行迁移共享等等

 

3.安装系统

 

4.网络配置

# yum update,用来升级到最新CentOS版本

用NAT模式- 可能网络环境不支持桥接;可能网络环境会改变

#dhclient, 自动获得ip 地址, 如果不能获取,可能是vmware workstation网络设置有问题,重启windows, 在cmd中执行 service.fsc,查找vmware开头的设置,全部变成enabled

在虚拟机上选择编辑,选择虚拟网路编辑器,可以查看网关网段等信息,网关(可以当作路由器)可以改但不能用1 or 255

编辑网络配置文件,设置静态IP,再重启网络就OK啦

在云上购买云主机,IP地址就已经被设置好了,跟之前的公网IP有差异

network manager- # systemctl stop networkmanager --- # systemctl disable networkmanager

 

预习笔记

  •  系统目录结构

ls /,可以查看root下的目录

可以看到 bin/boot/dev/ect/home/lib/lib64/mdia/mnt/opt/proc/root/run/sbin/srv/sys/tmp/usr/var

 

1. # ls

/root/ -为root用户家目录,用来存储配置文件以及自己的应用

 

linux 也只是一个少用的操作系统,就好比是我们的Windows的系统,而linux我们经常看到的一些“公共、视频、文档、音乐、下载”等程序就好比 我们开机后所看到的桌面,看着是独立出来的一部分,实际上也就是C盘下面的一个文件夹,然后这个文件夹被用来做成了挂载目录而已,而实际上最重要的还是根目录/ 下面的那些文件属性,就是我们所看到C D E F 盘等等

根目录和家目录均只是一种linux文件挂载点,linux采用树状发展目录结构根目录就是第一级,家目录与根目录看起来只是一个一级目录和二级目录的关系,实际上差别很大。

家目录是系统傻瓜安装程序人为挂载的一个目录,便于多用户登录使用,你精通linux以后可挂任意的目录为家目录,比如/test,然后指定用户成为这个目录的owner,完成控制这个目录的功能。

简要的说,根目录是系统的一级文件结构,家目录只是非root用户控制目录,相当于windows我的文档,非root用户只能完会控制家目录的文件,不能控制根目录下其它的文件。

 

 # tree 用于以树形的形式来目录下面的子目录,可用命令# yum install -y tree来安装

   # tree --hep 可以用来查看#tree 命令的常用用法;也可以有# man (man page)来查看命令的使用方式, 例如# man tree

   使用了# man tree之后我们可以看到 # tree -L 可以用来指定tree命令展示文件的层数/深度

3. /bin/ or sbin or user/bin or user/sbin

软连接, 用来存储常用的命令like, vi/ ls/ tree etc.

bin 和 sbin的区别

sbin- 其用来存储只有root用户可用使用的命令,普通用户不可使用

bin- 存放了root用户和普通用户都可以使用的命令

4. #  /boot/

为系统启动的相关文件

GRUB的定义

5. #  /dev/

设备文件-光驱,硬盘,鼠标键盘等

6. #  /etc/

系统配置文件,是Linux下的配置文件的老家, 很多管理和使用的修改都在这里。/etc/sysconfig/network-scripts/ifcfg-ens33

7.#  /home/

用户的家目录文件

8. #  / lib/ or lib64

库文件- ldd

# ldd /bin/xx 用来看xx命令依靠什么库文件

9. # ls /media

存放媒介,like USB

10. # ls /mnt

用于临时挂载文件,临时挂载的光驱以及硬盘等

11. / proc

系统启动的进程

12. /opt

存放一些特殊的安装软件,like Oracel

13.  /run

存放进程产生的临时文件,一关机就会消失的文件

14/ser/

服务产生的文件

15. /sys/

系统内核相关的文件

16. /tmp/

系统的临时目录,任何用户都有权限进行修改

17. /usr/

/usr/local

存放用户的文件,应用程序目录。大部分的软件都安装在这里。就像是Windows里面的Program Files。

18. /var/local/ or message/ 

日志文件,经常会变动,硬盘读写率高的文件放在此中

 

1. # ls -l = # ll

列出文件的详细信息

总用量 4
-rw-------. 1 root root 1418 7月 14 07:20 anaconda-ks.cfg
 

  • 第一列为文件的权限
  • 第二列为有相同inode的文件数量

          # ls -i file name, 查看文件的inode- 从根本上讲, inode 中包含有关文件的所有信息(除了文件的实际名称以及实际数据内容之外)

          例如,用# ls -i anaconda-ks.cfg,可以看到inode号为33574978 anaconda-ks.cfg

          ● inode 编号

          ● 用来识别文件类型,以及用于 stat C 函数的模式信息

          ● 文件的链接数目

          ● 属主的ID (UID)

          ● 属主的组 ID (GID),涵盖多个用户

          ● 文件的大小 

          ● 文件所使用的磁盘块的实际数目

          ● 最近一次修改的时间

          ● 最近一次访问的时间

          ● 最近一次更改的时间

 

  • 第三列表示所有者
  • 第四列表示所属组
  • 第五列表示文件大小

         # ls -lh naconda-ks.cfg(文件名), 可以显示文件大小

  • 第六列文件创建时间
  • 最后一列为文件名

 

2.# ls -a, 显示隐藏文件,红色方框标识出的带点的文件就为隐藏文件

# ls -la, 显示隐藏文件,并显示其详细信息(并包括创建时间等)- ls -a + ls -l = ls -la, 而# ls -a则只显示隐藏文件,并没有向信息

 

3. # ls -lta, 可以按时间顺序排列目录 - # ls -t

r-xr-x---. root root 147 7月 14 13:03 .
dr-xr-xr-x. 17 root root 224 7月 14 15:25 ..
-rw-------. 1 root root 1418 7月 14 07:20 anaconda-ks.cfg
-rw-------. 1 root root 2602 7月 15 10:38 .bash_history
-rw-r--r--. 1 root root 18 12月 29 2013 .bash_logout
-rw-r--r--. 1 root root 176 12月 29 2013 .bash_profile
-rw-r--r--. root root 176 12月 29 2013 .bashrc
-rw-r--r--. 1 root root 100 12月 29 2013 .cshrc
drwx------. root root 80 7月 15 09:27 .ssh
-rw-r--r--. root root 129 12月 29 2013 .tcshrc

 

一个点表示当前目录,两个点表示上级目录

 

4.# ls -ld /directory_name, 不会显示子文件、子目录,只列出目录本身; # ls -d 只列目录本身;#ls -l, 会列出目录下的子目录和子文件的信息

 

 

5. 文件类型

“d”开头 目录

“-”开头普通文件,文本文档以及二进制文件- 计算机文件基本上分为二种:二进制文件和 ASCII(也称纯文本文件),图形文件及文字处理程序等计算机程序都属于二进制文件(类似windows系统中.exe的文件)。这些文件含有特殊的格式及计算机代码。ASCII 则是可以用任何文字处理程序阅读的简单文本文件。

可以用# cat 来查看文本文档文件, 二进制文件不可查看

‘c’开头字符串设备,例如鼠标键盘等,黄色文件,在/dev/下

“b”开头块设备,例如光驱光盘以及磁盘等

“l”开头软链接文件类似于windows的快捷文件

“s”开头?用来通信, 在/var/下面

1. # ls -l = # ll

列出文件的详细信息

总用量 4
-rw-------. 1 root root 1418 7月 14 07:20 anaconda-ks.cfg
 

  • 第一列为文件的权限
  • 第二列为有相同inode的文件数量

          # ls -i file name, 查看文件的inode- 从根本上讲, inode 中包含有关文件的所有信息(除了文件的实际名称以及实际数据内容之外)

          例如,用# ls -i anaconda-ks.cfg,可以看到inode号为33574978 anaconda-ks.cfg

          ● inode 编号

          ● 用来识别文件类型,以及用于 stat C 函数的模式信息

          ● 文件的链接数目

          ● 属主的ID (UID)

          ● 属主的组 ID (GID),涵盖多个用户

          ● 文件的大小 

          ● 文件所使用的磁盘块的实际数目

          ● 最近一次修改的时间

          ● 最近一次访问的时间

          ● 最近一次更改的时间

 

  • 第三列表示所有者
  • 第四列表示所属组
  • 第五列表示文件大小

         # ls -lh naconda-ks.cfg(文件名), 可以显示文件大小

  • 第六列文件创建时间
  • 最后一列为文件名

 

2.# ls -a, 显示隐藏文件,红色方框标识出的带点的文件就为隐藏文件

# ls -la, 显示隐藏文件,并显示其详细信息(并包括创建时间等)- ls -a + ls -l = ls -la, 而# ls -a则只显示隐藏文件,并没有向信息

 

3. # ls -lta, 可以按时间顺序排列目录 - # ls -t

r-xr-x---. root root 147 7月 14 13:03 .
dr-xr-xr-x. 17 root root 224 7月 14 15:25 ..
-rw-------. 1 root root 1418 7月 14 07:20 anaconda-ks.cfg
-rw-------. 1 root root 2602 7月 15 10:38 .bash_history
-rw-r--r--. 1 root root 18 12月 29 2013 .bash_logout
-rw-r--r--. 1 root root 176 12月 29 2013 .bash_profile
-rw-r--r--. root root 176 12月 29 2013 .bashrc
-rw-r--r--. 1 root root 100 12月 29 2013 .cshrc
drwx------. root root 80 7月 15 09:27 .ssh
-rw-r--r--. root root 129 12月 29 2013 .tcshrc

 

一个点表示当前目录,两个点表示上级目录

 

4.# ls -ld /directory_name, 不会显示子文件、子目录,只列出目录本身; # ls -d 只列目录本身;#ls -l, 会列出目录下的子目录和子文件的信息

 

 

5. 文件类型

“d”开头 目录

“-”开头普通文件,文本文档以及二进制文件- 计算机文件基本上分为二种:二进制文件和 ASCII(也称纯文本文件),图形文件及文字处理程序等计算机程序都属于二进制文件(类似windows系统中.exe的文件)。这些文件含有特殊的格式及计算机代码。ASCII 则是可以用任何文字处理程序阅读的简单文本文件。

可以用# cat 来查看文本文档文件, 二进制文件不可查看

‘c’开头字符串设备,例如鼠标键盘等,黄色文件,在/dev/下

“b”开头块设备,例如光驱光盘以及磁盘等

“l”开头软链接文件类似于windows的快捷文件

“s”开头?用来通信, 在/var/下面

 

1. # rm 命令 (remove)

用来删除文件件以及非空目录,

1)删除文件,# rm file path, 例如 “# rm /tmp/aminglinux/2/3/1.txt”, 按回车之后显示一个是否删除文件的提示,按“y”,选择yes, 即可删除文件

如果不想有此类提示,则可以加“-f (force)”命令,并且“*”表示通配符,当查找文件夹时,可以使用它来代替一个或多个真正字符;当不知道真正字符或者懒得输入完整名字时,常常使用通配符代替一个或多个真正的字符。

注:# ! command表示使用历史里面最近一次以command开头的命令, 例如# ! tree

      # history, 可以查看命令历史

 

2)注意“# rm”只可删除文件不能删除目录,如若要删除目录及文件则使用“# rm -r (recursive)”

例子,如果我们在tmp的emmalinux中建立了1-2-3三个目录 (2为1的子目录,3为2的子目录),且2和3目录中各有一个txt文件,若想删除子目录2下面所有子目录以及文件,则可以使用“# rm -rfv /tmp/emmalinux/1/2”, 则可完成删除。删除顺序为先删除目录下的文件,再删除目录

 

注意用“-f”命令时,即使删除不存在的文件或目录也不会有提示,因此需格外注意

 

 

2. 环境变量 PATH

 

 

# echo $PATH 用来查看环境变量下的目录

PATH可以使我们快速的使用一个命令,可不需要敲入整个绝对路径,例如“# ls”命令在/usr/bin/ls下,而/usr/bin就在我们的环境变量下,因此当我们使用‘# ls’命令时,不需要敲入“/usr/bin/ls”, 而可以直接写“# ls”即可

 

1)系统默认下得PATH有五个目录-  /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin,然而我们可以通过增加目录的方式对环境变量进行修改,例如我们copy了“# ls”命令到/tmp/ls2中- “# cp /usr/bin/ls /tmp/ls2”, 然而我们想快捷使用‘# ls2’命令时,我们可以用‘# PATH=$PATH:/tmp/’, 此时我们在用“# echo $PATH”就可以发现/tmp/目录被加到了PATH 下面,在用# ls2命令时,就可以了不需要输入“/tmp/ls2”.

 

2)如若我们想永久加入这个环境变量,则可以用“# vi /etc/profile”, 可以在每次开机都加载这个文件,按回车之后在最后加入命令“# PATH=$PATH /tmp/”即可,如果不想使用# ls2, 则我们可以用变量=想要的目录即可, eg, “# PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin”, 不加/tmp/目录即可。

注:/etc/profile是用来存放每次开机都加载的文件或命令

 

 

3. ‘# cp’

1)命令可以用来copy文件,#cp filename target filename

 

2) 如若想要拷贝目录,则可‘# cp -r’,约定目录之后要加斜杠

注:# command !$, !$表示上一个命令的最后一个参数

 

3)直接用“# cp”是会有一个“-i”安全参数,例如执行命令之后询问是否覆盖已存在文件,如果不想被询问,则需输入绝对路径“/usr/bin/cp”

 

 

4. “# mv”(move)

可以用来改目录或者文件名字,也可以用来移动文件或目录到目标文件或目录中去。

当目标目录不存在时,直接改名字

 

 

5. 查看文本文档的命令

 

1)“# cat +文件名”查看文件内容的

# tac,可以倒叙查看文件内容

  • -A
  • -n,会显示文件内容的行号

 

2) “# more”也是查看文件内容,但是是按一屏一屏显示,按回车可以再看下一屏内容,返回上一屏再按ctrl b(back),想继续往下看是ctrl f(front)

注:

  • # cat 文件名1 >> 文件名2,会把文件1的全部内容追加到文件2中去, head 文件1 >> 文件2-就是文件的头十行加到文件2,同样tail也适用。

         “>>”为追加命令, tail -n 3 /etc/passwd >> 666.txt

        2) # wc -l, 用来查看文件内容的行数

        3)anaconda-ks.cfg是自动装系统的文件

 

3) “# less”的用法跟more相近,但less可以允许用方向键操作, 但看到结尾行时,需按q(quit)来退出,同时less有搜索关键字的功能,键入“/关键字”(顺序由前向后搜索)即可highlight出文件内容中的关键字,按“n”可以搜索下一个相同的关键字,往前看按shift n;键入“?关键字”搜索顺序为由后向前。输入shift g-G可定位到最后一行,输入g可以定位到第一行

 

4) # head, 用来查看一个文件的头十行;# tail,用来查看文件的后十行, # tail -f 可以查看动态文件,多用于查看log,用ctl c退出

注:head和tail都可以用“-n ”后面加行数可指定查看的行数

eg. # head -n 2 anaconda-ks.cfg

     # tail -n 2 anaconda-ks.cfg

 

1. 文件或目录权限chmod

 

1)例如用# ls -l查看文件/目录具体信息

-rw-------. 1 root root 1418 7月 14 07:20 anaconda-ks.cfg

  • 第一位代表文件类型 -普通文件类型
  • 最后一位绿色的点,表明文件此时受制于selinux。 vi /etc/selinux/config用来改写selinux的设置
  • 粉色highlight的后9为代表了权限,分文三段;r-read, w-write, x-执行

              rw-: 所有者的权限

              ---:表示所属组的权限,例子中的所属组没有可读可写可执行的权力

              ---:表示非同组用户的权限

 

2)权限也可用数字表示- r=4; w=2; x=1

-rwx=7 rw-=6 --x=1 例如rw-r--r--用数字表示则为644,再如rw-r-xr-x则为655

 

3)# chmod (change mode), 用来改变权限,命令结构为chmod 有三位数字表示的权限 文件的路径

例如# chmod 700 /tmp/emmalinux1改权限

4)# chmod 只可以改变一个文件或一个目录的权限,如若想批量改变目录下子目录或子文件的权限则可用“# chmod -R”

5) # chmod 754 的命令也可写成 chmod u(user)=rwx,g(group)=rx,o(other)=r

 

6) # chmod a(all)+-r/w/x, 可意味着所有的权限为加减权限属性

 

7)# chmod u/g/o+-r/w/x, 用法跟2)的用法异曲同工

 

 

2. # chown (change owner)

1)改变所有者

用# cat /etc/passwd, 可以看到系统的用户,之前有创建emma1和emma2用户,# chown username file name, 可以改变文件的所有者,如下图所示

 

2)  # chgrp (change group),用法和chown大同小异

 

3)# chown也可以改所属组,# chown user name:group name /file/, 同时user name和group name可空,只改填写的部分

 

 4)# chown -R user name:group name /file/, 可用于批量更改目录以及目录下得子文件子目录的所属者和所属组

 

 

3. # umask 用来确定默认目录和文件权限

输入# umask, 看到“0003”这个数值,则可知道默认文件目录的默认权限分别为664、774,具体算法如下

1)文件: 666-003 - rw-rw-rw - -------wx= rw-rw-r--=664

2)目录:777-003 - rwxrwxrwx - -------wx=rwxrwxr--=774

则再次创建文件或目录是在umask数值为003的条件下,权限值则为664/774

注: 若- 减去r/w/x值都为-(0)

 

“x”权限,目录必须有执行权限才可以打开,所以目录的算法使用777来算

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的基于Transformer算法的代码示例,可以用来预测SNumber。 ```python import pandas as pd import numpy as np import matplotlib.pyplot as plt from sklearn.preprocessing import StandardScaler from sklearn.model_selection import train_test_split from tensorflow.keras.models import Model from tensorflow.keras.layers import Input, Dense, Dropout, LayerNormalization, MultiHeadAttention, TimeDistributed, concatenate # 加载数据 data = pd.read_csv('data.csv') X = data.drop(['SNumber'], axis='columns') y = data['SNumber'] # 标准化输入特征 scaler = StandardScaler() X = scaler.fit_transform(X) # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, shuffle=False) # 构建Transformer模型 def transformer_model(input_shape): inputs = Input(shape=input_shape) x = Dense(64, activation='relu')(inputs) x = LayerNormalization()(x) x = Dropout(0.2)(x) x = Dense(32, activation='relu')(x) x = LayerNormalization()(x) x = Dropout(0.2)(x) x = Dense(1)(x) model = Model(inputs=inputs, outputs=x) return model # 训练模型 model = transformer_model((X_train.shape[1],)) model.compile(optimizer='adam', loss='mean_squared_error') model.fit(X_train, y_train, epochs=100, batch_size=16, validation_data=(X_test, y_test)) # 预测结果 y_pred = model.predict(X_test) # 可视化预测结果 plt.plot(y_test.values, label='True') plt.plot(y_pred, label='Predicted') plt.legend() plt.show() ``` 需要注意的是,这只是一个简单的示例,实际上可能需要进行更多的特征工程和调整模型参数来获得更好的预测结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值