㈠ ubuntu基本操作
ls , 即 list, 列出目錄下的所有項示例:
查看當前目錄 ls
查看 /home/shaofa 目錄 ls /home/shaofa
以詳細模式查看 ls -l /home/shaofa 其中,-l 為參數,參數一般以 - 開頭
1 在輸入命令和路徑時,按 TAB 鍵可以自動補全ls /ho ls /home
2 輸入歷史可以翻閱 按 ↑ ↓ 箭頭鍵可以上下翻閱
3 宿主機 與 虛擬機之間可以拷貝粘貼,一般情況下,文本和文件都可以拷貝
pwd , 即 print working directory 顯示當前工作目錄
cd , 即 change directory , 切換目錄
示例:切換到用戶主目錄
cd 切換到某個目錄
cd /home/shaofa/example
幾個特殊的目錄:
~ 代表當前用戶的主目錄
. 代表當前目錄
.. 代表上一級目錄
cd ~ 切換到主目錄
cd ~/example 切換到主目錄下的example目錄
cd ../www 切換到上級目錄、再到www子目錄
mkdir ,即 make directory 創建目錄
mkdir abc
mkdir -p abc/123/test
使用 -p 參數,可以將路徑的層次目錄全部創建
rmdir ,即 remove directory 刪除空目錄
rmdir abc
如果目錄非空,則刪除失敗
tar , 即 tape archive 檔案打包
創建檔案包
tar -cvf example.tar example
其中,
c , 表示 create 創建檔案
v , 表示 verbose 顯示詳情
f , 表示 file
也可以多個目錄打包 tar -cvf xxx.tar file1 file2 file3
還原檔案包
tar -xvf example.tar
tar -xvf example.tar -C outdir
其中,-C 參數指定目標目錄,默認解到當前目錄下
先前的tar格式並沒有壓縮,體積較大
並檔並壓縮
tar -zcvf example.tar.gz example
解壓縮
tar -zxvf example.tar.gz
tar -zxvf example.tar.gz -C outdir
通常我們所見的,都是 *.tar.gz 這種格式
軟鏈接,即 Windows 下的 "快捷方式"
使用 ln 命令 (link) 來創建軟鏈接
ln -s source link
其中,-s 表示 soft 軟鏈接 ( 默認為硬 )比如
ln -s example example2
軟鏈接的特點:
1 刪除軟體接,對原文件沒有影響
2 刪除原文件,則軟鏈接失效
以 ls -l 查看文件詳情時,可以看到目標路徑
比如,ls -l /
可以發現,/bin 實際指向的是 /usr/bin 目錄
比如,添加一個用戶
sudo useradd -m test1
其中,sudo, 表示以管理員身份執行
1 添加用戶
sudo useradd -m test1
其中,-m參數表示在 /home 下添加用戶目錄
2 修改用戶密碼
sudo passwd test1
3 刪除用戶
sudo userdel test1
1 在登錄系統時,默認不允許以 root 用戶登錄
2 只有特殊的用戶,才能執行 sudo
比如,yanjingliang可以執行sudo,但test1不行
linux下,把能執行sudo命令的用戶叫 sudoer
超級用戶 root
類似於 Windows 下的 Administrator 用戶
切換到 root 用戶,有全部許可權,可以直接 useradd 等命令
1首次使用時,需要給 root 設置密碼
sudo passwd root
2 切換到 root 用戶
su root
其中,su 表示 switch user
3 退出
exit
su root 僅僅對當前會話 (終端) 有效,不影響當前桌面環境,root 權力太大,需要小心使用
Linux 下可以創建多個用戶,可以用組進行管理用戶。
比如:
男生組 boys
ming bo gang qiang
女生組 girls
fang hong yue yuan
創建組 groupadd boys
創建用戶 useradd -m -g boys ming
其中,-g表示在添加用戶,同時將用戶加到boys組
修改現有用戶到新的組 usermod -g boys shaofa
其中,usermod表示修改用戶信息
如何查看用戶和組?
cat /etc/group
每一行表示一個group的信息,名稱 + ID
如何查看用戶列表?
cat /etc/passwd
每一行表示一個用戶的信息
用戶不多時,管理的時候並不使用組的概念
useradd a1
useradd b1
一個root,兩個普通用戶a1, b1 ,夠用了!
默認地,會給a1用戶建立一個同名的組a1 ,也就是說這個組里只有他一個人。
默認地,無法以root登錄 Ubuntu的桌面環境。本文檔介紹如何設置,才能以root來登錄面。一、設置root密碼
首次執行時,需要修改root密碼
sudo passwd root
此時,root已經設置了密碼,但是還不能用root登錄桌面。
二、修改配置
按以下步驟,執行
1:
su root 在終端里 切換到 root用戶
2 :
gedit /etc/pam.d/gdm-autologin
在這一行前面加一個#
#auth required pam_succeed_if.so user != root quiet_success
關閉並保存
3:
gedit /etc/pam.d/gdm-password
在這一行前面加一個#
#auth required pam_succeed_if.so user != root quiet_success
關閉並保存
4:
關閉虛擬機,重啟後生效
三、以root登錄桌面
在登錄界面,點下面的』未列出'
手工輸入用戶名root,登錄
考慮以下幾個方面:
- owner : 文件的屬主 owner
- r : 文件是否可讀 read
- w : 文件是否可寫 write
- x: 文件是否可以執行 excute
使用 ls 命令查看一個文件
ls -l simple.txt
-rw-r--r--. 1 shaofa shaofa 13 4月 21 03:48 simple.txt
其中,rw-r--r-- 表示該文件的訪問許可權
chmod , 即change file mode 修改文件的訪問許可權
比如,一個文件abc.txt ,想讓別人也能修改
chmod o+w simple.txt
其中,o ,表示 other 別人
+w ,表示增寫 write 許可權
chmod a+w abc.txt
所有人 all 添加w許可權
chmod a-w abc.txt
所有人減去w許可權
chmod u+w abc.txt
僅用戶 user 自己的許可權 +w
chmod o-w simple.txt
修改別人 other 的許可權 -w
只有文件的屬主或者root 可以修改文件許可權
省略寫法
chmod +w simple.txt
chmod -w simple.txt
默認是修改自己和本組的許可權
chown , 即change owner 修改文件的屬主
一般來說,每個用戶只操作自己的用戶目錄
所以 chown 命令並不常用
示例:
1 在 /opt 目錄下建立一個文件夾 software
2 將 software 目錄分配給用戶 shaofa
su root
mkdir /opt/software
chown -R shaofa /opt/software
ls -ld /opt/software
只有文件的 owner 和 root 才有權更改屬主
腳本 Script ,一種解釋執行的程序
Linux 下常見的三種腳本程序
- Shell 腳本 *.sh
- Perl 腳本 *.pl
- python 腳本 *.py
腳本程序,本質是一個文本文件
1 它是一個文本文件
2 它具有可執行許可權
腳本程序都是由解釋器來執行的
Shell腳本解釋器: /bin/sh
Perl腳本解釋器: /bin/perl
Python腳本解釋器:/bin/python3
執行一個腳本時,以下兩種方式等效
./hello.py
/bin/python3 hello.py
Shell腳本,按Shell的語法寫出來的腳本
是 Linux 自帶的腳本語言
相當於Windows下的 DOS 批處理腳本
1 編輯一個文本文件,保存為 hello.sh
#!/bin/sh
echo "hello,world"
2 添加可執行許可權
chmod +x hello.sh
3 執行程序
./hello.sh
/bin/sh hello.sh
注意:
1 第一行必須聲明解釋器
#!/bin/sh
2 必須有 x 許可權,才能夠執行
比如,一個程序只有作者執行,別人不能執行
rwxr--r--
3 執行程序時,必須加上路徑
./hello.sh
/home/shaofa/hello.sh
Python腳本,比Shell要強大一些,對於 C / java 工程師,
1 編輯一個文本文件,
#!/bin/python3
print("hello,word")
保存為 hello.py
2 添加可執行許可權 chmod +x hello.py
3 執行程序 ./hello.py
環境變數,就是存在當前環境中的變數
定義環境變數 export OUTDIR=/opt/
顯示環境變數 echo ${OUTDIR}
查看所有環境變數 printenv
環境變數的使用:
可以在當前終端中使用
可以在 SHELL 腳本中調用
在命令行中定義的環境變數,只對當前SHELL終端有效
當關閉終端後,重啟後就消失了
用戶環境變數:定義在 ~/.profile 中
在主目錄下查看隱藏文件 ls -la
其中,a 表示 all ,顯示所有文件
註:在Linux下,以 . 開頭的文件為 隱藏文件
1 用文本編輯器打開 ~/. profile
gedit ~/.profile
2 添加
export JAVA_HOME=/opt/jdk1.8
保存並關閉
3 注銷,重新登錄後生效
echo $JAVA_HOME
原理:當用戶打開終端時,會自動運行 .profile ,將變數注入到當前環境中。
注意:
1 以點號 . 開頭的文件為隱藏文件
ls -a 查看所有文件
2 此配置只對當前用戶有效
因為每個用戶都有自己的配置文件 .profile
3 有的Linux系統上,使用 .bash_profile
系統環境變數:定義在 /etc/profile 中
此中的環境變數對 所有用戶 有效
以 root 身份執行
gedit /etc/profile
但是,一般不直接修改 /etc/profile
而是在 /etc/profile.d/ 創建一個自定義的腳本
1 用 gedit 創建一個腳本
gedit /etc/profile.d/myprofile.sh
2 定義環境變數
export TOMCAT=/opt/tomcat
3 注銷並重新登錄
重新登錄後,環境變數生效
PATH,最常見的一個環境變數
用於描述可執行程序的搜索路徑
查看path中的配置目錄 echo $PATH
多個路徑之間以冒號分隔
usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin
默認地,系統從以下目錄中搜索可執行程序
/usr/bin 比如,/usr/bin/tar
/usr/sbin 比如,/usr/sbin/useradd
/usr/local/bin
/usr/local/sbin
其中, sbin 為超級用戶 root 才能執行的程序
/usr/ 下系統自帶的程序, /usr/local/ 是用戶安裝的程序
演示:修改PATH環境變數。。。
1 編輯 /etc/profile.d/myprofile.sh
設定 PATH 環境變數
export PATH=$PATH:/opt/tomcat/bin
2 注銷,重新登錄後生效
在終端里,以命令行方式來配置網路
常用命令: ifconfig , netstat 等
默認地,Ubuntu 下面不帶 ifconfig 命令
需要使用 apt 軟體包管理器
apt install net-tools 安裝一個軟體包
apt remove net-tools 移除一個軟體包
apt search xxx 搜索
apt list | grep xxx 列表
如果出現:
E: 無法定位軟體包問題」
解決:輸入 sudo apt-get update 更新一些軟體源。
1 查看網路配置
ifconfig
其中,if 表示 interface 網路介面
會列出所有的網路介面,及各個介面的狀態
2 開啟/禁用網路
sudo ifconfig xxx up
sudo ifconfig xxx down
vi / vim , 一個基於控制台的文本編輯器
gedit , 一個基於GUI的文本編輯器
其中,vim 是 vi 的升級版, 演示使用 vim 命令
1 打開文本編輯
vim abc.txt
如果目標文件存在,則打開編輯;如果不存在,會新建一個文件
如果系統上沒有 vim ,就安裝一下:
sudo apt install vim
2 切換模式
編輯模式 Insert Mode: 按 i 鍵
命令模式 Command Mode: 按 ESC 鍵
3 退出編輯
1、按 ESC 鍵,進入命令模式
2、輸入 :wq 保存並退出
3、輸入 :q 退出
4、輸入 :q! 強制退出 ( 放棄保存 )
Linux文本文件的編輯
1 桌面環境:gedit
2 終端環境:
- 少量修改 : vim
- 大量修改 : 在 Windows上編輯,然後上傳到Linux
推薦:在 Windows上編輯,然後上傳到 Linux
使用 notepad ++ 或者其他的專業編輯器
文本文件的換行符
Windows : \r\n
Linux : \n
可以在 Notepad ++ 里觀察到此區別
視圖 | 顯示符號 | 顯示行尾符
換行符的轉換:
編輯 | 文檔格式轉換 | 轉換為 UNIX格式
注意:只有在編輯 SHELL 腳本時,才需要轉換
其他格式的文件一般都不需要轉換,如*.xml, *.java
在 Ubuntu上面運行:
dos2unix xxx.sh
也可以將 xxx.sh轉成 UNIX的換行風格( \n )
如果系統里沒有這個命令,可以安裝一下:
sudo apt install dos2unix
Shell腳本的編輯 。。
1 用 Notepad++打開編輯 mytest.sh
2 轉成 Unix格式 \n
3 上傳至Linux
4 chmod +x mytest.sh
5 運行 ./mytest.sh
程序 Program:指一個程序文件,如 notepad.exe
進程 Process:當一個程序運行起來,在操作系統內創建一條記錄,
用於描述和控制它的運行
比如,打開多個 notepad.exe ,則得到多個進程
查看進程命令:
ps -ef
其中,各個欄位的含義:
UID : 執行者
PID : 進程ID
PPID : 父進程ID
STIME : 啟動時間
CMD : 啟動時調用的命令行
㈡ ubuntu16.04怎麼搭建python開發環境
簡述
原來在windows下實現的python code,因為業務需要,要將其放到Ubuntu(其實是Linux)下來進行開發和demo。因此安裝了目前最新的Ubuntu16.04 64bit系統,並搭建帶有GUI的python開發環境。
環境與工具選擇
最終確認選擇「Ubuntu16.04(64 bit)+ Python3.5 + Qt5.7.0 + SIP4.18.1 + PyQt5.7 + QScintilla2.9.2 + Eric6.0 」
首先Ubuntu16.04是默認安裝了python2.7和python3.5的,因此python這部分就可以不需要安裝了。因為涉及GUI的開發,所以要准備pyqt的環境等東西。查看系統python版本:
python
python3
python3.5
另外,需要安裝一個python模塊:
sudo apt-get install python3-dev
否則後面的SIP安裝會有找不到python.h的錯誤提示。
QT安裝
軟體安裝
可以從官網下載,也可以從http://download.qt.io/archive/qt/下載,我下載了5.7.0的Linux 64bit版本,是一個.run文件。
使用上面的兩行命令,進行安裝,此時會彈出安裝對話框:
然後按照提示一步步選擇即可:
安裝完成後,可以直接打開QT Creator:
軟體配置
我的Qt5.7.0安裝在/home/ethan下,這是在前面的安裝步驟時選擇的。而在/home/ethan/Qt5.7.0/5.7/gcc_64/bin/下有qmake。
安裝完成後用下面的命令配置一下PATH,在當前用戶主目錄下的.bashrc (or .zshrc)文件中加入:
export QTDIR=/home/ethan/Qt5.7.0/5.7/gcc_64/
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${QTDIR}/lib
export PATH=${QTDIR}/bin:${PATH}
此時再在命令行中輸入qmake,看到如下:
說明配置成功了。
另外需要將/usr/lib/x86_64-linux-gnu/qt4/bin/qmake軟連接到/home/ethan/Qt5.7.0/5.7/gcc_64/bin/qmake上,否則後面在編譯安裝PyQt時可能會出問題:
sudo ln -s /home/ethan/Qt5.7.0/5.7/gcc_64/bin/qmake /usr/lib/x86_64-linux-gnu/qt4/bin/qmake
這里最好把OpenGL的庫也安裝上,不然後面的GUI相關工具的安裝會有問題:
sudo apt-get install mesa-common-dev
sudo apt-get install libglu1-mesa-dev -y
SIP安裝
因為系統介面都是C, C++的而python要調用這些C/C++介面,就需要這個SIP,安裝PyQt之前必須先安裝對應版本的SIP。PyQt編譯時使用的SIP版本必須與python默認調用的SIP保持一致!否則python中是無法調用PyQt的。QT安裝的是當前最新的QT5.7.0,這里SIP最新版本也到了4.18.1,從SIP下載https://riverbankcomputing.com/software/sip/download下載SIP安裝文件,sip-4.18.1.tar.gz。在下載SIP之前,需要確認下自己的系統沒有默認安裝過其他版本,否則容易造成混亂。用
sip -V
可以看到系統的sip版本。不過我的系統並沒有SIP的。
下載的sip-4.18.1.tar.gz是一個源碼包,需要在本地編譯後安裝:
tar -zxvf sip-4.18.1.tar.gz
cd sip-4.18.1
python3 configure.py
sudo make
sudo make install
然後需要核對下當前的SIP版本以及python3中使用的SIP的版本,看兩者是否一致。核對當前SIP版本:
sip -V
會看到是4.18.1
然後命令行中輸入python3,打開python3.5環境,輸入:
>>> import sip
>>> print(sip.SIP_VERSION_STR)
也看到顯示是4.18.1的,這樣就說明SIP版本一致了,安裝OK。
QScintilla安裝
QScintilla2是連接編譯器和Python的介面,是Eric的必需前置組件。QScintilla2 中需要單獨安裝3個模塊,本體,Designer和python bindings。這一步先只安裝本體部分,後面兩個需要等安裝了PyQt5才能安裝,這個順序不能搞錯,不然會在安裝QScintilla的python bindings時會無法生成C++ code,導致安裝的失敗。首先需要從QScintilla下載https://www.riverbankcomputing.com/software/qscintilla/download下載源碼包。下載完成後,對QScintilla_gpl-2.9.3.tar.gz進行解壓:
tar -xzvf QScintilla_gpl-2.9.3.tar.gz
cd QScintilla-gpl-2.9.3
安裝本體:
cd Qt4Qt5
qmake qscintilla.pro
sudo make
sudo make install
如果在上面的sudo make時,出現「/usr/bin/ld: cannot find -lGL」問題,可以用如下命令做個軟連接:
sudo ln -s /usr/lib/x86_64-linux-gnu/mesa/libGL.so.1.2.0 /usr/lib/libGL.so
之後再去sudo make。
PyQT5安裝
PyQt是Python的一個跨平台圖形開發工具集,是Python與Qt的成功融合。PyQt包含了大約440個類、超過6000個的函數和方法。
首先從PyQt5下載https://www.riverbankcomputing.com/software/pyqt/download5下載目前最新版本,PyQt5_gpl-5.7.tar.gz。使用如下命令編譯安裝:
tar -zxvf PyQt-gpl-5.7.tar.gz
cd PyQt-gpl-5.7
python3 configure.py
sudo make
sudo make install
然後使用python3命令進入python環境,輸入:
>>>import PyQt5
此時沒有任何提示,說明安裝沒有問題,PyQt5 mole import OK。
QScintilla安裝後續部分
前面已經安裝了本體Qt4Qt5部分了,這里在安裝完PyQt5後,再繼續安裝後面的兩個部分。
安裝Designer
cd QScintilla-gpl-2.9.3/designer-Qt4Qt5
qmake designer.pro
sudo make
sudo make install
如果在sudo make時,遇到「fatal error: GL/gl.h: No such file or directory」的問題,這是由於系統中沒有安裝OpenGL庫所導致。使用如下命令進行安裝OpenGL庫即可:
sudo apt-get install mesa-common-dev
sudo apt-get install libglu1-mesa-dev -y
安裝後再進行sudo make,就OK了。
安裝Python bindings
cd QScintilla-gpl-2.9.3/Python
python3 configure.py --pyqt=PyQt5
sudo make
sudo make install
這里Python bindings安裝時需要指定 –pyqt=PyQt5參數,否則默認是為PyQt4安裝。或者直接修改其configure.py,將pyqt5_is_default = False改為pyqt5_is_default = True也可。
Eric6安裝
Eric是一款強大的開源Python IDE,支持Qt界面設計器的Eric在Python GUI開發中更是首屈一指,Python+PyQt+Eric已經成為一種標準的Python GUI開發平台。首先從Eric6下載https://sourceforge.net/projects/eric-ide/files/下載安裝包代碼–eric6-6.1.7.tar.gz。然後用如下命令解壓安裝:
tar -zxvf eric6-6.1.7.tar.gz
cd eric6-6.1.7
sudo python3 install.py
此過程會檢測之前安裝的各個軟體及其版本信息,並且很快會安裝完成:
因為是通過sudo python3 install.py來安裝,在打開eric6時也要在前面加上sudo:
sudo eric6
接下來打開eric6界面進行配置,主要是配置eric編輯器功能:
剛打開界面,就提示需要進行配置:
選擇Settings -> preference -> Editor -> Autocompation。勾選所有選框,打開代碼自動完成功能:
選擇Settings -> preference -> Editor -> QScintilla 。勾上左右的兩個選框,然後在下面source中,選擇from Document and API files:
選擇Settings -> preference -> Editor -> APIs。勾選Complie APIs Autocompation,在Language中,選擇python3。點面下面的Add from installed APIs按鈕,選擇住需要的.api文件。最後點擊Compile APIs:
選擇Settings -> preference -> Interface -> Interface。右側Language根據喜好選擇中文或者English,我這里並沒有安裝中文語言包,所以使用默認的English。
接下來選擇自己的工程文檔將要放置的位置:
最後要重啟eric才生效。
接下來用一個小的demo簡單驗證下python開發環境是否搭建OK。
創建一個demo1.py的python源代碼,demo code:
#!/usr/bin/env python
from PyQt5.QtWidgets import (QApplication, QLabel)
import sys
if __name__ == "__main__":
app = QApplication(sys.argv)
label = QLabel("<center>Hello World with PyQt5!</center>")
label.resize(200, 50)
label.show()
sys.exit(app.exec_())
然後在放置demo1.py路徑下,使用如下命令運行該demo:
python3 demo1.py
㈢ 如何在ubuntu6中安裝python
1.輸入命令python
㈣ 在ubuntu上安裝python編輯器
你安裝上去的只是個運行環境,你只需要打開終端,輸入"python"就可以運如型行你的python命令渣塵猜了。
mypc@zhao:~$ python
Python 2.6.5 (r265:79063, Apr 16 2010, 13:09:56)
[GCC 4.4.3] on linux2
Type "help", "right", "credits" or "license" for more information.
>>> print "Hello world!"兄罩
Hello world!
>>>