操作系統的功能:
存儲管理、進程和處理機管理、文件管理、設備管理、用戶接口
[mengqc@localhost ~]$ 是shell主提示符。其中
- “mengqc”表示當前用戶名
- “localhost”是默認的主機名
- “~” 表示默認用戶主目錄
- “$ ” 表示當前用戶是普通用戶。對於超級用戶來說,該位置出現的標示是“# ”。
linux操作系統常用命令
ls:查看當前目錄下的文件夾
- -a:列出隱藏文件,-A:隱藏. ..文件
- -l :詳細信息
- -t:修改時間排序
- -n:uid gid
- -r:倒序排列
- -s:打印每個文件以block為單位打印大小
- ll=ls -l
data:顯示時間
cal:顯示日歷
passwd:更改密碼
cp -f file1 file2:復制文件
who:顯示誰在登錄以及時間
- $:普通用戶。
- #:root。
pwd:查看當前路徑。
man ls :ls的幫助文檔。
>;輸出重定向,如果一個文件存在,刪除后重新建立一個文件。
>>:輸出重定向,如果一個文件存在,則追加到原文件末尾。
cat:打開一個文件
history:打開鍵入的命令列表。
打開后用!+ 編號 即可執行;!!:運行上一個命令;!-n:運行倒數第n個個命令;!cmd:運行cmd開頭的命令。
當敲長命令時,輸入幾個字母+tab鍵,可以實現移動補充。
linux用戶和組
介紹:登錄用戶是進入Linux的途徑,系統中將用戶看作是32位的二進制數,即是一個userID,用戶信息存儲在/etc/passwd中,root的ID是0;出於安全考慮,顯示密碼的第二個字段顯示為X,密碼存儲在/etc/shadow文件中。
passwd文件:
用戶名|x|用戶id|用戶2所在組id|備注信息|家|登錄shell
- 一般用戶:id>=500
- 超級用戶:id=0
- 系統用戶:id<500
shadow文件:
用戶名:加密密碼:最近更改密碼的日期:密碼不可更改的天數:密碼更改期限前的警告時間:密碼過期的寬限時間:賬號失效日期:保留字段
注:數字是距離1970.1.1多少天到現在
添加用戶useradd、adduser
- useradd username:添加用戶
- passwd username:更改用戶密碼
注:此命令實現了1.給用戶分配最大的id號 2、在passwd文件中添加一行 3、在/home/下創建用戶的家 4、在/etc/group/下添加用戶的組
修改用戶usermod
- -c <備注> 修改用戶帳號的備注文字。comment
- -d <登入目錄> 修改用戶登入時的目錄。
- -e <有效期限> 修改帳號的有效期限。
- -f <緩沖天數> 修改在密碼過期后多少天即關閉該帳號。
- -g <群組> 將用戶只存在到新的組
- -G <群組> 將用戶再加到別的次要組上
- -l <帳號名稱> 修改用戶帳號名稱。
- -L 鎖定用戶密碼,使無效。
- -s 修改用戶登入后所使用的shell。
- -u 修改用戶ID
- -U 解除密碼鎖定。
- 刪除用戶userdel
- -r 刪除用戶所有信息
- -f 刪除用戶主目錄和郵箱 su命令:
su root:切換用戶。
注:普通用戶向根用戶和其他用戶需要輸入口令,超級用戶向普通用戶跳轉不需要輸入口令。
用戶組:用戶組文件的路徑在/etc/group/下,用戶組也有/etc/gpasswd
group文件內容:groupname:密碼:groupID:用戶列表
gshadow文件內容:gname:password:管路員列表:成員列表
添加用戶組 groupadd
- groupadd 注:添加用戶組;
- groupdel 注:刪除用戶組;
- groupmod 注:修改用戶組信息
-n 修改用戶組名
groups 注:顯示用戶所屬的用戶組
grpck grpconv 注:通過/etc/group和/etc/gshadow 的文件內容來同步或創建/etc/gshadow ,如果/etc/gshadow 不存在則創建;
grpunconv 注:通過/etc/group 和/etc/gshadow 文件內容來同步或創建/etc/group ,然后刪除gshadow文件;
gpasswd -a 向名為 group 的組中添加用戶 user
-d 從名為 group 的組中移除用戶 user。
注:這里有關組安全的問題需要注意,組密碼是當組中大於一個用戶時,在組安全問題中被提出的,細節之后自己好好看看。
文件和目錄:
普通文件:文本文件 二進制文件 數據文件
目錄文件:I結點/文件名成對存在
i結點:存儲文件相關的屬性
文件名:存儲的是一個字符串,標識該文件
如此做的目的是文件瘦身
設備文件:Linux把設備看作文件,實現設備無關性
符號鏈接文件:快捷方式
文件控制塊:FCB,在linux中就是I結點
Linux樹狀目錄結構
- bin:目錄包含二進制(binary)文件的可執行程序。
- sbin:目錄中存放用於管理系統的命令。:root權限
- boot:用於存放引導系統時使用的引導文件,有鏡像文件等
- etc:linux系統配置文件,
- systemd:配置文件目錄
- hosts:ip與名字的對照表
- services:定義系統服務與端口的對應關系
- profile:系統全局環境變量配置文件
- root:目錄是超級用戶的目錄。
- dev:設備文件
- lost+found:目錄中存放系統非正常關閉時正在處理的文件,以便下次系統啟動時予以恢復。
- home:目錄是用戶起始目錄的基礎目錄。通常,用戶的主目錄就保存在該目錄中。
- lib:目錄中保存程序運行時使用的共享庫。
- mnt:目錄中存放安裝文件系統的安裝點。掛載點。linux可以訪問機器上的所有分區,只要在授權的情況下
- /run和/media目錄使用來自動掛載的目錄
- proc:目錄實際上是一個虛擬文件系統。
- tmp:目錄用於存放程序運行時生成的臨時文件。
- usr:目錄中包含了多個子目錄,其中保存系統上一些最重要的程序,可供所有用戶共享。
- lib64:64位操作系統的函數庫
- src:核心源代碼的位置
- sbin:超級用戶才可以執行的命令:如磁盤修復等
- bin:用戶可執行的命令
- var:包括系統正常運行時要改變的數據。
- log:存放各種應用程序的日志信息
絕對路徑名:從/下開始,即root目錄下實現絕對目錄
相對路徑名:./表示當前目錄下 ../表示父目錄
工作目錄:用戶的當前目錄
主目錄:注冊用戶是創建的文件時的總目錄,在/home下
改變工作目錄
① 將當前目錄改到/home/liuzh:
$ cd /home/liuzh
② 將當前目錄改到用戶的主目錄:
$ cd 或 cd ~
③ 將當前目錄向上移動兩級:
$ cd ../..
④ 進入cauc的主目錄:
$ cd ~cauc
⑤ 返回剛才的目錄,即上一個工作目錄
$ cd —
ls命令列出指定目錄的內容
chmod命令
只有文件主或超級用戶root才有權用chmod命令改變文件或目錄的存取權限。
umask命令:
文件的權限是由666-掩碼實現的
cp
-a:保留組信息
-r :復制子目錄下的文件
-i:交互式復制
-s:復制為符號鏈接文件,注意,這里是賦值為符號鏈接文件
rm
-i:交互式刪除
-rf:全部刪除
mv 文件或目錄 文件或目錄
mkdir
-m 700 directory
-p 如果上層目錄不存在也進行創建
rmdir
-p :刪除此目錄以上的所有空目錄
cat
-n 顯示行號
more
-c 清屏
-10 顯示10行
-d 顯示百分比
/字符串:向下搜索字符串
less 分屏顯示文件
group
-g:添加用戶到用戶組
-ag:追加用戶
head
-5 :顯示前5行
-v:顯示文件名
--bytes=-100 :顯示最后一百個字節其他的所有內容
tail
-5 :顯示最后5行
-n +10 :顯示第10行開始后的所有內容
-c 100 :顯示最后一百個字符
gzip
-r:遞歸壓縮
-dv :解壓文件並且顯示百分比
uzip :解壓zip文件
tar:
-cvzf 歸檔名.tgz 被歸檔的文件
-xvzf .tgz 解壓
注:硬鏈接和軟鏈接的區別是什么???
硬連接:創建一個文件的時候,首先在磁盤上申請一塊空間,然后在目錄文件下創建一個文件,這里面存儲的是文件名+I結點號,這個文件指向內存中創建的i結點,硬連接的話,在目錄上新建了一個文件,但是他們指向了同一個i結點,所以她們的i結點號是相同的。
軟鏈接:創建了一個鏈接文件,是實實在在的一個屬性為l的文件,系統分配新的節點號,磁盤中創建一個文件,文件內容是被鏈接文件的文件目錄,這時候,如果刪除被鏈接文件,是刪除了文件目錄下的文件名,而軟鏈接的內容就是定向到這個文件下,所以刪除文件后,軟鏈接就找不到了。軟連接的權限是777。
eval:
將后面的命令,進行相應的變量替換和命令替換,替換的結果作為一個新的命令行輸出,並執行
例:
[root@localhost etc]# echo $cmd
echo a
[root@localhost etc]# eval $cmd
a
expr
例子: `expr $1 + 1` 注意:運算符前后有空格
[root@localhost /]# set 1
[root@localhost /]# `expr $1 + 1`
bash: 2: command not found
[root@localhost /]# echo `expr $1 + 1`
2
awk
模式:awk 'BEGIN { command } Pattern{ command } END{ command }'
每一行的數據復制給$0 ;一行內空格分開的值從$1開始一次
echo -e "1\n2" | sort -rn | awk '{ x+=$0 ;} END{ print x}'
echo
-e:激活轉義字符
- sort :對輸入流進行行排序
- -b:忽略每行前面開始出的空格字符;
- -c:檢查文件是否已經按照順序排序;
- -d:排序時,處理英文字母、數字及空格字符外,忽略其他的字符;
- -f:排序時,將小寫字母視為大寫字母;
- -i:排序時,除了040至176之間的ASCII字符外,忽略其他的字符;
- -m:將幾個排序號的文件進行合並;
- -M:將前面3個字母依照月份的縮寫進行排序;
- -n:依照數值的大小排序;
- -o<輸出文件>:將排序后的結果存入制定的文件;
- -r:以相反的順序來排序;
- -t<分隔字符>:指定排序時所用的欄位分隔字符;
mkfs
- -t<文件系統類型>:指定要建立何種文件系統;
- -v:顯示版本信息與詳細的使用方法;
- -V:顯示簡要的使用方法;
- -c:在制做檔案系統前,檢查該partition是否有壞軌
進程管理
- Ss:有子進程
- S<:優先級高
- SN:優先級低
- SR+:
對於並發的程序,通過fork();生成子進程后,資源是兩個進程之間各賦值了一份,所以兩個進程之間並不影響各進程值的結果。
Linux shell腳本變量的使用
shell有兩種執行命令的方式:
- 交互式(Interactive):解釋執行用戶的命令,用戶輸入一條命令,Shell就解釋執行一條。
- 批處理(Batch):用戶事先寫一個Shell腳本(Script),其中有很多條命令,讓Shell一次把這些命令執行完,而不必一條一條地敲命令。
我們要知道bash和sh不是一個東西,我們需要了解,bash完全兼容sh,也就是說,用sh寫的腳本可以不加修改的在bash中執行
編寫shell的一般習慣:
功能;作者;版本信息;歷史記錄;特殊的命令用絕對路勁表示;預先申明和設置腳本運行時的環境變量;
sheel的變量類型:
- 局部變量:僅僅用於創建的shell中
- 環境變量:由子shell繼承
- shell變量:shell變量是由shell程序設置的特殊變量。shell變量中有一部分是環境變量,有一部分是局部變量,這些變量保證了shell的正常運行
shell用$來解析shell變量;
變量賦值 :=;=兩邊不能有空格
創建變量:shell變量直接定義;環境變量是先定義一個shell變量,然后將export轉換為環境變量
列出環境變量:set
列出已經被導出為環境變量的變量:env
export:實現了將父進程的私有數據轉到公有區,當運行一個腳本的時候,實際上是進入了一個新的shell環境,也可以說是一個新的進程,這個進程由父進程創建。當export后,就可以將公有區的數據給子進程再復制一份了,注意這不是fork。
shell中一些比較特殊的變量:
特殊變量含義
$0
當前腳本的文件名
$n
傳遞給腳本或函數的參數。n 是一個數字,表示第幾個參數。例如,第一個參數是$1,第二個參數是$2。
$#
傳遞給腳本或函數的參數個數。
$*
傳遞給腳本或函數的所有參數。
$@
傳遞給腳本或函數的所有參數。被雙引號(" ")包含時,與 $* 稍有不同,下面將會講到。
$?
上個命令的退出狀態,或函數的返回值。
$$
當前Shell進程ID。對於 Shell 腳本,就是這些腳本所在的進程ID。
注:這些變量我們留在這里備份,有用到就可以查。
HOME:用戶主目錄的全路徑名。如/home/myname
LOGNAME:即用戶注冊名
PWD:當前工作目錄的路徑。
PATH:shell查找命令的路徑(目錄)列表,各個目錄用冒號(:)隔開。 用戶可以設置它: $ PATH=$PATH:$PWD
PS1:shell的主提示符。 $ PS1="$LOGNAME> "
SHELL:當前使用的shell。通常,它的值是/bin/bash。
TERM:終端類型。
MAIL:系統信箱的路徑。
wc [選項] 文件…
說明:該命令統計給定文件中的字節數、字數、行數。如果沒有給出文件名,則從標准輸入讀取。wc同時也給出所有指定文件的總統計數。字是由空格字符區分開的最大字符串。
該命令各選項含義如下:
- c 統計字節數。
- l 統計行數。
- w 統計字數。
vi
進入文本編輯的方式
- i I
- a A
- o O
光標移動
右移 方向鍵、l
左移 h、方向鍵
上移:
-:上移到行開頭
k
Ctrl+P
方向鍵
移動到當前行的第一個字符:
- 0:不論是否是空白字符
- ^:費空白字符
移動到行尾:$
光標移動到第幾行 :
Ctrl + G:顯示行數
行號 G
移動那到下一個詞的開頭:w W
移動到前一個詞的開頭:b B
如果光標在一個詞上,就移動到詞尾:e E
文本修改
- 刪除光標所在的字符:
- x:刪除光標所在的字符
- X:刪除光標前面的字符
- nx,從光標前面的字符開始,向左刪除n個字符
- 刪除光標所在的整行 dd
- 從光標開始刪除到行尾 D
- 刪除從光標位置+光標移動命令到大的位置
d0:刪到行首
d3l:又刪三個字符
d$:刪到行尾
d5G:刪到第5行
dw:刪到詞末尾
dL
dH
復員命令
回到插入或刪除得上一個狀態:u
恢復到剛開始編輯狀態:U
修改命令:
取代命令:
r:用隨后輸入的字符取代光標所在的位置
R:相當於r的重復使用
替換命令:
s:用隨后輸入的字符取代光標所在的位置
S:用隨后輸入的字符替代整行
文本行合成 :J:把當前行與下一行和成一行
文本移動命令:
>:
>>
<
<<
!+光標移動命令+linux命令
編輯文件
字符串搜索:
- f 字符
- F 字符
- /字符串/位移
- ?字符串?位移
字符串替換:
一般格式:g/模式/命令
g/s1/p:打印包含所有s1的行
g/s1/s//s2
shell使用
成組命令:
- {空格 命令1;命令2;}
- (命令1;命令2)
字符串匹配
grep:標准的正則表達式匹配
egrep:擴展的正則表達式匹配 相當與 -F
fgrep:快速對字符串進行匹配 相當與 -E
- -f file :從文件中讀取匹配模式進行匹配
- -i:忽略大小寫
- -l :列出匹配模式的文件名,而非打印
- -q:如果匹配了,grep會靜默的離開,將其不匹配的行寫入標准輸出,否則不成功
- -v:顯示不匹配的行
shell語言可以說是文本處理語言,但是它應該具備一定的運算能力
變量
環境變量:全局變量,會繼承
普通變量:局部變量,不會繼承
常量
對變量的管理有 readonly 和 export
shell變量的創建沒有啥要求,是一種邊定義邊賦值的變量,需要的時候直接變量等於什么就好了,例如a=sdad
因為我們說sheel變量就是給一個信息片創建的名字,它沒有說什么浮點數之類的,所以說算術運算我們需要在(())中實現,
他對變量的類型只有環境變量等,而且創建環境變量還需要export 普通變量
數組的創建
對於數組的創建一種辦法直接就是
a[0]=1
a[1]=2
引用的時候是${a[0]},${a[1]}
或者你可以實現用declare
root@kali:/mnt/bdshare# declare -a c
root@kali:/mnt/bdshare# echo $c
root@kali:/mnt/bdshare# echo ${c[0]}
root@kali:/mnt/bdshare# c[0]=1
root@kali:/mnt/bdshare# echo ${c[0]}
1
root@kali:/mnt/bdshare# echo ${c[1]}
其實沒必要declare,想讓他是數組就直接寫成數組的形式就可以了
或者用圓括號 c=(e1 e2 e3),引用時c[0]
set命令
不加參數:顯示已經定義的全部變量
設置指定位置參數
set 1 2 3:表示$1=1,$2=2,$3=3
env可以顯示環境變量:后面還有
unset 用於刪除變量和函數
- -v 刪除變量
- -f 解除指定的函數
替換運算符
echo ${d:-word}:如果變量存在且非空,返回值,否則返回word,use to test the varible exists or null
echo ${d:+word}:如果存在and非空,返回word,to test the exist of varible
echo ${d:=word}:如果存在且非空,返回值,否則,賦值為word,return word
echo ${d:?word}:if exist or is null,print word,and exit the script or command
above all,":" could is choosed or is not choosed,if not is choosed,cancel the option of null or not null
如果一個變量賦值是一個文件夾或者是一個目錄,你去cat 或者cd的話是可以實現的,因為他會解析字符串,其實就和我們輸入的字符串是一個道理,你把它當作你的文件或目錄就行了。
環境變量和普通變量的區別我來好好說一下
1,變量就是給一個信息片創建的名字,那就像是一片空間的數據,引用他就可以了
2,我們說操作系統中的用戶環境是怎么構成的?在用戶注冊過程中,系統首先做的是創建用戶環境,所有的進程都有獨立且不同與程序本身的環境,linux環境是由許多變量以及這些變量的值構成的,
在操作系統中進程是怎么構成的呢?程序+進程控制塊+數據,一個用戶環境其實就是一個進程,當你創建多個用戶的時候,在不同用戶之間切換,其實就是進程之間的切換了。這些變量和變量的值決定了用戶環境的外觀,shell環境包括shell類型,主目錄。
輸入輸出命令
read:從標准鍵盤上輸入數據
read -p 提示變量名
root@kali:~# read -p "hahaha" x
hahahadsd
echo:直接顯示后面的變量名和字符串
條件測試:$1是指輸入的第一個參數
三種形式:
- test -f "$1"
- [ -f "$1" ]
- [[ -f "$1"]]
文件方面的測試
- -f: 普通文件
- -d:目錄文件
- -b:塊設備文件
- -s:文件長度>0true
- -r:可讀
- -w:可寫
- -x:可執行
- -p:pipe文件
- -c:字符文件
- -e: 文件存在
字符串方面的測試:注意:符號前后有空格
-z s1:空為真
-n s1:>0 true
s1 = s2 :true
s1 != s2
s1 < s2
s1 > s2
數值方面的測試
n1 -eq n2:==
n1 -ne n2: !=
n1 -le n2: <=
n1 -lt n2: <
n1 -ge n2: >=
n1 -gt n2: >
邏輯運算符
!,-a, -o
\(表達式\):整體判斷
算術運算
(( 算術表達式)):對於這個,只有加入$((算術表達式))才能輸出值
let "算術表達式"
例子:
root@kali:~# read x y
1 2
root@kali:~# echo $((x+y))
3
root@kali:~# echo $((z=x+y))
3
root@kali:~# echo z
z
root@kali:~# echo $z
3
root@kali:~# let "z=x*y+y"
root@kali:~# echo $z
4
雙引號:除$,"",\,之外均作為普通字符對待
單引號:將所有得到字符都看做普通字符對待
到引號:將其中的內容解析為shell命令,有兩種形式
x=`pwd`;將pwd解析的值作為變量x的值
x=$(pwd);和上面是一個道理
順序執行:;
邏輯與:&&:這個邏輯與是命令之間的與,上一個與是條件測試的與
邏輯或:||
if控制結構
style1:
if 測試條件
then
command1
else
command2
fi
style2:
if 測試條件
then
command1
elif 測試條件
then
command2
else
command3
fi
while語句
while 測試條件
do
command
done
shift命令:將位置參數右移一位
until語句(測試條件為假時,才循環,為真是才終止循環)
until 測試條件
do
command
done
for語句
for 變量 in 值表
do
command
done
for((i=1;i<$1;i++))
do
command
done
$#——除腳本名外,命令行上參數的個數。
$? ——上一條前台命令執行后的返回值(也稱“退出碼”等)。
$$——當前進程的進程號。
$! ——上一個后台命令對應的進程號。
$*——表示在命令行上實際給出的所有實參。
gcc編譯系統
三個過程:
preprocessing
gcc -E :分析偽指令,頭文件 條件編譯:生成.i
compiling :進行語法分析
gcc -S:生成.s的匯編文件
Assembler:將匯編代碼翻譯為機器代碼
gcc -c :生成.o文件
linking
gcc -o :生成.out3文件
rpm
- -i:install
- -u:update
- -v:顯示執行過程
- -l:顯示文件列表
- -q:詢問:一般和a,l連用
- -e:卸載
- -a:顯示所有的包
Linux控制台的使用
六個字符控制台
ctrl+alt+f1-f6,是六個字符控制台
Ctrl+alt+f7是圖形界面即x+windows
在字符控制台下,Linux使用startx命令進行進入圖形界面
linux外在設備的使用
首先我們先來介紹一下分區和掛載的概念
分區是對硬盤進行格式化分區,只有按相應的格式進行分區才能將數據寫入磁盤
而掛載呢,就是將邏輯位置的物理位置映射到該分區上,我們說的文件系統類型是什么呢?就是分區的格式,只有確定知道硬盤分區的格式才能寫入數據呀。
接下來是設備文件和硬件
Linux中,設備do都是以設備文件的形式存在,那當然,不同的設備類型就有不同得到文件類型了
設備文件的命名方式是主設備號+次設備號,
比如說:
sd:scsi硬盤,sda:scsi硬盤的第一塊硬盤,sda1:scsi硬盤的第一塊硬盤的第一個分區(u盤被認為是sd類型)
fd是軟盤。
常用的文件系統格式
- msdos:dos文件系統
- vfat:當成是windows文件系統
- iso9660:光盤格式的文件系統
- ext2/ext3/ext4:Linux的主流文件系統
- xfs:一種高性能得到日志文件系統
了解這些之后,我們就可以掛載使用了,當掛載好后,我們訪問這個掛在目錄,就可以訪問這個設備文件了
掛載方式
mount -t 文件系統類型 設備名就是設備文件 掛載點
例如 mount -t vfat /dev/sda1 /mnt/usb
設備的下載
unmount 掛載目錄
Linux操作系統的內核得到功能有
內存管理
進程管理
進程間通信
虛擬文件系統
Linux支持許多種文件系統,它用通用的文件系統模型表示各種不同的文件系統,屏蔽了具體的文件系統之間的差異
可以分為邏輯文件系統和設備驅動程序
邏輯文件系統就是各種文件系統的格式
設備驅動程序就是每一種設備控制器所編寫的設備驅動程序模塊
網絡接口:提供了對各種網絡1標准的實現和各種網絡硬件的支持
再講一下linux初始化init系統
從BIOS開始,加載系統鏡像到內存,進行內核初始化,內和初始化結束后創建PID=1的進程,然后需要一個系統去初始化init進程的行為,這個系統就是init系統。
這里要介紹一個系統服務管理工具
systemd,它是一個用戶級別的管理工具
# 重啟系統
$ sudo systemctl reboot
# 關閉系統,切斷電源
$ sudo systemctl poweroff
# CPU停止工作
$ sudo systemctl halt
# 暫停系統
$ sudo systemctl suspend
# 讓系統進入冬眠狀態
$ sudo systemctl hibernate
# 讓系統進入交互式休眠狀態
$ sudo systemctl hybrid-sleep
# 啟動進入救援狀態(單用戶狀態)
$ sudo systemctl rescue
# 立即啟動一個服務
$ sudo systemctl start apache.service
# 立即停止一個服務
$ sudo systemctl stop apache.service
# 重啟一個服務
$ sudo systemctl restart apache.service
# 殺死一個服務的所有子進程
$ sudo systemctl kill apache.service
# 重新加載一個服務的配置文件
$ sudo systemctl reload apache.service
# 重載所有修改過的配置文件
$ sudo systemctl daemon-reload
# 顯示某個 Unit 的所有底層參數
$ systemctl show httpd.service
# 顯示某個 Unit 的指定屬性的值
$ systemctl show -p CPUShares httpd.service
# 設置某個 Unit 的指定屬性
$ sudo systemctl set-property httpd.service CPUShares=500
顯示操作系統相關參數
root@kali:~# uname
Linux
root@kali:~# uname -a
Linux kali 4.9.0-kali3-amd64 #1 SMP Debian 4.9.16-1kali1 (2017-03-24) x86_64 GNU/Linux
root@kali:~# uname -m
x86_64
root@kali:~# uname -n
kali
root@kali:~# uname -r
4.9.0-kali3-amd64
root@kali:~#
last:顯示過去登陸過系統的用戶相關信息
讀的是/var/log文件
top:相當於windows的任務管理器
split命令:切割文件
telnet 遠程連接 Telnet 主機名+端口號
wget:下載軟件
stty 用來控制終端的各種設置
比如
root@kali:~# stty -echo
用來關閉自動打印輸入字符的功能,一旦關閉,輸入的字符就看不到了
這時候就可以在人工輸入密碼的時候用到了
read pass < /dev/tty
通過這種方式錄入密碼從終端,當打開tty這個文件時,linux會自動將他定向到終端。
當然最后要將自動打印輸入字符的功能打開
stty echo
MAKEFILE
下載源代碼包后解壓發現一個configur文件,運行它,它是用來檢查當前機器的環境的,然后收集環境信息,如果環境檢查通過,會生成一個Makefile文件,這個文件是用來編譯的,和configur是同一個文件夾下,這個Makefile文件由make開發工具所能識別的,所以,通過make 編譯Makefile文件。插入一個點:Makefile文件是一個文本形式的數據庫文件,記錄了一系列文件之間的依賴關系上所應執行的命令序列,即那希望文件需要先編譯,那些文件重新編譯,一旦調用這個make命令,他就會自動查找Makefile文件並且去調用它。當確定好依賴關系后,你就可以通過make install 安裝這個源文件了。