Web_Advance
  • 本書簡介
  • Node.js 部分
    • Node 版本管理
    • 使用NPM
      • Yarn
    • 開始Node
    • Worker Thread
    • REPL
    • TCP
    • path
    • Cluster and Child_process
    • assert (自訂拋出的錯誤)
    • Stream(流)
    • util (工具類)
    • EventEmitter
    • fs 文件操作
    • Buffer
      • Binary Diff
      • 查看 Binary 檔案內容
    • Process (進程)
    • 錯誤處理
  • OS
  • Async Hook
  • TCP
  • HTTP
    • 有關爬蟲
    • HTTP/2
    • HTTP Protocal
  • HTTPS
    • HTTPS 流程
    • SSL pinning
    • HTTPS 封包解密
    • 建立自簽發 HTTPS 證書
    • 幫網站加上HTTPS
    • HTTPS原理
  • Crypto加密
  • 有關繼承
  • JS 基本
    • JavaScript 迴圈與異步處理
  • 使用 Express
    • 上傳檔案
    • 圖片伺服器
    • 簡單範例
  • 使用 Nest.js
  • 使用MongoDB
    • 設置帳戶登入權限
    • Mongoose 框架
    • 進階Mongo
    • 基本環境操作
    • MongoDB Sharding
  • 使用MySQL
    • Schema 架構設計
    • SQL 語法
    • SQL Procedure
    • Node.js 操作 MySQL
    • 使用 Sequelize
      • DB Migration
      • function
  • 使用PostgreSQL
    • 常見問題
    • replica
    • 基本指令
    • 使用Node.js操控pg
    • SQL 基礎
  • 使用TypeORM
  • RethinkDB
  • CSS 深度探討
    • Width, Height
  • React
    • 第三方組件
      • Formik
    • styled component
    • propTypes
    • React webpack 部署
    • React util
    • 寫component並且publish
    • create-react-app
    • Context API
    • i18n
    • Server side render
    • Next.js教學
    • Higher order component 與 Recompose
    • component 間 互相存取
    • React hook
  • React router
    • 自己寫一個Router
  • Redux
    • Redux Toolkit
    • 小技巧
    • Redux sagas
    • compose
  • React Native
    • adb
    • InApp Billing
    • Icon
    • SVG
    • Firebase
      • Phone Auth
    • 自動化測試
    • Splash screen
    • Websocket
    • Googla OAuth
      • iOS
      • Android
    • Facebook OAuth
      • iOS
      • Android
    • IOS
    • 第三方組件
      • Auth Code Input
      • Country Code Picker
      • onboarding screen
      • Toast
    • ESlint
    • Push notification
    • Android 上架步驟
    • Expo
    • router
      • react-navigation套件
    • 原生組件
      • RefreshControl
      • Modal
      • Alert
      • button
      • KeyboardAvoidingView
      • Drawer
      • Image
    • 限制螢幕垂直與水平
    • NativeBase UI
    • Debug
    • 常見問題
    • Network
    • 硬體操作
      • 隱藏鍵盤
      • 地理位置
      • 相機與圖片庫存取
    • Async Storage
    • Animation
    • Admob
  • JS 模組化
  • 使用 Webpack
  • 使用 Babel
  • JWT Token
  • ES6 ES7 ES8
    • Array method
    • ES8 Async
    • ES6 Proxy
    • ES6 Object
    • ES6 Arrow function
    • ES6 Promise
    • ES6 Symbol
    • ES6 Generator
    • ES6 Set,Map
    • ES6 Class
  • 模板引擎
    • Mustache
    • Handlebars.js
    • EJS
  • ESLint
  • 部屬到OpenShift
  • OpenStack
  • OAuth
    • Twitter OAuth
    • Google authenticator
    • facebook oauth
      • facebook like ,share
    • google oauth
  • Redis
  • 做一個簡單的markdown editor
  • Websocket
    • WebSocket 相關 Protocol
  • Sublime 安裝套件
  • Google api
    • Cloud Run
    • speech api
    • place autocomplete
    • Geocode
    • Map
      • React map
    • vision api
    • Google-recaptcha
    • Google sheet
  • Instagram API
  • Markdown 與 code pretty js
  • HTML5
    • IntersectionObserver
    • HTML5 audio
    • HTML5 Video 與 WebRTC
      • WebRTC 進階
      • WebEX API
    • HTML5 IndexedDB
  • Google Cloud Platform (GCP)
    • Cloud Storage
    • Cloud storage 串接 Cloud CDN
  • Vim 編輯器
  • 使用nginx
    • config
  • Unix 實用指令
    • 新 VPS 安裝流程
    • Ubuntu 22 安裝
    • Shell Script 教學
  • Git 實用指令
    • Git hook
    • 加上 SSH-key 到 GitHub
    • GPG簽名
  • SSH 實用指令
  • 有關Fetch與axios與跨域請求
  • 圖片上傳相關
    • imgur API
  • JS 格式轉換
  • js trick
  • AWS
    • AWS EBS
    • AWS HTTPS 憑證
    • AWS Cloudfront、ELB、ACL
    • AWS Athena
    • AWS CloudWatch、SNS
    • AWS RDS
    • AWS lambda
      • 範例
      • 加上權限控管
    • AWS S3
    • AWS DynamoDB
      • 結合Lambda
    • 快速把 EC2 串上 AWS Cloudfront CDN
    • AWS 證照相關
  • 有關日期Date
  • VS code 編輯器
    • VSCode 外掛 Plugin
  • CI with Gitlab&Jenkins
  • API 測試
    • Postman
      • 設置 Postman 環境變數
    • API Blueprint
    • swagger
      • 註解寫在Code內生成swagger UI
  • Javascript 實用Lib
  • 遠端寫程式
  • Quicktime錄影注意事項
  • Web開發進階Bug
  • Web壓力測試
  • LineBot
  • PM2部署
  • i18n
  • VPN
  • Protocol Buffers
  • Docker教學
    • LXC LXD
    • Docker Compose
    • Docker 原理
    • Docker 指令
  • E2E Testing
    • Cypress
    • PlayWright
    • Puppeteer 與其他 UI 測試工具
  • Unit Test (Jest & enzyme)
    • React Testing Library
    • mocha
  • Cassandra
    • cluster
  • Distribute Web
    • Dat project
    • IPFS project
  • Cluster and Child_process
  • 打包應用程式
  • Java
    • 使用gradle結合docker
  • Debug 頁面
  • Proxy
  • Chrome extension
  • 消息系統
    • RabbitMQ
  • 金流串接
    • Paypal
    • spgateway智富通
    • Stripe 串接
  • 有關Log
  • 設定 feature flag
  • Azure
    • Face API
    • Image Analyze API
    • Azure Serverless
    • Cosmos DB
      • 使用 SDK
      • 以 RESTful 操作 DB
      • 一致性策略與 DB replicate
  • NodeBB 筆記
  • 瀏覽器快取與緩存(Etag, If-None-Match)
  • 瀏覽器快取與緩存(Expires, Last-modified, Cache-Control)
  • Node.js 第三方模組
    • OpenCV
  • Kubernetes
    • 本地測試 MiniKube
  • Ngrok 使用
  • Telegram MiniAPP 開發
  • Firebase 教學
  • 演算法筆記
  • 圖表
    • Echart
    • TradingView 圖表
    • D3
    • 熱力圖 heatmap
  • 後端緩存 Cache
  • 資料一致性
  • Web 安全機制
    • Cookie 與 LocalStorage
  • Vue
    • Element UI
    • Devtool
    • Vuex
    • Vue router
  • 相關網路協議
    • 網路 IP 基礎
    • Google Search 技巧
    • 網路診斷工具
    • IP
    • DNS
  • GitLab 與 Drone
  • SMTP、POP、IMAP
    • SendGrid
  • IPC
  • 串流服務
    • Twilio
    • Agora
  • 其他資源
  • GraphQL
  • Typescript
  • UI 相關資源
  • FFmpeg
  • Unity 遊戲開發筆記
  • Influx DB
  • Windows 相關
  • DALL·E 3
  • Coap
  • Slack API
  • 資訊安全
    • 破解 ZIP 密碼
Powered by GitBook
On this page
  • 推薦閱讀:
  • Here document
  • 查看 sh 執行期間的 log (xtrace)
  • 讀取 Node.js 專案版本
  • 移除包含檔案的目錄
  • Debian相關筆記
  • 搜尋資料夾
  • 創建多個路徑下的資料夾
  • 打開當前資料夾
  • 移動檔案,或是更改檔案名稱
  • 上傳檔案
  • 切換當前使用者
  • 加入環境變數
  • 列出資料夾裡面的大容量檔案
  • 找出當前資料夾的絕對路徑
  • 搜尋檔案
  • 順序執行script
  • 刪除遠端的目錄但不刪除本地
  • 讓程式在背景跑
  • OSX設定全域變數
  • 同步檔案
  • 修改Domain對應IP
  • 尋找檔案路徑
  • 列出所有PID
  • 開啟資料夾權限
  • 查看持續更新的 log
  • 建立別名
  • 查看檔案 LESS
  • 取得參數 xargs
  • 設置資源限制 Cgroup
  • 查詢網路傳送封包路徑與掉包
  • SSH tunnel
  • SSH 自動輸入密碼
  • 在本機下遠端指令

Was this helpful?

Edit on GitHub

Unix 實用指令

PreviousconfigNext新 VPS 安裝流程

Last updated 1 year ago

Was this helpful?

推薦閱讀:

Here document

用來創建檔案,並且檔案內容為多行

cat <<EOF >> setup_env.sh
#!/bin/bash

export APP_NAME=$APP_NAME

export ENVIRONMENT=$ENVIRONMENT

export IMAGE_NAME=$IMAGE_NAME

EOF

或使用

echo "Line 1
Line 2
Line 3" > myfile.txt

查看 sh 執行期間的 log (xtrace)

When set -o xtrace command in a shell script or shell session enables the "xtrace" option, which is also known as "set -x." When this option is enabled, the shell displays each command before it is executed, along with the values of variables and the results of command substitutions.

#!/bin/bash
set -o xtrace

# Your script commands go here

# Disable xtrace when you no longer need it
set +o xtrace

讀取 Node.js 專案版本

VERSION=$(node -p "require('./package.json').version")

移除包含檔案的目錄

sudo rm -rf folderName 或是Rf

無法使用cat組合檔案內容,產生permission deny時

sudo bash -c 'cat certificate.crt ca_bundle.crt >> bundle.crt'

Debian相關筆記

更改網路: /etc/network/interfaces
其中需設定如下: 1.ip 2.netmask 3. gateway
之後重啟網路: /etc/init.d/networking restart

apt-get update 之 url 位置: vim  /etc/apt/sources.list

dns位置  vim /etc/resolv.conf  範例:nameserver  192.168.0.1


----------------

apt-get update後出現public key問題

使用如下指令加入key 

($key為其error顯示的key號碼)
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys $key

如果出現一些lib版本不符合則輸入  apt-get -f install

目前nginx無法安裝  但可安裝apache2  (apt-get apache2)

----------------

使用git:

直接輸入apt-get install git

之後git clone時可能會出現不信任憑證的錯誤
輸入以下即可
git config --global http.sslverify false

之後git clone可正常執行

搜尋資料夾

find / -name "dir-name-here"

查看現在占用的PORT

sudo netstat -tulpn

OSX

lsof -nPi -sTCP:LISTEN
netstat -an | grep LISTEN

找出特定port的PID

lsof -i :port

(以下為給windows使用並可關閉指定port的process )

 C:\Users\username>netstat -o -n -a | findstr 0.0:3000
   TCP    0.0.0.0:3000      0.0.0.0:0              LISTENING       3116

C:\Users\username>taskkill /F /PID 3116

複製資料夾並移動

記得先mkdir

sudo cp -R  ~/Desktop/um1215-webclient/ ./um1215-webclient

創建多個路徑下的資料夾

如果不存在都會創建

mkdir -p

打開當前資料夾

open .

移動檔案,或是更改檔案名稱

mv <source> <dist>

上傳檔案

scp -i ~/Downloads/pem1.pem /path/file1 ubuntu@ec2-13-112-175-93.ap-northeast-1.compute.amazonaws.com:~/home

上傳資料夾(加上-r)

scp -i ~/Downloads/pem1.pem -r ./dist ubuntu@ec2-13-112-175-93.ap-northeast-1.compute.amazonaws.com:~/dist

切換當前使用者

 sudo su <username>

加入環境變數

Mac

假設原本要指定完整路徑才可執行檔案,可直接把他加入環境變數的PATH中

export PATH=/Volumes/FFmpeg\ 83544-g965f35b:$PATH

但這樣會在重啟terminal後變數就消失,並且把原本變數覆蓋,解決方法為加入bashrc

如使用zsh則是~/.zshrc

寫入path如下

export PATH=/usr/local/bin:/usr/local/sbin/:/usr/bin:/bin:/usr/sbin:/sbin:/usr/X11/bin:/Volumes/FFmpeg\ 83544-g965f35b

記得是用 : 分隔

之後重啟zsh

 . ~/.zshrc

Linux

但Linux的環境變數路徑可能寫在~/.profile,~/.bashrc或是 ~/.bash_profile

解決方法: 1.先輸入echo $PATH 現在的所有路徑變數,然後先複製起來

2.輸入~/.bashrc 在開頭寫export空一格把剛才的貼上,最後加上:然後加上你要加上的路徑及可

e.g.

export PATH=/home/eason/bin:/home/eason/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/eason/Desktop/bitcoin-0.14.1/bin

之後Reload 設定即可

source ~/.bashrc

列出資料夾裡面的大容量檔案

Linux 與 macOS:

sudo du -sh ./* | sort -h

或是

du -a * | sort -r -n | head -10

在mac中通常~/Library/Caches/會需刪除

以及刪除 docker images docker system prune -a

Windows :

forfiles /S /M * /C "cmd /c if @fsize GEQ 1073741824 echo @path"

或是 ( 推薦 )

powershell -command "$fso = new-object -com Scripting.FileSystemObject; gci -Directory | select @{l='Size'; e={$fso.GetFolder($_.FullName).Size}},FullName | sort Size -Descending | ft @{l='Size [MB]'; e={'{0:N2}    ' -f ($_.Size / 1MB)}},FullName"

找出當前資料夾的絕對路徑

[[ $1 = /* ]] && echo "$1" || echo "$PWD/${1#./}"

搜尋檔案

/意思為搜尋整台電腦,也可指定路徑

sudo find / -name "eng.traineddata"

順序執行script

各個指令後加入;,如果要同時執行則是&

刪除遠端的目錄但不刪除本地

git rm --cached <filename>
git rm --cached -r <dir_name>
git commit -m "Removed folder from repository"
git push origin master

讓程式在背景跑

有時沒加sudo關掉後會斷了

或是記得執行nohub後要先ctrl+c離開然後再關閉視窗

sudo nohup <command> &

功能是接到任何離開SIGHUP訊號都不會離開 並且會產生log文件(nohup.out)

OSX設定全域變數

vim /etc/paths

同步檔案

scp

scp -i private_key your_username@remotehost.edu:foobar.txt /some/local/directory

rsync

rsync --progress -r --exclude "node_modules/" --exclude  ".*/"  -e "ssh -i ~/Downloads/pem1.pem"  ubuntu@ec2-52-198-155-128.ap-northeast-1.compute.amazonaws.com:/home/ubuntu/ ./

更改螢幕解析度

Windows

下載nircmd,之後 cd 到執行檔目錄
nircmd.exe setdisplay 1920 1080 32

修改Domain對應IP

OSX:

sudo vim /private/etc/hosts

然後記得重整DNS cache

sudo dscacheutil -flushcache

尋找檔案路徑

sudo find / -name <檔案名稱>

列出所有PID

ps -A
或是
ps aux

開啟資料夾權限

sudo chmod -R 777 /Users//...

-R可開啟該資料夾底下所有檔案權限

查看持續更新的 log

-f 參數會持續更新顯示畫面

tail -f filename

建立別名

alias c='echo cc'

之後輸入 c 就會執行 echo cc

查看檔案 LESS

less 可以上下滾動,並且不會修改到檔案

less <filename>

取得參數 xargs

將前面的參數用 pipeline 傳給 xargs,然後用 less 查看

echo ./test.txt | xargs less

或是

echo a b c d e f | xargs

設置資源限制 Cgroup

建立 high 群組,cpu share 設為 2048
$ sudo mkdir /sys/fs/cgroup/cpu/high
$ sudo chown behappy:users -R /sys/fs/cgroup/cpu/high
$ echo 2048 > /sys/fs/cgroup/cpu/high/cpu.shares

查詢網路傳送封包路徑與掉包

brew install mtr
sudo mtr google.com

記得要用sudo

SSH tunnel

當你想要連線檔遠端電腦網路環境下的其他內網主機時,可以用 tunnel

以下假設想要連線到遠端電腦網域的 http://192.168.95.90:9090/ 為例子

ssh -NfD 1080 <遠端server ip>

用chrome 開啟

open --new -a "Google Chrome Canary" --args --proxy-server="socks5://localhost:1080" http://192.168.95.90:9090/

google chrome 正常版通常會阻擋 loopback ,建議用 canary 版本

-N : 不執行任何指令
-f : 在背景執行
-L : 將 local port 轉向
-R : 將 remote port 轉向
-D : socks proxy

SSH 自動輸入密碼

brew install hudochenkov/sshpass/sshpass
sshpass -p my_password ssh m_username@hostname

在本機下遠端指令

sshpass -p testpass ssh admin@192.168.4.125 "cd testt && git pull origin master && pm2 restart all"

可參考此篇文章

rsync可參考

http://www.cyberciti.biz/faq/howto-find-a-directory-linux-command/
http://www.yunweipai.com/archives/2305.html
http://www.techradar.com/how-to/computing/apple/terminal-101-using-the-find-command-1305633
https://blog.gtwang.org/linux/rsync-local-remote-file-synchronization-commands/
https://superuser.com/a/89360
https://www.inmotionhosting.com/support/website/how-to/how-to-edit-your-hosts-file-on-a-mac
http://guildwar23.blogspot.com/2013/01/linux-control-group.html
https://superuser.com/questions/1441133/google-chrome-ignorning-localhost-for-socks5-proxy
https://www.tecmint.com/10-most-dangerous-commands-you-should-never-execute-on-linux/
Linux tail 命令 | 菜鸟教程
the-art-of-command-line/README-zh-Hant.md at master · jlevy/the-art-of-command-lineGitHub
Logo
Logo