Bash Shell入門

Bash script tutorial

$ who am i

當前用戶,當前命令行編號,當前時間算法

$ pwd

present working directoryshell

$ cal 7 2016

查看日曆安全

$ date '+DATE:%m-%y%nTIME:%H:%M:%S'

自定義時間樣式bash

$ ls -a
$ ls -l

顯示隱藏文件,顯示文件具體信息服務器

File&directory operation

$ touch filename

建立一個空文本文件ssh

$ rm filename

刪除文件加密

$ mkdir dirname

建立一個空目錄命令行

$ rmdir dirname

刪除一個目錄code

$ cp filename1 path/filename2

複製文件進程

$ mv filename filename2

重命名文件

$ grep keyword filename

在文件中查找關鍵字

$ diff filename1 filename2

對比兩個文件中不一樣的部分

$ cat filename

一次顯示整個文件

$ cat > filename

建立一個空文件並進入編輯模式
ctrl+d能夠結束編輯模式並保存

$ cat < filename

讀取這個文件並返回這個文件的字符串

$ cat file1 file2 > file

合併文件

$ ls > filename

把某個命令的返回值存入文件,若是不存在會自動建立

$ ls >> filename

若是用>反覆對一個文件保存,會覆蓋以前的內容,要添加內容須要用>>

$ chmod o+w filename

文件權限修改,u, g, o表示user,group,other,r, w, x表示讀寫執行權限

$ chmod 754 filename

4 - read
2 - write
1 - execute
0 - no permission
這個命令表示對user, group, other同時修改權限,7,5,4表明三種用戶的權限累加值,因此7就是rwx,5就是r-x,4就是r--

Compress & extract files

$ tar cvf tarFilename.tar compressFilename1 compressFilename2

c表示是create,創建新的壓縮包,v表示結果會在控制檯輸出,f表明文件選項

$ tar xvf tarFilename.tar

解壓縮

Verify files using checksum

$ sha1sum filename

返回這個文件的哈希值,經過sha-1算法得到

$ sha1sum filename | grep someHashNumbers

對比這個文件的哈希值與某個哈希值,若是匹配則會返回紅色文本的哈希值

Users

$ sudo useradd username
$ sudo passwd username

建立新用戶,建立後給用戶設置密碼,Linux會自動創建一個和用戶名同名的組,並添加到這個組

$ sudo groupadd goupName
$ sudo usermod -a -G goupName

添加用戶組
-a表示添加或者移動到用戶組,-G表示添加到某個組可是不退出自己已經存在的組,-g表示退出當前組,加入如今的組

$ cd ../..
$ cd etc
$ ls -la

用戶密碼存在etc目錄下的passwd文件中,真實的密碼存在shadow文件裏,固然是被哈希加密的

SSH & SFTP

$ ssh username@ipAdress

以某個用戶名登陸某個服務器

$ nano /etc/ssh/sshd_config

修改ssh配置,PermitRootLogin without-password便可無需密碼登陸,真正的祕鑰只存在你當前用來登陸的這臺電腦

$ sftp username@ipAdress

使用安全的ftp登陸

$ put path/filename

上傳文件

$ put -r path/path2

上傳某個路徑下的全部文件,須要在遠程端創建同名文件夾

$ get filename path/filename

下載單個文件

$ get -r folderName path

下載一個文件夾

Shell script

#!/bin/bash

指定解釋器,#也用做單行註釋

$ bash shellScriptName

執行腳本

if [$1 = hotdog]; then
    echo "You typed hotdog"
else
    echo "You did NOT type hotdog"
    echo "You typed " $1
fi

分支

for x in dog elephant fish; do
    echo $x
done

循環

Process

$ ps

查看全部非系統進程

$ command &

讓某個命令開啓的進程在背後運行,不佔用當前命令行
它會成爲一個job

$ jobs
$ fg %jobNumber

job提到前臺以便控制
Ctrl+c中止程序,Ctrl+d凍結程序,Ctrl+z把已經在運行的進程放到後臺

$ kill processID

中止某個進程

$ kill -STOP processID
$ kill -CONT processID

凍結/解凍進程

$ nohup command &

注意到直接用&放在後臺的程序,當命令行關閉的時候,會被一同關閉
若是想要變成守護進程的造型,就要用nohup

Some other command

$ passwd

修改密碼

$ info ls

顯示某個命令的幫助

相關文章
相關標籤/搜索