zoukankan      html  css  js  c++  java
  • 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 mrwei@192.168.0.107 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 mrwei@192.168.0.107:~/Desktop
    1.py                                          100%  193    27.7KB/s   00:00    
    test.py                                       100%   79    15.4KB/s   00:00 
    

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

    $ ssh mrwei@192.168.0.107 "python3 ~/Desktop/test.py"
    

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

    $ scp mrwei@192.168.0.107:~/Desktop/test.py /Users/mr.wei/Desktop/code/python_study_code/Python_basic_teach
    

    做gym的强化学习注意事项

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

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

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

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

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

    $ ssh mrwei@192.168.0.107 "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

  • 相关阅读:
    OpenCV教程(46) 快速特征检测
    OpenCV教程(45) harris角的检测(3)
    OpenCV教程(44) harris角的检测(2)
    OpenCV教程(43) harris角的检测(1)
    Andriod源码搜集
    OpenCV特征检测教程
    使用SGD(Stochastic Gradient Descent)进行大规模机器学习
    根据两点经纬度计算距离【转】
    转载]根据两点的经纬度求方位角和距离,等
    array
  • 原文地址:https://www.cnblogs.com/mr-wei977955490/p/15451355.html
Copyright © 2011-2022 走看看