Ubuntu是常見的三大操做系統Windows、MacOS、Linux中,linux的其中一個發行版;linux系統有着種類繁雜的發行版,其中RedHet、CentOS、Ubuntu、Debian、Deepin(國人開發)等。
Linux主要應用於服務器操做系統,它相對與Windows更加的穩定和安全。html
linux 系統文件結構爲目錄樹結構,java
/ /home/vfx /root /bin /mnt /etc/ 根目錄,相似與windows的C盤,linux的/根目錄包含其餘全部的目錄,是其餘目錄的父級。 /home/vfx 用戶文件夾,在home下每當建立一個用戶,都會建立一個用戶文件夾,當前用戶是fx。 /root 管理員文件夾,每一個系統都有一個管理員,該用戶擁有當前系統的最高權限。 ......
linux文件的權限機制有利與保護系統的安全,避免用戶的誤操做。
對於普通用戶來講,可以操做和修改的文件僅限於當前用戶的文件,管理員則能夠管理包括系統文件在內的全部文件。python
例:列出home下fx用戶的全部項mysql
ls /home/vfx
模板 圖片 下載 桌面 snap
公共的 視頻 文檔 音樂 Documentslinux
tips:
在linux終端操做時可使用Tab來補全未寫全的命令,使用上下健來獲取操做命令歷史。redis
例:切換到home下的vfx目錄下sql
cd /home/vfx
tips:
linux的幾個特殊的目錄:
~ 表明當前用戶的主目錄
. 表明當前目錄
.. 表明上一級目錄
cd ~ 切換到主目錄
cd ~/home 切換到主目錄下home目錄下
cd ../maxman 切換到上一級目錄下一個名字叫maxman子目錄下shell
例:建立一個名字爲python的文件夾ubuntu
mkdir python
例:在home下建立一個名字爲maxman的文件夾vim
mkdir /home/maxman
建立多層文件夾(一次性建立多個層級嵌套的文件目錄樹) -p
mkdir -p /new/max/man
例:刪除maxman目錄
rm -rf maxman
這裏的r表示recursive遞歸刪除,f即是force強制刪除(謹慎使用)
例:複製maxman到用戶目錄下
cp -rf maxman /home/vfx
例:重命名maxman爲houdini
mv maxman houdini
這是manman目錄就會變爲houdini,若是houdini已經存在,則自動變爲houdini1或者houdini...
tar -cvf maxman.tar maxman
-cvf打包,其中c表示create建立檔案,v表示verbose顯示詳情,f表示文件
也能夠一次打包多個文件"tar -cvf xxx.tar file0 file1 file2"
tar -xvf maxman.tar -C /home/manman
-xvf解包,其中-C(大寫)用來指定解包後文件要存放的地址,不指定默認解包到當前目錄下
歸檔並壓縮
-cfx -xvf
只是對文件目錄進行打包和解包,沒有對文件進行壓縮;
-czvf -xzvf
則是在打包或解包時同時對文件進行壓縮和解壓縮處理;
一般所見到的*.tar.gz格式就是壓縮打包形式
使用ln命令(link)來建立軟連接
ln -s source link
其中,-s表示soft軟連接(默認爲硬)
ln -s maxman /home/vfx/桌面/manman
鏈接maxman到桌面的maxman
vi/vim,是一個基於控制檯的文本編輯器,vim是vi的升級版
gedit,是一個基於GUI的文本編輯器
vim name.txt #打開name.txt文件,若是該文件存在則打開編輯,若是不存在則建立後打開
若是系統上沒有vim,可使用"sudo apt install vim"安裝
模式的切換
編輯模式Insert Mode 按鍵盤i鍵進入
命令模式Command Mode 按鍵盤ESC鍵進入
保存和退出命令
:wq 保存並推出
:q 退出
:q! 強制退出
:qw! 強制保存退出
vim 是一個全鍵盤操做的文本編輯器,工做效率比較底,掌握基本的用法便可,若是須要了解更多複雜的操做能夠到網絡上臨時搜索用法便可
本人推薦使用vscode簡單、強大、漂亮
添加用戶
sudo useradd -m username
sudo表示使用管理員的身份執行操做,-m表示在/home下添加用戶目錄
刪除用戶
sudo userdel username
修改用戶密碼
sudo passwd username
除了管理員,還有特殊用戶和普通用戶的區別,區別在於特殊用戶能夠在命令前加sudo來暫時使用管理員權限,普通用戶則不能夠;能使用sudo權限的用戶爲sudoer
首次使用root用戶須要設置管理員密碼
sudo passwd root
切換到root用戶
su root
su表示switch user
退出管理員權限
exit
ls -l
-rwxrwxrwx
drwxrwxr-x
使用ls -l 能夠列出文件的權限信息,列出的字符中前面的十個字符第一個(紅色)表示文件類型,-表示文件,d表示目錄,l表示連接;而後剩下的九個三個爲一組分別表示當前用戶的權限、同組用戶對該文件的權限、其餘用戶對該文件的權限;
r表示可讀,w表示可寫,x表示可執行,每一組都用rwx來表示權限,-表示權限禁止;
rxw可讀可寫可執行 rx-可讀可寫不可執行 r--可讀不可寫不可執行 ---不可讀不可寫不可執行
chmod,即change file mode 修改文件的訪問權限
好比,一個文件想讓其餘用戶可寫
chmod o+w file
其中,o表示其餘人;+w表示增寫write權限;-w表示除去寫入write權限
a表示全部人;u表示當前用戶;若是w前不指定對象,則表示應用與當前用戶及其所在組用戶的權限
chown,即change owner修改文件的屬性
通常來講,每一個用戶都只對本身的文件進行操做,不多使用到這個命令
chown -R vfx /opt/maxman
將/opt/maxman目錄(-R及其子目錄)的屬主改成vfx用戶
腳本Script,一種解釋執行的程序。
Linux下常見的三種腳本程序
-shell腳本 *.sh
-Pell腳本 *.pl
-Python腳本 *.py
shell腳本,是linux自帶的腳本語言,相似與windows下的dos批處理腳本
#!/bin/sh echo "hello,world"
一個簡單的打印hello world的shell腳本
chmod +x hello.sh
添加執行權限
./hello.sh
執行shell腳本
書寫shel腳本時第一行要聲明(#!/bin/sh)解釋器,要擁有執行權限纔可執行
典型的環境變量,PATH,JAVA_HOME
#!/bin/sh OUTDIR=/opt #定義變量 echo"output to : ${OUTDIR}" #使用變量 ls ${OUTDIR}
定義變量NAME=alue等號的左右兩側不要有空格
使用\({NAME}來調用變量,若是有定界符,則能夠簡寫爲\)NAME,例如 echo ${NAME}/build
經常使用命令 exho打印 ls列出目錄 cd跳轉位置 cp複製文件目錄
if邏輯判斷 while循環邏輯
export OUTDIR=/opt #環境變量的定義 echo ${OUTDIR} #顯示環境變量 printenv #顯示當前系統的全部環境變量
在命令行中定義的環境變量,只有對當前shell終端有效;當終端關閉、重啓後消失;
tips:使用"ls -a"能夠查看當前目錄下的全部文件(包括隱藏文件)
gedit ~/.profile #打開.profile用戶隱藏文件件 export PLUGIN_PATH=/opt/houdini_plugin #添加自定義變量到.profile內 echo $PLUGIN_PATH #註銷或重啓系統後生效
經過.profile添加的環境變量,對當前用戶有效,每一個有戶都有本身的.profile文件;有的linux系統中使用的是.bash_profile文件
系統環境變量定義在"/etc/profile"文件中,在這裏定義的環境變量對當前系統下的全部用戶有效
sudo gedit /etc/profile #通常不會直接修改/etc/profile,而是在/etc/profile.d建立一個自定義的腳本 sudo gedit /etc/profile.d #添加自定義全局變量到/etc/profile.d目錄下 sudo gedit /etc/profile.d/new.sh #建立一個名字爲new.sh的腳本,在上面添加自定義全局變量export PATH=/opt/hfs18.5.358
註銷重啓後生效
PATH,最多見的一個環境變量,用於描述可執行程序的搜索路徑
echo $PATH #顯示當前系統PATH環境變量
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
每一個路徑用冒號隔開
#!/bin/sh export PATH=$PATH:/opt/houdini_plugin
這裏$PATH引入當前已有的變量,不引入會覆蓋以前的PATH
sbin目錄下的爲超級管理員root才能夠執行的程序
/usr/下是系統自帶的程序
/usr/local/下是用戶安裝的程序
ifconfig #查看當前網絡配置,默認系統沒有安裝」sudo apt install net-tools「
ifconfig會列出當前系統全部的網絡接口及接口的狀態信息,其中if表示interface網絡接口;第一行冒號前面的字符就是網絡接口的名字
sudo ifconfig xxxx up #開啓網絡接口 sudo ifconfig xxxx down #關閉網絡接口
在部署網站等須要使用到雲服務器操做時,都會將本地的文件上傳到雲服務器上,這時就須要使用網絡傳輸的方式將文件部署到雲端。
網絡傳輸通常有FTP、SFTP兩種方式。
客戶端 FileZilla(Windows)
服務器 vsftpd(Ubuntu)
略......
使用Xshll遠程登錄
使用Xftp傳輸文件
略......
文本文件的換行符
Windows: \r\n
Linux: \n
程序Program:指一個程序文件,如houdini.exe
進程Process:但一個程序在系統上運行是,系統會建立一條用來描述程序運行狀態的記錄,這個記錄就叫作進程
ps -ef查看系統全部進程
User執行者,PID進程ID,PPID父進程ID,STIME啓動時間,CMD啓動時調用的命令行
ps -ef | grep houdini #vfx 43668 1538 82 11:56 ? 00:00:13 /opt/hfs18.5.351/bin/houdinifx-bin #vfx 43738 39606 0 11:57 pts/0 00:00:00 grep (省略) -dir=.tox houdini
按名字查找進程,"ps -ef"將讀取的信息輸出,重定向給"grep"命令進行過濾處理
ps -ef | grep xxxx 經常使用命令,必記
使用top命令動態查看系統進程
top
按上下鍵翻閱或者PaUp和PaDn翻頁預覽
按q或者CLRT+C終止退出
top | grep houdini #查看houdini動態進程 top - p 43668 #"top -p PID"能夠查看進程詳細的使用狀態
top -p xxxx 經常使用命令,必記
使用kill殺死終結系統進程
kill -9 PID #PID進程id號,使用"ps -ef"查看
使用pkill查找並殺死終結系統進程
Ctrl+C 終止進程
差別1:有無控制檯
前臺進程,有控制檯,運行結果輸出至當前終端
後臺進程,無控制檯,看不到輸出(運行狀態)
差別2:有無父進程
前臺進程,有父進程,父進程即當前終端;當終端關閉時,進程被一同關閉
後臺進程,有父進程,父進程爲系統進程(1號進程);當終端關閉時,後臺進程不受影響
xxxx run之前臺方式運行
xxxx start之後臺方式運行
MySQL跨平臺,"免費"
MariaDB是MySQL的免費開源版本
MySQL安裝配置
特別感謝阿發你好提供的學習資料