Linux for machine learning

Linux for machine learning

1、常用命令

cd:在终端切换不同的文件夹

cd ..  						# 返回上级目录
cd - 							# 返回刚刚所在的目录
cd ../../ 				# 向上返回俩次
cd ~							# 去往HOME文件
cd real_path			# 去往绝对路径指向的地方

ls:列出该路径下的文件or文件夹

ls 				# 单列出文件名+文件夹名
ls -l			# 列出文件+文件夹的详细信息,有文件的权限,用户名,文件大小,修改日期文件名等
ls -a			# 显示所有文件,包括隐藏文件
ls -lh		#	该指令显示的文件信息更方便人们读取/观看
ls --help	# 其他功能可以通过--help来查看

Touch 新建文件

touch file								# 新建文件
touch file1 file2 file3		# 可以同时新建多个文件

cp 复制

cp old_file new_file			# 将old_file复制到new_file中
# 其中,如果new_file已经存在的话,就会被old_file所覆盖掉
cp -i old_file new_file		# 覆盖前将询问是否覆盖,回答Yes/No
cp file folder/						# 复制文件去文件夹
cp -R folder1/ folder2		# 复制文件夹,需加上-R
cp file* folder/					# 复制多个文件 *代表前面是file后面是什么名字无所谓
cp file1 file2 folder1		# 将文件file1和file2复制到文件夹folder1下面

mv 剪切

mv file folder/					#移动文件到文件夹
mv file_old file_new		#重命名!!!

mkdir 新建文件夹

mkdir folder							#新建文件夹
mkdir -p folder1/file			#循环建立文件夹+文件

rmdir 移除文件夹

rmdir folder2		#移除文件夹	这样移除的文件夹必须是空文件夹,里面不能有文件

rm 移除文件

注意:千万不要rm -rf /,这样会清空你的电脑的!!!

rm file						# 移除单个文件
rm -i file				# 移除文件,并且每个要移除的文件都有提示,会询问您是否确定删除
rm -I f1 f2 f3		# 移除多个文件,但仅当超过3个文件才进行提示
rm -R/r folder1		# 递归删除文件夹,会清除这个文件夹内所有文件(包括这个文件夹)

nano 文件编辑工具

Ctrl+x保存并退出

gedit 文本编辑工具

和windows记事本差不多

cat 用来显示文件内容,或者将某个文件的内容写到其他文件中

cat 1.py								# 查看文件内容
cat 1.py > 2.py 				#	将1.py文件的内容放到另一个文件中去	(会覆盖,并不是追加)
cat 1.py 2.py > 3.py		# 将1.py和2.py文件内容打包放到3.py中去
cat 1.py >> 2.py				# 会将1.py的内容追加到2.py文件的尾部

安装deb安装包

sudo dpkg -i XXX.deb
sudo apt-get -f install

2、Linux文件权限

ls 查看权限

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HjNICMRE-1634645576833)(/Users/mr.wei/Desktop/master study/image/Linux for machine learning/image-20211017094230832.png)]

莫烦Python

  • Type:- 表示文件、d表示文件夹,其他随时搜

  • User:表示User身份的权限

  • Group:表示Group中的Users的权限(因为一个Group中可能有多个User)

  • Others:除了User和Group以外人的权限

    r :读 w:写 x:执行 -:不具备相应的权限

chmod:修改权限

chmod [who] [如何修改] [which file]
chmod u+r 1.py				#让user增加read权限
# [who] represent user/group/others
# [how to change] +/-/=	代表 增加/减少/等于 某些权限(由r,w,x组合成的权限)
# [which file] the file which want to change

还可以使用数字改变权限,八进制数字

chmod 777 1.py	#表示1.py的user/group/others都拥有读/写/执行的能力
# 777: 代表八进制,转换为二进制为:111 111 111
# 分为三组,每组分别代表user, group, others
# 一组 3 bits 分别代表r/w/x, 0/1代表是否拥有相对应的权限!
# 101 : 代表有读/执行的权限,但没有写的权限! 转换为八进制为:5

对于python文件的权限

对于python文件,最好给其赋予可执行的权限,因为没有执行权限的python文件需要:

$ python3 1.py	 # 需要这样去运行

$ ./1.py				 # 	拥有执行权限的文件可以这样运行

所以可以在python脚本文件第一行加一句话:

#!/usr/bin/python3	# s是为了告诉你的电脑执行这个文件的时候用什么来加载

3、MacOS通过SSH远程Linux(仅在局域网内控制)

1、给Linux安装OpenSSH

$ sudo apt-get install openssh-server

2、Mac远程控制Linux

$ ssh [要控制Linux的用户名]@[Linux电脑的IP]
# Linux电脑的IP使用命令ifconfig获取

3、免密登陆

首先在mac上生成一个pulic/private key,然后公钥传给Linux,私钥留在mac上,这样以后就不用每次输入密码了

$ ssh-keygen			#	生成公私钥
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/mr.wei/.ssh/id_rsa): y 
Enter passphrase (empty for no passphrase):  #这里可以不输入,直接回车
Enter same passphrase again: 
$ ssh-copy-id [被控制Linux的用户名]@[它的IP]	#将公钥传至Linux电脑中x

随后就可以不需要输入密码,直接输入命令ssh [用户名]@[IP]便可以进入Linux系统的终端

4、使用VNC远程连接

在Linux上输入如下命令:

$ sudo apt-get install x11vnc

并且为其设置密码

$ x11vnc -storepasswd

并输入以下命令,使得开启VNC的server

$ x11vnc -usepw

用Mac连接VNC

打开软件Screen Sharing,打开并且输入Linux电脑的IP地址,随后输入密码,便可以远程连接了

5、云端运行计算

1、首先在mac端新建一个python脚本,并输入相应的代码,eg:

# coding-utf-8

import platform


a = 0
for i in range(9999):
    a += 1
print("Finish job, result = %i" % a)
print("This is", platform.system())

2、然后在mac的终端中输入

$ ssh [email protected] python3 < /Users/mr.wei/Desktop/code/python_study_code/Python_basic_teach/machine_learning.py
Finish job, result = 9999
This is Linux

文件传输

如果有很多python文件,并且运行的时候一环扣一环,这是我们就可以先全部复制所有必须文件Linux的缓存区或者桌面,然后再使用ssh在Linux云端的运行传送过去的文件

1、首先要将文件复制到云端(Linux桌面)上

$ scp /Users/mr.wei/Desktop/code/python_study_code/Python_basic_teach/{
    
    1,test}.py [email protected]:~/Desktop
1.py                                          100%  193    27.7KB/s   00:00    
test.py                                       100%   79    15.4KB/s   00:00 

2、执行的话,需要将后面的指令用""框起来,说明是要发送去云端在执行。

$ ssh [email protected] "python3 ~/Desktop/test.py"

3、如果云端产生了一个新文件,你想复制回来可以使用指令:

$ scp [email protected]:~/Desktop/test.py /Users/mr.wei/Desktop/code/python_study_code/Python_basic_teach

做gym的强化学习注意事项

如果你想使用ssh远程打开云端的窗口程序,默认是不允许的,所以必须设置一个参数,eg:

$ ssh [email protected] "export DISPLAY=:0; firefox" 	# 比如要打开火狐浏览器,需要在前面加上参数export DISPLAY=0

同样,在强化学习中,需要使用:

env.render()		# 这句话会将gym模块的环境显示在屏幕上

因为它需要打开窗口程序,所以在运行这个脚本的时候,我们需要设置参数,eg:

$ ssh [email protected] "export DISPLAY=:0; python3 xxx.py"

6、mac中共享Linux的文件夹

1、设置分享文件夹

1)可以在Linux电脑的Home下面设置一个share文件夹(当然也可以在其他地方)

2)右击这个文件夹,点击Local Network Share,然后☑️Share this folder,然后会让你安装samba,如果出现问题,去终端自行安装sudo apt-get install samba

3)安装好之后,重新操作第2步,然后☑️Allow others to create ....,然后点击Create share

4)然后在设置一个密码

$ sudo smbpasswd -a [用户名]
#第二行设置密码

在mac端找到刚刚的共享文件夹

打开访达,然后在上方找到前往,然后选择网络,然后找到选择你的计算机名,输入密码进入之后就可以看到共享文件夹了!

参考:莫烦PYTHON

猜你喜欢

转载自blog.csdn.net/Mrwei_418/article/details/120833864