Ubuntu16升級到18.04
「」「
有特殊新穎強迫症癖好能夠升下,若是你以爲16.04好用,就根本不必升了
」「」
我當時租的 雲服務器一般都是16.04,如今估計也是16.04較多
我是個Python3的玩家, 我只想用Python的最新版,或最新標準版3.6-3.7
道理很簡單,我追求新穎,雖然新版不穩定,可是你能夠嚐鮮並領先於別人。。。
廢話很少說:
Ubuntu16.04: 默認裝的是Python2.7 + Python3.4 或3.5
Ubuntu18.04: 默認裝的是Python2.7 + Python3.6.+
我喜歡升級系統版原本直接讓對應軟件升級:
lsb_release -a # 查看系統版本
apt update # 一路選Y
apt dist-upgrade
apt autoremove # 一路選Y
apt install update-manager-core # 比較重要
do-release-upgrade -d # 完事
注:
若是其中某個命令過程彈出一個黑窗口讓你選擇, 我記得有個
core-new-update 字眼的,選這個便可 # 選擇 新 核心
vim多行註釋(Python爲例)
Ubuntu是確定能夠用, CentOS我記得好像用不了
直接一套連招:
註釋:
1. ctrl + v
2. 按 下 箭頭方向鍵,選中多行
3. shift + i
4. 輸入 #
5. 按兩下 ESC鍵
取消註釋:
1. ctrl + v
2. 按 下 箭頭方向鍵,選中多行
3. 按 x 鍵
注: 此套連招,須要熟練度, 若是不行就多練練。 手很差使,就不要怪我了~~~~
vimrc簡單配置:
「」「
tab = 4縮進,
設置行號
基於文件名的簡單語法高亮
不要想着刪一行,直接打開vimrc 所有複製上去,保存退出就能夠用了
」「」
vi ~/.vimrc
syntax on
set nu
set expandtab
set tabstop=4
set shiftwidth=4
set softtabstop=4
locate查詢庫
locate xxx # 雖然很簡單的命令,可是若是,一直爲下線,而且還想查找新東西,那麼須要更新庫
updatedb # 更新搜索庫, 完事
若是 updatedb命令出錯,那就安裝一下 mlocate就行了:
yum/apt-get install mlocate
htop查看服務器負載
ubuntu/centos中有
top : 此命令能夠詳細查看服務器各類負載,資源情況,可是看着不方便,很是費勁
htop : top的升級版, 容易看出資源消耗狀況
若是未安裝,可經過
apt-get/yum install htop 安裝
htop -d 0.1 # 0.1秒動態更新一次資源數據。 看起來有一點炫。
pkill
ps -el 查看 PId + kill -9 PID # 這套連招可強制殺死一個進程
但假如你有一連串的python進程 想要 所有KILL
pkill python # 完事,和python有關的全KILL掉了,也能夠經過通配符* 的方式來簡寫
patree列出進程
tree: 此命令用來列出目錄層級結構
pstree: 用來列出 正在運行的 程序(全部進程的層級結構,進程名)
pstree -p: 以層級的方式,不只列出進程名, 還列出全部進程的(PID)
alias更名
vi /etc/profile
alias python='python3' # 這裏是舉個例子,配完,python命令就等價於 python3命令
alias pip='pip3'
source /etc/profile # 不要忘記,這條命令 更新一下配置文件
重定向管道 ( > 與 tee )
date > date.txt # 截流, 屏幕上不顯示
date | tee date.txt # 不截流, 屏幕上顯示, 而且還能輸入到文件
! 歎號命令
」「
!命令前綴 : 運行最後一條以這個前綴開頭的命令
」「
假以下面是你最後按順序再command終端 輸入的四條命令:
python aaa.py
python bbb.py
npm run dev
pip install ccc
需求:你想迅速運行 python bbb.py這條命令
你只需
!py # 便可, 愣着幹啥呢, 已經完事了,這條命令就等於你上面那一大串
解惑:
1. !py -> py開頭的有兩條,爲啥不執行第一條 python aaa.py
由於 ! 歎號 的語法意思就是選擇 最後出現以py開頭的執行。
2. 爲啥直接 !p 不行呢?
由於以p開頭的最後一條命令是 pip install ccc。 這也不是你想要的啊。
ctrl+z 和 & 和 nohup 和 screen
ctrl+c: 強制終止(最經常使用的,先提出來。。。。 應該都知道的。。)
ctrl+z: 能夠把正在運行中的程序掛起到後臺(注意這時候程序就暫停了)
jobs: 粗略列出 後臺掛起的程序
jobs -l: 詳細列出 後臺掛起的程序 (其實就是多列出了個PID)
kill -9 PID # 順水推舟地使用此命令來經過 PID 幹掉後臺掛起的程序
fg: 把掛起的後臺的程序 拿回來繼續執行
fg 程序編號: 若是有多個後臺掛起的程序,選擇一個繼續執行,編號可經過 jobs 查看。
使用場景:
加入正在 vim 編輯東西,想跳出編輯器,寫點別的,那麼能夠 進行下面操做:
不要保存, 直接 ctrl+z
而後去 作別的事
作完了想回到 vim繼續編輯剩下的內容, 直接 fg
&: 運行 的 時刻 就直接 放到後臺 (不實用)
eg: (一般是費時的操做,或者長時間佔用 command命令行)
sleep 100 & # 這樣費時100秒的操做,直接讓它滾去後臺執行,別佔我地方
侷限:
假如你用 python xxxx.py & 運行一個web服務器,雖然它會滾去後臺一直運行。
前臺command界面看起來很乾淨了。
可是,若是有用戶請求過來, 你服務器收到打印在終端的信息 可不會乖乖打印在後臺。
打印信息會鑽出來到前臺command界面來噁心你。。。。。
爲了解決這一問題, 請移步 下面 ...
nohup: (一般和 上面的 & 聯合使用) (實用性通常)
eg: 一樣運行一個服務器
nohup python xxx.py &
# 它會乖乖的滾去後臺執行,而且將要打印的消息 也不會打印到前臺,也不會打印到後臺。
那打印的內容去哪了呢??
nohup會自動給你 把打印的東西重定向 到一個 nohup.out文件,一般在當前目錄下
# 這時你的前臺command 就不會受到 騷擾了。。。。
也許你覺得它很好用了,能夠完美的決絕運行一個費時的進程。可是 它依然是個 loser。。.
侷限:
當我一直用 nohup.out 部署一些服務程序的時候,一部署就是不少天。
當時學校斷電(我租的阿里雲ECS服務器). 雖然服務器能夠不間斷的執行。
可是 我須要 用 xshell 一直去遠程 查看個人 程序運行的怎麼樣了啊, 是否崩了?
惋惜的是,每次xshell關閉了,你再上去, 想找 經過 nohup & 連招 放到後臺程序的時候,
你會痛苦無比。。。很是慘
後來。。。。。。。。。
screen: (會話機制)
沒錯,後來我就發現了 這個 screen工具
若是你那裏沒有,就安裝一下嘍: apt-get / yum install screen
而後須要配置一下:
vi ~/.screenrc # 建立文件
shell -$SHELL # 輸入此行內容,保存退出
至於爲什麼配置這個: 說實話我有點忘了
貌似不一樣screen會話對於不一樣的shell 權限有限制,致使不少東西用不了,so do it
直接說一套我經常使用且超級實用連招把:
eg:
screen -S 會話名 # 建立 並 進入這個會話(就像進入另外一個世界,但資源共享)
python xxx.py # 舉例子,這是個人爬蟲程序,須要運行 三天
ctrl + a + d # 跳出會話,回到正常命令行,可是這個會話以及你的程序依然在運行,
....... 這段時間(除了關閉服務器)你作什麼都行,關閉 shell也能夠的。
screen -r 上面的會話名 # 恢復到會話中, 你會發現,爬蟲程序還在那裏好好的運行呢。
若是你忘記會話名了,沒關係:
screen -ls # 這條命令會列出全部 你建立過的會話,你也能夠看到會話名
總結:
因此,我不知道閣下能不能感覺到 screen的魅力。
咱們能夠 經過 screen -r 這一條命令來 迅速回到程序運行的環境。
nohup &: 你用這個執行的程序,關了 xshell, 你再連,你就很差找這個運行的程序了
screen 有一套無缺的系統(就像有開關同樣)來控制會話
你進入screen會話中寫程序,screen 天然就能有條不紊的管理好 你程序的運行狀態
舉個白話例子:
你正遛二哈呢,忽然有急事:
nohup & : 你說:‘二哈,等我回來,本身玩把’
你回來時, 二哈跑丟了。 (不受控制,程序找不到了,雖然能夠花力氣找到)
screen : 你說:‘二哈,等我回來,本身玩吧,但我要把你拴起來’
你回來時, 二哈還在那裏乖乖的玩。(程序有效的受到控制,你能夠輕鬆定位)
sudo su等操做
很差意思,用了好幾年linux:
什麼 su- su 之類的, 我至今都沒搞太明白。。。。。。。。。。
可是,我只用下面這一條命令,這些年就沒遇到過問題:
sudo -s # 變爲root, 若是你以前輸入過密碼, 這條命令還會免去讓你輸入密碼的環節
環境變量
把某路徑加入到環境變量中:
vi /etc/profile
export PATH=$PATH:/XXX/XX
作一些配置:
vi /etc/profile
vi ~/.bashrc
等修改完後
source /etc/profile # 用一個 source 命令執行一下使配置更新生效
注: Linux-shell我研究的不深,因此這裏可能有些說的不是特別明朗。
其實 這些配置文件 以及 source . sh bash 這些命令 和 用戶 以及權限等都是有很大關係的。
有興趣可自行深刻了解
激活Ubuntu的root用戶
也許你ubuntu只能用root權限
但你不能使用root用戶登陸,或不能使用root用戶進行ssh鏈接
ubuntu實際上是存在 root 用戶的, 不用建立,給個密碼就能直接使用
sudo passwd root
root用戶遠程SSH鏈接
假如你的 xshell 鏈接不上遠程服務器, 可能未開啓 或 未安裝 sshd服務
以下命令便可:
sudo apt-get install ssh
systemctl start ssh
若是你想要用root用戶直接ssh鏈接, 可做以下配置:
sudo vim /etc/ssh/sshd_config
PermitRootLogin yes
systemctl restart ssh
MySQL5.7+/MariaDB修改密碼小坑
當閣下還在停留在Mysql5.7版本以前,修改密碼能夠用下面這兩種方式:
mysqladmin -uroot password -p
或內部設置:
update user set password=password('root') where user='root'
可是 MySQL5.7 以後 或者 MariaDB ,上面這倆方法 都不能 修改密碼了。
正確修改方式:
先進入MySQL交互式: MySQL -uroot -p
update mysql.user set authentication_string=password("密碼") where user="用戶名"
update user set plugin="mysql_native_password";
flush privileges
最後重啓服務, 完事
另外,值得提醒的一點容易出現的問題:
不管你鏈接的是什麼數據庫,若是你連不上
首先你應該想到的是,數據庫配置文件:
bind 0.0.0.0 # 每種數據庫幾乎都須要先改爲這樣,才能被外界訪問
其次,你用的是雲服務器的話
看看是否放通了 對應數據庫的寬口
最後,是否開了防火牆:
沒記錯的話,Centos 和 Ubuntu 防火牆不是同一種,真正須要關閉可自行百度
其餘命令
"""
一時間也記不起來還用過哪些了
"""
wc : 統計字,詞,行(本身選參數)
curl : 能夠請求 url,並返回數據(至關於一個小小爬蟲),也能夠向某個接口發送請求
ssh-keygen :生成公私密鑰
cd - : 跳回到上一次的路徑
lsb_release -a : 查看Linux發行版信息
grep : 過濾字符
tar : 壓縮/解壓
netstat : 查端口
等