Linux學習筆記


命令 --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)

相關文章
相關標籤/搜索