選擇作業系統
設定終端軟體
如何學習命令
使用者名稱@機器名:當前工作目錄$使用者輸入命令
peter@dog:~$
~ 表示使用者主目錄
lsmkdir 資料夾
rm 檔案
rm -r 資料夾
命令本身 引數 操作物件
the linux command line 教程
man rm 開啟命令手冊
/ 引數 查閱引數使用方法
/ -r
q 退出使用者手冊
檔案系統樹結構
絕對路徑和相對路徑
cd 命令
根目錄當前目錄 pwd
走馬觀花看命令
copy
拷貝檔案 cp file1 file2
拷貝目錄 cp -r file1 file2
move
mv file dir
rename
mv file1 file2
mv dir1 dir2 # dir2 存在 則為移動操作
remove
rm file
rm -r dir
建立檔案
touch a.txt
>a.txt # 重定向符
建立目錄
mkdir dir
檢視檔案
cat file
檢視檔案型別
file a.txt
unix linux 對檔案字尾名不敏感
cat file
less file
ctrl --
ctrl ++
j 向下
k 向上
/ 進行字元查詢
g 到檔案頭
g 到檔案尾
q 退出檔案
vim 編輯器
echo 列印
萬用字元打包壓縮
unzip file.zip
zip -r file.zip dir/
.tar.gz
解壓 tar zxvf filename.tar.gz
壓縮 tar zcvf filename.tar.gz dir/
.tar.gz2
解壓 tar jxvf filename.tar.gz
壓縮 tar jcvf filename.tar.gz dir/
終端配置
檔案許可權
普通使用者在自己的 hone 目錄下有 寫許可權
在其他目錄下則沒有
超級管理員在任何地方都有 寫許可權
sudo touch aa.txt 以超級管理員的身份執行 系統會要求 密碼
sudo apt-get -y install vim
使用者許可權
三種許可權rw
x檔案模式
ls -l filename
- file
l sym link
d directory
...ls -ld dir
chmod 控制檔案模式
vim a.sh
zz 退出插入模式
./a.sh 執行檔案
chmod +x a.sh
chowm 改變檔案擁有者
重定向date >a.txt
ls /bin|grap less
ls /bin >bin.txt
grep less 重定向前清空
>> 不清空
標準錯誤輸出重定向
2>
2>>
標準輸入資訊(不常用,通常使用管道線)
<
<<
管道線前面乙個命令的輸出 作為後面乙個命令的輸入
cat files.txt|uniq 輸出不重複
cat files.txt|uniq/grep txt 只輸出txt結尾的檔案
cat files.txt|uniq/grep txt/sort 對輸出結果排序
軟體安裝
手動安裝
解壓 tar zxvf /tar jxvf
安裝 path
ln -s /opt/sublime_text_3/sublime_text /usr/bin/subl
進入原始碼目錄
./configure
make
sudo make install
deb 包
程式本身
配置檔案
安裝位置
依賴關係
sudo dpkg -i google-chrome-stable_current_i386.deb
dpkg -l 列出系統上所有安裝過的 deb 包
dpkg -l|grep chrome
dpkg -l google-chrome-stable 檢視 deb 包在系統上安裝了哪些檔案
dpkg -s dir 檢視 dir 來自於哪個包
從 apt-get 倉庫安裝
sudo apt-get install git 安裝
sudo apt-get remove git 解除安裝
sudo apt-get purge git 解除安裝 並刪除配置檔案
apt-cache search name|less 搜尋要安裝的軟體包的包名
搜尋locate 在系統全域性範圍內定位檔案
locate vimrc
locate --regrxp *** 匹配正規表示式
updatedb 每天執行一次 將檔名儲存到資料庫
locate 在資料庫正查詢 而不是在檔案系統中查詢 找不到系統中新建立的檔案
sudo updatedb
find 在乙個目錄範圍內定位檔案
find .
find .|grep .txt
find . -type f
find . -type d
find . -type f -exec ls -l '{}' ';'
find . -type f -exec grep hello '{}' ';' -print
find . -type f -exec grep -n hello '{}' ';' -print
find . -type f -exec grep -ni hello '{}' ';' -print 忽略大小寫
grep
程序獲取程序號
pidman ps
ctrl + alt + t 呼出終端
ctrl + shift + t 開啟乙個新的終端標籤
ps aux
ps aux|less
/str 查詢str
ps aux|grep vim
ctrl + shift + c 複製
ctrl + shift + v 貼上
ctrl + a 到行首
後台執行
firefox &
ctrl + z 暫停
bg 後台執行
fg 回到前台
kill
kill -2 pid
kill -15 pid
kill -9 pid
網路操作
遠端操作
ssh 遠端操作工具
ssh 是網路上兩台機器互聯的一種協議 需要互開 22 埠
客戶端要安裝 相應的軟體 openssh-client
服務端安裝 軟體 openssh-server
ctrl + d 退出伺服器
ssh-keygen
cd ~/.shh
ls 會多出兩個檔案
id_rsa 私鑰
id_rsa.pub 公鑰
將公鑰上傳到伺服器 /hone/peter/.ssh/authorized_keys
tmux 強大的終端視窗管理器
tmux -a 回到上次因為網路中斷或者退出連線時的視窗
資料傳輸
rsync 資料傳輸工具
remote synchronization
上傳rsync -r 本地目錄 伺服器:指定的路徑(預設/hone/peter/)
mydir 目錄
mydir/ 目錄中的所有檔案
: 不可缺少
本地增加檔案後同步
前後兩個 / 都不能少
本地刪除檔案後同步
指令碼程式設計
指定解析器
#!/usr/bin/env bash
#!/usr/bin/env python
#!/usr/bin/env ruby
語句即命令
命令對空格非常敏感
指令碼語句對空格**的敏感
位置引數
peter.sh a.txt b.txt
$# 一共有多少個引數
$0 peter.sh
$1 a.txt
$2 b.txt
指令碼不在當前 shell 執行
指令碼中的語句不是在當前 shell 中執行的
新開乙個 shell 執行指令碼中語句
在當前 shell 中執行指令碼語句
source peter.sh
迴圈控制
給當前目錄中的檔案都加上 .txt 的字尾
cd $1
echo i am in `pwd`
for file in `ls`
domv $file $file.txt
done
遠端執行
確認執行
其他語言寫指令碼
linux學習筆記總結
for讀取列表中複雜值 for test in i don t konw if this ll work do shell會把列表中的單引號嘗試使用他們來一定乙個單獨的資料 兩種辦法解決 1 使用轉義字元 反斜線 來將單引號轉義 2 使用雙引號來定義用到的單引號 for test in i don ...
Linux學習筆記總結
一.檔案操作 linux裡面裡的檔案裡沒有字尾名的區別,所有的檔案都一樣,只看檔名,字尾名新增只是為了區分檔案的用途 a.建立檔案 jun vm 0 7 centos touch jun.txt touch 檔名b.刪除檔案 jun vm 0 7 centos rm rf jun.txt rm 檔名...
linux學習筆記 tar命令總結
首先,看下man tar name tar the gnu version of the tape archiver tar utility synopsis tar options operations a catenate concatenate c create 打包檔案 d diff com...