一、「不能爲虛擬電腦XX打開一個新任務」:linux
出現這種狀況是電腦沒有開啓blos,解決方法是:開機進入聯想界面的時候,直接按F2能夠快速進入選擇開啓blos。sql
Linux學習shell
主要介紹了操做系統的基本概念, Linux 的歷史,Linux 與 Windows 的區別等知識。
swift
無償使用vim
安全性高安全
效率高ruby
可定製性bash
應用範疇廣app
使用 Linux 時,不是直接與系統打交道,而是經過 Shell 來完成的。less
Linux 操做系統下的 Shell 既是用戶交互的界面,也是控制系統的腳本語言。
Ubuntu 終端默認使用的是 bash。
建立文件touch file
進入目錄cd /etc/
查看當前目錄pwd
經常使用快捷鍵
按鍵 | 做用 |
---|---|
Tab | 命令補全 |
Ctrl+c | 強行終止當前程序 |
Ctrl+d | 鍵盤輸入結束或退出終端 |
Ctrl+s | 暫停當前程序,暫停後按下任意鍵恢復運行 |
Ctrl+z | 將當前程序放到後臺運行,恢復到前臺爲命令fg |
Ctrl+a | 將光標移至輸入行頭,至關於Home鍵 |
Ctrl+e | 將光標移至輸入行末,至關於End鍵 |
Ctrl+k | 刪除從光標所在位置到行末 |
Alt+Backspace | 向前刪除一個單詞 |
Shift+PgUp | 將終端顯示向上滾動 |
Shift+PgDn | 將終端顯示向下滾動 |
↑ | 歷史輸入命令 |
{string1,string2,...} 匹配 string1 或 string2 (或更多)其一字符串
{c1..c2}| 匹配 c1-c2 中所有字符 如{1..10}
banner主要程序
安裝
$ sudo apt-get update $ sudo apt-get install sysvbanner
打印
$ banner shiyanlou
字體改變
$ printerbanner -w 50 A
$ who am i
$ who mom likes
參數 | 說明 |
---|---|
-a | 打印能打印的所有 |
-d | 打印死掉的進程 |
-m | 同am i,mom likes |
-q | 打印當前登陸用戶數及用戶名 |
-u | 打印當前登陸用戶登陸信息 |
-r | 打印運行等級 |
$ sudo adduser lilei
$ su -l lilei
exit
或Ctrl+d
查看本身屬於哪些用戶組
1.groups命令$ groups shiyanlou
2.查看/etc/group/文件$ cat /etc/group | sort
過濾信息$ cat /etc/group | grep -E "shiyanlou"
將其餘用戶加入sudo用戶組
$ su shiyanlou $ groups lilei $ sudo usermod -G sudo lilei $ groups lilei
$ sudo deluser lilei --remove-home
變動文件全部者
$ cd /home/lilei $ ls iphone6 $ sudo chown shiyanlou iphone6
修改文件權限$ chmod 700 iphone6
$ chmod go-rw iphone6
$ cd ..
$ cd ~
$ pwd
touch
命令mkdir
命令,使用-p
同時建立父目錄,例$ mkdir -p father/son/grandson
cp
命令,例$ cp test father/son/grandson
cp
加上-r
或-R
,例$ cp -r father family
rm
,強制刪除-f
rm
命令加上-r
或-R
移動文件:mv
,例
$ mkdir Documents $ mv file1 Documents
$ mv file1 myfile
批量重命名:
# 使用通配符批量建立 5 個文件: $ touch file{1..5}.txt # 批量將這 5 個後綴爲 .txt 的文本文件重命名爲以 .c 爲後綴的文件: $ rename 's/\.txt/\.c/' *.txt # 批量將這 5 個文件,文件名改成大寫: $ rename 'y/a-z/A-Z/' *.c
cat
,tac
,nl
more
,less
$ file /bin/ls
$ vimtutor
$ declare tmp
$ tmp=shiyanlou
$ echo $tmp
與環境變量相關的命令:set
,env
,export
命 令 | 說 明 |
---|---|
set | 顯示當前 Shell 全部變量,包括其內建環境變量(與 Shell 外觀等相關),用戶自定義變量及導出的環境變量。 |
env | 顯示與當前用戶相關的環境變量,還可讓命令在指定環境中運行。 |
export | 顯示從 Shell 中導出成環境變量的變量,也能經過它將自定義變量導出爲環境變量。 |
Linux變量分爲,永久的和臨時的。/etc/bashrc
存放shell變量
/etc/profile
環境變量,永久生效
$ echo $PATH
$ gedit hello_shell.sh
$ chmod 755 hello_shell.sh
$ ./hello_shell.sh
$ gedit hello_world.c
$ gcc -o hello_world hello_world.c
建立目錄並移動文件至其中,例:
$ mkdir mybin $ mv hello_shell.sh hello_world mybin/
添加自定義路徑$ PATH=$PATH:/home/shiyanlou/mybin
添加內容 $ echo "PATH=$PATH:/home/shiyanlou/mybin" >> .zshrc
變量設置方式 | 說明 |
---|---|
${變量名#匹配字串} | 從頭向後開始匹配,刪除符合匹配字串的最短數據 |
${變量名##匹配字串} | 從頭向後開始匹配,刪除符合匹配字串的最長數據 |
${變量名%匹配字串} | 從尾向前開始匹配,刪除符合匹配字串的最短數據 |
${變量名%%匹配字串} | 從尾向前開始匹配,刪除符合匹配字串的最長數據 |
${變量名/舊的字串/新的字串} | 將符合舊字串的第一個字串替換爲新的字串 |
${變量名//舊的字串/新的字串} | 將符合舊字串的所有字串替換爲新的字串 |
$ unset temp
source
命令,例 $ source .zshrc
source
命令的別名.
,例 $ source .zshrc
whereis
簡單快捷,例 $ whereis who
locate
快而全,例 $ locate /etc/sh
、$ locate /usr/share/\*.jpg
which
小而精,例 $ which man
find
精而細,例 $ sudo find /etc/ -name interfaces
參數 | 說明 |
---|---|
-atime | 最後訪問時間 |
-ctime | 最後修改文件內容的時間 |
-mtime | 最後修改文件屬性的時間 |
文件後綴名 | 說明 |
---|---|
*.zip | zip 程序打包壓縮的文件 |
*.rar | rar 程序壓縮的文件 |
*.7z | 7zip 程序壓縮的文件 |
*.tar | tar 程序打包,未壓縮的文件 |
*.gz | gzip 程序(GNU zip)壓縮的文件 |
*.xz | xz 程序壓縮的文件 |
*.bz2 | bzip2 程序壓縮的文件 |
*.tar.gz | tar 打包,gzip 程序壓縮的文件 |
*.tar.xz | tar 打包,xz 程序壓縮的文件 |
*tar.bz2 | tar 打包,bzip2 程序壓縮的文件 |
*.tar.7z | tar 打包,7z 程序壓縮的文件 |
使用zip打包文件夾,例:
$ zip -r -q -o shiyanlou.zip /home/shiyanlou $ du -h shiyanlou.zip $ file shiyanlou.zip
設置壓縮級別打包,例:
$ zip -r -9 -q -o shiyanlou_9.zip /home/shiyanlou -x ~/*.zip $ zip -r -1 -q -o shiyanlou_1.zip /home/shiyanlou -x ~/*.zip
查看壓縮文件信息$ du -h -d 0 *.zip ~ | sort
$ zip -r -l -e -o shiyanlou_encryption.zip /home/shiyanlou
$ unzip shiyanlou.zip
$ unzip -q shiyanlou.zip -d ziptest
$ unzip -l shiyanlou.zi
指定編碼類型unzip -O GBK 中文壓縮文件.zip
$ sudo apt-get update $ sudo apt-get install rar unrar
$ rm *.rar $ rar a shiyanlou.rar .
$ rar d shiyanlou.rar .zshrc
$ rar l shiyanlou.rar
$ unrar x shiyanlou.rar
$ mkdir tmp $ unrar e shiyanlou.rar tmp/
$ tar -cf shiyanlou.tar ~
$ mkdir tardir $ tar -xf shiyanlou.tar -C tardir
$ tar -tf shiyanlou.tar
$ tar -cphf etc.tar /etc
$ tar -czf shiyanlou.tar.gz ~
$ tar -xzf shiyanlou.tar.gz
壓縮文件格式 | 參數 |
---|---|
*.tar.gz | -z |
*.tar.xz | -J |
*tar.bz2 | -j |
df
命令,加上-h
更易讀du
命令查看目錄容量參數 | 做用 |
---|---|
du -h | 同--human-readable 以K,M,G爲單位,提升信息的可讀性。 |
$ du -h -d | 指定查看目錄的深度 |
du -a | 同--all 顯示目錄中全部文件的大小。 |
du -s | 同--summarize 僅顯示總計,只列出最後加總的值。 |
建立虛擬磁盤
建立虛擬鏡像文件
$ dd if=/dev/zero of=virtual.img bs=1M count=256 $ du -h virtual.img
$ sudo mkfs.ext4 virtual.img
$ sudo mount
mount [options] [source] [directory]
mount [-o [操做選項]] [-t 文件系統類型] [-w|--rw|--ro] [文件系統源] [掛載點]
$ mount -o loop -t ext4 virtual.img /mnt # 也能夠省略掛載類型,不少時候 mount 會自動識別 # 以只讀方式掛載 $ mount -o loop --ro virtual.img /mnt # 或者mount -o loop,ro virtual.img /mnt
$ sudo umount /mnt
$ sudo fdisk -l
$ sudo fdisk virtual.img
p
查看結果losetop
命令$ sudo losetup /dev/loop0 virtual.img
$ sudo losetup -d /dev/loop0
安裝kpartx
工具
$ sudo apt-get install kpartx
$ sudo kpartx -av /dev/loop0 # 取消映射 $ sudo kpartx -dv /dev/loop0
新建四個空目錄用於掛載虛擬磁盤:
$ mkdir -p /media/virtualdisk_{1..3} # 掛載磁盤分區 $ sudo mount /dev/mapper/loop0p1 /media/virtualdisk_1 $ sudo mount /dev/mapper/loop0p5 /media/virtualdisk_2 $ sudo mount /dev/mapper/loop0p6 /media/virtualdisk_3 # 卸載磁盤分區 $ sudo umount /dev/mapper/loop0p1 $ sudo umount /dev/mapper/loop0p5 $ sudo umount /dev/mapper/loop0p6
$ df -h
命令檢查結果
內建命令與外部命令
用type
命令區份內建命令和外部命令.