命令 --help 命令的簡單幫助python
man == 命令幫助linux
help == 命令的幫助(bash的內置命令)vim
ls == 查看目錄列表 -l(long) -d(directory)bash
mkdir == make directory 做用是建立目錄, 例如: mkdir /data -p 遞歸建立目錄dom
cd == change directory 做用切換路徑, 例如: cd /編輯器
touch == 做用是建立文件, 例如: touch oldboy.txtide
vi == 編輯器,至關於記事本,有編輯功能,單較弱spa
vim == 複雜編輯器命令行
echo 是一個打印輸出內容的經常使用命令,配合">或>>"能夠爲文件覆蓋及追加內容。">"重定向,會清除文件裏的數據, ">>"爲內容追加。unix
cat == 查看文件內容
特殊用法:增長內容
cat > oldboy.txt <<EOF
I am studying linux
EOF
EOF要成對出現,EOF能夠被任意成對內容替換
cp == copy 複製命令 copy目錄用cp -a 或 cp -r
-r: 遞歸,用於複製目錄;-p保持屬性。
-a:至關於-pdr
cp = 'cp -i' -i 確認
mv == 移動目錄或文件,例如:mv /data /root/
pwd == 查看當前用戶所在的路徑
rm == 刪除文件或者目錄 -f請知 -r刪除目錄
生產場景儘可能不要使用rm,若是非要用,必定要先cp等備份
替代方法:
mv移動到一個臨時目錄。回收站。
find刪除 find /home/abelxu/data/ -type f -exec rm -f {} \;
find /home/abelxu/data/ -type f | xargs rm -f
刪除一個目錄下的全部文件,但有一個文件不刪: find /home/abelxu/data/ -type f ! -name "oldgril.txt" | xargs rm -f
find /home/abelxu/data/ -type f ! -name "oldgril.txt" -exec rm -f {} \;
head == 取文件的前n行,默認前10行, 取前3行 -n 3
tail == 取文件的最後n行, 默認最後10行, 取最後3行 -n 3 -f 跟蹤一個文件尾部的實時變化
grep == 過濾器,把想要的或者不想要的分離開。-v 排除
-B 除了顯示匹配行的一行以外,並顯示該行以前的num行
-A 除了顯示匹配行的一行以外,並顯示該行以後的num行
-C 除了顯示匹配行的一行以外,並顯示該行先後的num行
sed == (stream editor)過濾: sed -n '/過濾的內容/處理的命令' 文件
-n 取消默認輸出
-i 改變文件內容
處理的命令:p print打印
d delete刪除
例子:sed -n '/oldboy/p' test.txt
sed '/oldboy/d' test.txt
sed替換
sed -i 's#boy#gril#g' test.txt
s 查找並替換
g global與s聯合使用時,所有替換
"#"是分隔符
awk 一門語言,過濾內容(取列)
awk -F "分隔符" '{print $1}' 文件 <== $1第一列 $2第二列...$NF最後一列,$(NF-1)
NR 表明行號
$0 整行
例子:
awk -F ":" '{print $1" "$2}' /etc/passwd
yum == Linux包管理器, yum幫助解決依賴問題
rpm -ivh (安裝、顯示輸出、人類可讀展現)
例子: rpm -ivh 包名.rpm
yum install tree nmap sysstat lrzsz doc2unix -y
軟件包下載下來 rpm格式 rpm -ivh 包名
源代碼 ./configure; make; make install
yum install 更新全部軟件最新版本
tree 顯示目錄樹結構 -L 層數 -d 目錄
alias 查看以及定義別名
例子: alias oldboy='echo "I am oldboy"'
alias rm='echo "rm can not be used, pls use mv"'
別名生效的位置:針對root用戶:/root/.bashrc
全部用戶都生效:/etx/bashr或/etc/profile定義
生效 source /etc/profiles
unalias 取消別名
seq序列 -s 指定序列的分隔符 -w
用法:seq [選項]... 尾數
或:seq [選項]... 首數 尾數
或:seq [選項]... 首數 增量 尾數
history打印用戶操做的歷史紀錄-c清除全部記錄 -d清除指定記錄
hostname 查看主機名
uname 打印系統信息 -r內核 -m 32 or 64bit -n主機名 -a查看全部
whoami 查看當前用戶
su 用戶角色切換 su - 用戶名 -參數切換用戶環境變量
getenforce 檢查selinux狀態
setenforce 設置selinux狀態 1啓用 0 警告不啓用
runlevel 查看運行級別
init 切換運行界別,後面接對應級別的數字
快捷鍵:
TAB 命令、路徑補全
Ctrl+a 切換到命令行開始
Ctrl+e 切換到命令行末尾
Ctrl+l 清除屏幕內容
Ctrl+u 清除剪切光標以前的內容
Ctrl+k 清除剪切光標以後的內容
特殊字符命令:
>或1> 重定向,覆蓋
>>或1>> 追加劇定向,
<或<0 輸入重定向
<<或<<0 追加輸入重定向
2>錯誤重定向
2>>錯誤追加劇定向
箭頭的指向就是數據的流向
\ 讓一個有意義的字符,脫掉馬甲。
.. 上級目錄
. 當前目錄 \. 表明點號。
| 管道
~ 用戶的家目錄,針對root ~表明/root
{}
!...
標準輸入(stdin):代碼爲0,使用<或<<數據流向從右向左
標準正常輸出(stdout):代碼爲1,使用>或>>數據流向從左向右
標準錯誤輸出(stderr):代碼爲2,使用2>或2>>
查看默認文件描述符最大值 ulimit -n
查看進程: ps -ef
查看端口: netstat -lntup
查看配置的IP: ifconfig 或 ip add
關閉防火牆:/etc/init.d/iptables stop
cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core) 版本
uname -r
3.10.0-514.el7.x86_64 內核
uname -m
x86_64 32位仍是64位
hostname == uname -n
localhost.localdomain 主機名
init 6 重啓
init 5 === startx
tar zxvf python.xx.tgz 解壓
關閉SELinux
解法一:sed 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
getenforce
setenforce 0
關閉防火牆
/etc/init.d/iptables stop
Linux目錄結構:
頂點/,其餘全部目錄都在根下
linux目錄結構和磁盤分區是分離的。可自由組合
/
├── bin -> usr/bin
├── boot
├── dev
├── etc 放置系統配置文件
├── home
├── lib -> usr/lib
├── lib64 -> usr/lib64
├── media
├── mnt
├── opt
├── proc
├── root
├── run
├── sbin -> usr/sbin
├── srv
├── sys
├── tmp
├── usr
└── var
已知文件test.txt內容爲:
test
liyao
oldboy
請給出打印test.txt內容時,不包含oldboy字符串的命令
cat >> test.txt << EOF
test
liyao
oldboy
EOF
解法一:head -2 test.txt
解法二:grep -v "oldboy" test.txt
解法三:cat test.txt | grep -v oldboy test.txt
解法四:sed '/oldboy/d' test.txt
九、請用一條命令完成建立目錄/oldboy/test
mkdir -p /oldboy/test
十、已知/tmp目錄下已經存在test.txt文件,如何執行命令才能把/mnt/test.txt拷貝到/tmp下覆蓋掉/tmp/test.txt,而讓linux系統不提示是否覆蓋
解法一:/bin/cp /mnt/test.txt /tmp/test.txt
解法二:\cp /mnt/test.txt /tmp/test.txt
十一、 只查看ett.txt文件(100行)內第20行到第30行的內容
seq 100 > test.txt
解法一:head -n 30 test.txt | tail -n 11
解法二:sed -n '20,30p' test.txt
解法三:awk '{if(NR<31 && NR>19) print $1}' test.txt
解法四:grep 30 -B 10 test.txt
1三、把/oldboy目錄及其子目錄下全部以擴展名.sh的文件中包含./hostlists.txt的字符串所有替換爲../idctest_iplist
解法一: find ./ -type f -name "test.txt" | xargs sed -i 's#oldboy#oldgril#g'
解法二: find ./ -type f -name "test.txt" -exec sed -i 's#oldboy#oldgril#g' {} \;
echo 123456|passwd --stdin oldboy
非交互方式修改密碼
TIMEOUT=10: 鏈接的超時時間控制變量
HISTSIZE=5:命令行的歷史記錄數量變量
HISTFILESIZE=10:歷史記錄文件的命令數量變量(~/.bash_history)