SSH
參考:https://askie.today/lets-set-ssh-config/
SSH登入主機時,不用再輸入密碼,然後也不用輸入ip的方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| ssh-keygen
ssh-copy-id 帳號@主機IP
cd ~/.ssh vi config
Host test HostName 192.168.4.18 User prlab identityfile ~/.ssh/id_rsa
ssh test
|
zip
我最常用的就是壓所檔案,並且需要加密或分割檔案用。
- 一般加密檔案用的指令。
1 2 3
|
zip -er ./test.zip ./test
|
- 把zip檔案進行分割和合併的做法。
1 2 3 4 5 6 7 8 9 10
|
zip - ../test.zip | split -b 10MB
cat x* > ../test.zip
|
Mac
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| # 轉換成中文 option + shift + B : 可以打入顏文字 # emoji ctrl + command + space : 可以打入表情符號
# mac ctrl + command + F : 全螢幕 ctrl + 左右鍵 : 往右邊的 desktop 切換 command + M : 收起來最小化
# 瀏覽器 command + T : 新增分頁 command + W : 關閉分頁 command + shift + T : 還原關閉分頁 command + L : 跳到網址列 command + R : 重新整理 command + [ : 上一頁 command + ] : 下一頁
# Aflred command + , : 開啟 Preference 設定
|
SHELL 配置文件
.bashrc
vs .zshrc
vs .profile
vs .bash_profile
差異在哪裡?
比較 |
bashrc |
bash_profile |
zshrc |
啟動時間 |
系統啟動後 自動運行,只在bash shell下執行 |
用戶登入後 才會運行 |
系統啟動後 自動運行,只在 zsh shell下執行 |
實行時機 |
每次打開終端 都會運行 |
每次登入 都會運行一次 |
每次打開終端 都會運行 |
更新方法 |
source bashrc |
source profile |
source zshrc |
局面變量 |
局部 ,只能繼承 /etc/profile 中的變量 |
/etc/profile 中設定的變量是全局 。 |
全局 ,可以用於任何用戶 |
總結:
- 如果使用 bash 請更改
~/.bashrc
或是 ~/.bash_profile
- bashrc 是每次打開終端都會運行
- bash_profile 是每次登入都會運行一次
- 如果使用 zsh 請更改
~/.zshrc
或是 ~/.zshenv
- 如果使用 bash 並且想要讓所有用戶都生效,請更改
/etc/profile
關於 /usr/
關於 python & conda
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| which python which -a python which -a python3
conda env list conda search python conda list -n your_environment_name python conda list
conda create -n <env_name> python=3.7 conda activate <env_name>
conda remove -n <env_name> --all
conda create --name new_name --clone old_name conda remove --name old_name --all
|
python 項目自動產生requirements.txt
ref: https://blog.csdn.net/pearl8899/article/details/113877334
ref: pip freeze creates some weird path instead of the package version
有時候我們在和別人合作的時候會希望保持環境的一致。
方法1: 整個環境下的安裝包都保存到 requirements.txt
使用這個方法的建議是你使用 virtualenv 環境下安裝的包都保存到 requirements.txt 中。
如果開啟一個新專案,建議建立一個新的virtualenv環境,並使用以下指令來建立所有的package清單。
1 2 3 4 5
| pip freeze > requirements.txt
pip list --format=freeze > requirements.txt
|
方法2: 只生成單個項目中有使用到的安裝包
以下的作用範圍只會將當前項目使用的內容導出成為requirements.txt
先定點到項目目錄下,然後執行 pipreqs ./ --encoding=utf-8
,可以避免編碼錯誤,並自動在根目錄生成requirements.txt文件。
速度會比方法1還要慢。
1 2
| pip install pipreqs pipreqs .
|
如何安裝 requirements.txt 的套件
1
| pip install -r requirements.txt
|
一鍵安裝各種包
最好先使用conda建立新環境,以做好環境隔離,然後再使用以下指令安裝所有的包。
1 2
| pip install -r requirements.txt conda install --yes --file requirements.txt
|
conda install vs pip install
如果使用conda安裝的python會建議使用conda install,因為他是嚴格檢查依賴,表示如果下載某個套件,該套件相關的依賴也會一併下載,conda比較能保證工作,如果conda沒有的再使用pip install即可。
接下來我們要去自己的網站下載api json檔案,然後放到 ~/.kaggle/kaggle.json
這個目錄下面
1 2
| kaggle datasets download -d <owner-name>/<dataset-name> -p <path-to-download>
|
也可以透過opendatasets套件來下載
1
| pip install opendatasets
|
1 2
| import opendatasets as od od.download('https://www.kaggle.com/c/3136/download-all')
|
關於 Java
1 2 3 4 5 6 7 8
| brew search openjdk
brew install openjdk@8
java -version
|
快速切換版本的做法,以我的微粒我目前本機上有17跟8
你會發現版本都裝在 /Library/Java/JavaVirtualMachines/
這個目錄下面
1 2 3 4 5 6 7 8 9 10 11
| cd /Library/Java/JavaVirtualMachines/
ls
/Library/Java/JavaVirtualMachines/openjdk-8.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home
|
但是如果你是使用arm架構,例如Macos m1, m2晶片,那可能不適用
會看到以下錯誤
1 2 3 4 5 6 7
| ❯ brew install openjdk@8 ==> Downloading https://formulae.brew.sh/api/formula.jws.json
==> Downloading https://formulae.brew.sh/api/cask.jws.json
openjdk@8: The x86_64 architecture is required for this software. Error: openjdk@8: An unsatisfied requirement failed this build.
|
- 要去oracle下載是用自己架構的版本:https://www.oracle.com/java/technologies/javase/jdk8-arm-downloads.html
- 進行解壓縮後,我自己放到
/Library/Java/
這個目錄下面
vi ~/.bash_profile
進去添加以下內容
1 2 3 4 5 6 7
| java8=/Library/Java/jdk1.8.0_401.jdk/Contents/Home java17=/usr/bin/java
export JAVA_HOME=$java17 alias java8="export JAVA_HOME=$java8" alias java17="export JAVA_HOME=$java17"
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| source ~/.bash_profile
java8 java -version > output java version "1.8.0_401" Java(TM) SE Runtime Environment (build 1.8.0_401-b10) Java HotSpot(TM) 64-Bit Server VM (build 25.401-b10, mixed mode)
java17 java -version > output openjdk version "17.0.6" 2023-01-17 OpenJDK Runtime Environment Temurin-17.0.6+10 (build 17.0.6+10) OpenJDK 64-Bit Server VM Temurin-17.0.6+10 (build 17.0.6+10, mixed mode)
|