分类 Linux 下的文章

远程的使用Jupyter 真香系列


现在假设你有一台Linux服务器,默认你有Python基础(手动滑稽),恰巧嘞你在Windows上边在练习coding python的时候饱受默认环境摧残,之后你了解到了Anaconda(python环境真香系列)...

Linux服务器安装Anaconda同样会让你顺畅许多(舒服~)

下载安装脚本
wget https://repo.anaconda.com/archive/Anaconda3<版本号>-Linux-x86_64.sh
运行安装向导
bash Anaconda3<版本号>-Linux-x86_64.sh
确认安装成功
conda --version

Linux服务器配置Juypter,Then远程使用Jupyter:

直接在输入命令ipython进入ipython环境

键入

from notebook.auth import passwd
passwd()

输入你记得住的一个密码,之后会产生一个密钥,形如:形如: ’sha1:xxxxxxxxxx’

先复制下来保存好

先生成配置文件
jupyter notebook --generate-config
然后修改配置文件的一些内容

文件很长,不用去找,直接在第一行粘贴上去就行

vim ~/.jupyter/jupyter_notebook_config.py
c.NotebookApp.ip = '*' # 允许访问此服务器的 IP,星号表示任意 IP
c.NotebookApp.password = u'sha1:xxx:xxx' # 之前生成的密码 hash 字串
c.NotebookApp.open_browser = False # 运行时不打开本机浏览器
c.NotebookApp.port = 12684 # 使用的端口,随意设置
c.NotebookApp.enable_mathjax = True # 启用 MathJax
目前能启动服务了
Jupyter notebook

在浏览器里输入你的IP地址后边别忘了加上端口号,就可以成功访问Jupyter了(你得输入你先前设置的密码,不是那个hash),但是你发现在你关闭xshell(鄙人使用xshell连接的Linux服务器),你正在访问的Jupyter就访问不了了,要是能访问的话,我在其他没有python环境的电脑上同样也能coding python,那样该多好~

现在我们让他后台运行

启动的时候这样启动

nohup jupyter notebook --allow-root > jupyter.log 2>&1 &
  • &让命令后台运行, 并把标准输出写入jupyter.log中
  • nohup表示no hang up, 就是不挂起, 于是这个命令执行后即使终端退出, 也不会停止运行
关闭进程

在执行上一步操作后使用命令查看当前任务的进程

ps -a

当你不想使用Jupyter的时候,杀掉这个进程(-n是你上一步查看到的进程pid)

kill -n pid
enjoying it~~~

记-创建Ubuntu虚拟机+Python开发环境配置


前言

因为之前我的小米笔记本装的第二个Ubuntu系统的无线wifi驱动器老是打不开(试过网上的N+种方法,我放弃了。。。),只能用USB数据分享或者蓝牙数据分享,非常难受。算了先不用那个了吧,弄个虚拟机试试。

VirtualBox下载安装

下载官网

一路next就行,不用额外添加别的,安装成功后界面如图,可能因为版本不同而略微有差别(不包含myUb)

vb界面.png

基于VirtualBox安装Ubuntu

这里放上网上的一个很好的教程,镜像你可以自行选择推荐最新版本,到Ubuntu官网下载镜像,我分配的磁盘空间为64G

安装完之后

你会发现你的Ubuntu界面是如此精巧~问题解决方案

开启虚拟机进去之后你键盘左边的Ctrl键与右边的Ctrl键是有区别的,virtualbox虚拟机窗口模式显示设置,切换可用右边的Ctrl+字母键盘C (一定要是右边的Ctrl+C)

关于本地与虚拟机之间剪贴板共用问题与文件拖拽问题,这两个功能若是可行的话会给我们带来不少的便利,红色方框内都可双向

拖拽.png

Ubuntu安装PyCharm + Anaconda + Chrome + Git +科学上网

PyCharm在系统自带的"软件商店"上能搜到

Anaconda在官网下载

Chrome官网下载

Git使用命令行安装

# apt-get install git

Git基本配置

PyCharm内的代码注释是用的左边的Ctrl键+/ 因为右边的Ctrl在虚拟机环境下是热键,着实有些不习惯

Chrome插件安装,以前的谷歌打包好扩展程序后是一个压缩包,之后改成crx了,看这,因为之前设置了文件可拖拽,将crx拖拽到虚拟机就行,然后把后缀改成.zip的格式,打开谷歌浏览器,往里面一拖就行。之前不知道,老是报错。。。(自行科学上网)
哎~要完美的做一件事途中会遇到很多坑,一个教程根本不够填坑的,现在也就是增加点经验吧。


Linux实用基础知识


ls命令

ls命令不仅可以查看 linux 文件夹包含的文件而且可以查看文件权限(包括目录、文件夹、文件权限)查看目录信息等等。

命令格式

ls [选项] [目录名]

常用参数

  • -l :列出长数据串,包含文件的属性与权限数据等
  • -a :列出全部的文件,连同隐藏文件(开头为.的文件)一起列出来(鄙人常用)
  • -d :仅列出目录本身,而不是列出目录的文件数据
  • -h :将文件容量以较易读的方式(GB,kB等)列出来
  • -R :连同子目录的内容一起列出(递归列出),等于该目录下的所有文件都会显示出来

cd命令

最基本的命令语句,其他的命令语句要进行操作,都是建立在使用 cd 命令上的。用于切换当前目录至dirName。

命令格式

cd [目录名]
例如
  • 进入系统根目录。
cd /
  • 进入指定目录
cd /www/wwwroot
之后再写的时候不用添加 ‘/’,假如说我www/wwwroot目录下还有一个mydir文件夹,在此基础上:
cd mydir
  • 上一层目录
cd ../

pwd 命令

查看"当前工作目录"的完整路径。

命令格式:

pwd [选项]

常用参数:

  • -P :显示实际物理路径,而非使用连接(link)路径
  • -L :当目录为连接路径时,显示连接路径
例如:
  • 显示当前所在路径。
pwd

mkdir 命令

用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录。

命令格式

mkdir [选项] 目录

常用参数

  • -m, --mode=模式,设定权限<模式> (类似 chmod),而不是 rwxrwxrwx 减 umask
  • -p, --parents 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录;
  • -v, --verbose 每次创建新目录都显示信息
  • --help 显示此帮助信息并退出
  • --version 输出版本信息并退出
例如:
  • 创建一个空目录。
mkdir test
  • 递归创建多个目录。
mkdir test/test1
  • 创建权限为777的目录。
mkdir -m 777 test2
  • 创建目录都显示信息。
mkdir -v test4

rm 命令

删除一个目录中的一个或多个文件或目录,如果没有使用- r选项,则rm不会删除目录。如果使用 rm 来删除文件,通常仍可以将该文件恢复原状。

命令格式

rm [选项] 文件

常用参数

  • -f, --force 忽略不存在的文件,从不给出提示。
  • -i, --interactive 进行交互式删除
  • -r, -R, --recursive 指示rm将参数中列出的全部目录和子目录均递归地删除。
  • -v, --verbose 详细显示进行的步骤
  • --help 显示此帮助信息并退出
  • --version 输出版本信息并退出
例如:
  • 删除文件 test.txt,系统会提示是否删除。
rm test.txt
  • 强制删除 test.txt,系统不再提示。
rm -f test.txt
  • 将 test 子目录及目录中所有档案删除。
rm -r test

mv 命令

可以用来移动文件或者将文件改名(move (rename) files)。当第二个参数类型是文件时,mv命令完成文件重命名。当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。

命令格式

mv [选项] 源文件或目录 目标文件或目录

常用参数

  • -b :若需覆盖文件,则覆盖前先行备份
  • -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
  • -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖
  • -u :若目标文件已经存在,且 source 比较新,才会更新(update)
  • -t : --target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY,即指定mv的目标目录,该选项适用于移动多个源文件到一个目录的情况,此时目标目录在前,源文件在后
例如:
  • 将 test1.txt 重命名为 test2.txt。
mv test1.txt test2.txt
  • 移动文件 test1.txt 到目录 test2
mv test1.txt test2
  • 将文件 test1.txt、test2.txt、test3.txt 移动到目录 test3。
mv test1.txt test2.txt test3.txt test3

cp 命令

将源文件复制至目标文件,或将多个源文件复制至目标目录。

命令格式

cp [选项] 源文件 目录 或 cp [选项] -t 目录 源文件

常用参数

  • -t --target-directory 指定目标目录
  • -i --interactive 覆盖前询问(使前面的 -n 选项失效)
  • -n --no-clobber 不要覆盖已存在的文件(使前面的 -i 选项失效)
  • -f --force 强行复制文件或目录,不论目的文件或目录是否已经存在
  • -u --update 使用这项参数之后,只会在源文件的修改时间较目的文件更新时,或是对应的目的文件并不存在,才复制文件
例如:
  • 复制文件 .env.example 为 .env
cp .env.example .env # 若文件存在,会提示是否覆盖。若不存在直接完成复制
  • 复制 test1 整个目录到 test2目录下
cp -a test1 test2

touch 命令

touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间。

命令格式

touch [选项] 文件

常用参数

  • -a 或--time=atime或--time=access或--time=use  只更改存取时间
  • -c 或--no-create  不建立任何文档
  • -d  使用指定的日期时间,而非现在的时间
  • -f  此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题
  • -m 或--time=mtime或--time=modify  只更改变动时间
  • -r  把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同 -t  使用指定的日期时间,而非现在的时间
例如:
  • 创建不存在的文件test.txt
touch test.txt
  • 更新 test.txt 的实践和 test1.txt 时间戳相同
touch -r test.txt test1.txt

cat 命令

用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。

命令格式

cat [选项] [文件]

常用参数

  • -A, --show-all 等价于 -vET
  • -b, --number-nonblank 对非空输出行编号
  • -e 等价于 -vE
  • -E, --show-ends 在每行结束处显示 $
  • -n, --number 对输出的所有行编号,由1开始对所有输出的行数编号
  • -s, --squeeze-blank 有连续两行以上的空白行,就代换为一行的空白行
  • -t 与 -vT 等价
  • -T, --show-tabs 将跳格字符显示为 ^I
  • -u (被忽略)
  • -v, --show-nonprinting 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
例如:
  • 输出文件内容(鄙人常用)
cat [文件名]
  • 把 test.log 的文件内容加上行号后输入 test1.log 这个文件里。
cat -n test.log  test1.log

which 命令

which指令会在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。

命令格式

which 可执行文件名称

常用参数

  • -n  指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名
  • -p  与-n参数相同,但此处的包括了文件的路径
  • -w  指定输出时栏位的宽度
  • -V  显示版本信息
例如:
  • 查找文件、显示命令路径。
which pwd

在Linux命令行下面通过wget下载文件

查看是否安装wget

rpm -qa|grep wget
如果安装了会提示当前安装的版本,没安装的话可以通过以下命令安装:
yum install -y wget
安装好wget,我们要下载文件,一般是wget http://wwww.xxxxx 这种格式下载到默认的目录。

下载到指定目录要通过 -P 参数:

wget -P /保存文件的目录 文件下载地址

Vim

Vim可以分为三种模式,分别为:

命令行模式(Command mode)

插入模式(Insert mode)

底行模式(Lastline mode)

命令行模式

控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。

插入模式

只有在Insert mode下,才可以做文字输入,按“ESC”键可回到命令行模式。

底行模式

将文件保存或退出vim,也可以设置编辑环境,如寻找字符串、列出行号……等。

Vim的基本使用

1) 进入Vim
在系统光标提示符后,输入vim及文件名后,回车,进入Vim编辑画面。
vim [文件名]

进入vim之后,是处于“命令行模式(command mode)”,要切换到“插入模式(Insert mode)”才能够输入文字。

2) 切换至插入模式(Insert mode)编辑文件
在“命令行模式(command mode)”下按一下字母“i”就可以进入“插入模式(Insert mode)”,这时候你就可以开始输入文字了。
3) 插入模式(Insert mode)切换到命令行模式(Command mode)
在插入模式下,按一下“ESC”键即可。
4) 退出vim及保存文件
在命令行模式(Command mode)下,按冒号“:”键,进入底行模式(Last Line mode)

常见底行模式下的命令行:

:w filename 文件以filename为文件名保存

:wq 文件存盘并退出vim

:q 文件不存盘并退出vim

:q! 文件不存盘强制退出vim


召唤看板娘