本菜雞出現了。。。
第一次接觸Linux,相對老司機要差遠了,這幾個月的辣眼睛,我就承包了,希望越來越好~~~
————我是分割線,下面是正文————-
都是講過的東西,不過里面內容都是11手打,作業也自己做后再比對答案
一、–第一天的課程暫時不寫了,從第二天開始
–第二天開頭學了不少有意思的命令
whoami顯示當前用戶名
who am i顯示當前用戶詳細信息,包括登錄時間、終端名
who 這個顯示的是全部登錄的用戶名,包括更多的信息,這里就不寫了。
–比較好玩的就是對話:
通過tty獲得兩個終端的名稱,隨后兩個終端進行對話。
echo hello >/dev/pts/0
echo niyehello >dev/pts/2
不過要在一個用戶名之下,不然找不到
——————-我是分隔符——————是不是很明顯————
–echo、cat這兩個command還是常用的
–echo $SHELL、cat /etc/shells 注意空格
–vim的初步試用:i、q、q!、wq、x、esc、:、兩次esc
–type用來判斷命令的類型 type ls/echo
–enable管理內部命令 enable echo、enable -n echo、 enable、enable -a
–help幫助命令
–hash 剛才禁用echo,緩存在外部命令,可以用hash操作
hash-展示、hash-l詳細展示、hash -d echo刪除緩存路徑、hash -p /bin/echo手動添加一條緩存路徑
–PATH用來指定外部命令的搜索路徑:為間隔 $PATH
命令執行的順序 alias別名–command內部命令–hash–PATH
–whereis command which command
–alias alias do=”command”
多命令,分號分別執行:echo 123 ; ls ; ll
關機重啟沒有嘗試:halt/poweroff/init 0 reboot/init 6
–shutdown -r重啟、-關機、-c取消計劃關機、+0馬上關機,+1一分鐘后關機、20:00八點關機
—————————————-我又來了~—————————-
–date:
date展示的結果不好看,可以自己操作玩
date +%F年月日、T時分秒
date +%Y-%m-%d” “%H:%M:%S
date 月日時分年.秒 date -s”2012-12-12 12:12:12″
–hcclock或clock -s將硬時間寫入軟時間 -w將軟時間寫入硬時間
clcok -w ;date -s”2017-09-02 10:24:00″
cal日歷 cal 2017 cal 09 2018
–screen ssh連接他人ip地址
-ls列出全部screen -S 名稱 創建一個screen -x名稱 加入一個screen
–echo展示 -n不換行 -e解釋功能
下面開始裝逼時間:
“\a” 發出警告聲
“\b” 退格
“\c” 不換行
“\n” 換行且光標移至行首
“\r” 移至行首但不換行
“\t” 插入tab
while true ; do echo -e “\a” ; sleep 0.5 ;done
–$command 或`command`引用命令執行的結果
$[1+1]或$((1+1))運算
${變量名}或”$變量名”引用變量
–{}的用法
{1,10}、{1..10}、seq 1 10、seq{1,10}
–tab補齊
—————————–風騷如我,無處不見————————-
–history -c清空 -r將歷史追加到history最后 -n讀取未加載歷史 -a將當前終端歷史寫入/.bash_history
–ctrl+a光標跳行首 +e行尾 echo(alt+100)a輸出100個a
–whatis 顯示命令描述信息
–help內部命令 外部命令–help
–man字典
d、u、f、b,G、g、j、k都是翻頁鍵 /關鍵字 ?關鍵字類似于find,查找,找到后n向下N向上
q退出
–pwd 顯示當前工作目錄 -P目錄為軟連接時,顯示源目錄路徑 -L目錄為軟連接時,顯示鏈接目錄的路徑
–絕對路徑:從盤符開始的路徑:C:\windows\system64\xxx.xx
–相對路徑:從當前路徑開始的:system64\xxx.xx或.\xxx.xx
–cd就不寫了
–ls列出目錄內容
ls 列出
-a 列出所有文件,包括隱藏
-A列出所有文件,包括隱藏,但不包括.和..
-l 長列出(屬性)
-R 遞歸———————–這個記了
-l豎顯示
–touch
創建空文件,對oldfile的touch,沒記
–stat file 查看文件詳細屬性
–文件的通配符:
*任意
?任意單個
~ 家目錄
[0-9/a-zA-Z]范圍 [hello]取其中的五個匹配 ^脫字符(取反)
[[:digit:]] 表示任意數字
[[:alpha:]] 表示任意字母
[[:alnum:]] 表示任意字母或數字
[[:upper:]] 表示大寫字母
[[:lower:]] 表示小寫字母
[[:blank:]] 水平空白字符
[[:space:]] 水平或垂直空白字符
[[:punct:]] 特殊字符
小葵花課堂作業:
1、顯示/var目錄下所有以l開頭,以小寫字母結尾,中間必須有一個數字的文件或目錄
2、顯示/etc目錄下以任意一位數字開頭,且以非數字結尾的文件或目錄
3、顯示/etc目錄下以非字母開頭,后面跟了一個字母及其它任意長度任意字符的文件或目錄
4、顯示/etc/目錄下所有以rc開頭,并后面是0-6之間的數字,其他wei任意字符的文件或目錄
5、顯示/etc目錄下,所有以.d結尾的文件或目錄
6、顯示/etc目錄下,所有.conf結尾,且以m,n,r,p開頭的文件或目錄
7、只顯示/root下的隱藏文件和目錄
8、只顯示/etc下的非隱藏目錄
1、ls -d /var/l*[[:digit:]]*[[:lower:]]
2、ls -d /etc/[[:digit:]]*[^[:digit:]]
3、ls -d /etc/[^a-zA-Z]*[a-zA-z]*
4、ls -d /etc/rc[0-6]*
5、ls -d /etc/*.d
6、ls -d /etc/[mnrp]*.conf
7、ls -d /root/.*
8、ls -d /etc/*
—————————放學別走!————————–
cp 來源src 目的地dst
挑選一些命令:
-i覆蓋時提示(別名cp -i=cp) cp /app/123 /var
-r遞歸,可以復制目錄
-v 顯示復制過程
-p 等于 –preserv=mode,owner,timestamp 復制時保留權限,時間不變
-a 以上全部
作業:
1.定義別名命令baketc,當執行該別名時,會將/etc/目錄下所有文件,備份到名為/testdir的獨立目錄下,并要求生成的子目錄名稱格式為backYYYY-mm-dd(如back2017-08-31),備份過程可見
2.創建/testdir/rootdir目錄,并復制/root下所有文件到該目錄內,要求保留原有權限
1、alias baketc =’cp -a /etc /testdir/’ backYYYY-mm-dd(如back2017-08-31這個不會
2、mkdir /testdir/rootdir —>cp -p /root /testdir/rootdir
–mv src dst
dst可不存在,會創建,若存在-i詢問是否覆蓋,-f是直接覆蓋,不問
–rename 源格式 目標格式 原文件路徑
/app下touch 123.txt 456.txt
rename .txt .xls /app/*
–rm刪除
rm -rf 123xls
ls |xargs rm -rf 當刪除的文件數量過多,超過了所支持的參數數量上限時,可配合管道及xargs來刪除。
–no-preserve-root
–tree
-d只顯示目錄 -L num 只顯示制定level的目錄結構tree -L 2 testdir
–mkdir創建目錄
-p一次性創建多級目錄 -v創建時顯示信息 -m mode創建時指定權限
作業:
創建/testdir/dir1/x,/testdir/dir1/y,/testdir/dir1/x/a ,/testdir/dir1/x/b,/testdir/dir1/y/a,/testdir/dir1/y/b
創建/testdir/dir2/x,/testdir/dir2/y,/testdir/dir2/x/a,/testdir/dir2/x/b
創建/testdir/dir3,/testdir/dir4,/testdir/dir5,/testdir/dir5/6,/testdir/dir5/7
1、mkdir /testdir/dir1/{x,y}/{a,b}
2、mkdir /testdir/dir2/{x/{a,b},y}
3、mkdir -p testdir/dir{3,4,5/dir{6,7}}
錯誤示范。。。。缺少-p,不能創建多級目錄
–tr
[set1] [set2] 將set1轉換成set2,set1的位數多于set2時,多出的位數全轉成set2的最后一位,如tr abcd ef 即a轉成e,bcd均轉成f
-d [set1] 刪除set1的字符
-c [set1] [set2] 除了set1以外的剩下其他字符都轉換set2(換行符也會被轉)
-cd [set1] 刪除除set1以外的字符
-s [set1] 將連續重復的字符轉為一個
作業:
1、將/etc/issue文件中的內容轉換為大寫后保存至/tmp/issue.out文件中
2、將當前系統登錄用戶的信息轉換為大寫后保存至/tmp/who.out文件中
3、一個linux用戶給root發郵件,要求郵件標題為”help”,郵件正文如下:
Hello, I am 用戶名,The system version is here,please help me to
check it ,thanks!
操作系統版本信息
4、將/root/下文件列表,顯示成一行,并文件名之間用空格隔開
5、計算1+2+3+..+99+100的總和
6、刪除Windows文本文件中的‘^M’字符
7、處理字符串“xt.,l 1 jr#!$mn 2 c*/fe 3 uz 4”,只保留其中的數字和空格
8、將PATH變量每個目錄顯示在獨立的一行
9、將指定文件中0-9分別替代成a-j
10、將文件中每個單詞(由字母組成)顯示在獨立的一行,并無空行
答案:
1、tr a-z A-Z < /etc/issue > /tmp/issue.out
2、who |tr a-z A-Z > /tmp/who.out
3、echo -e “Hello, I am `whoami`,The system version is here,please
to check it ,thanks! \n`cat /etc/redhat-release`” |mail -s “help” root
4、ls -1 | tr ‘\n’ ‘ ‘
5、echo {1..100} |tr ‘ ‘ +|bc
6、tr -d ‘\r’ < win.txt
7、echo ‘xt.,l 1 jr#172.16.233.128mn 2 c*/fe 3 uz 4’ |tr -dc [0-9][:blank:]
8、echo $PATH|tr : ‘\n’
9、cat /etc/fstab | tr [0-9] [a-j]
10、cat a | tr ‘ ‘ ‘\n’ | tr -s ‘\n’
—————————快下課了———————-
<標準輸入符
>標準輸出符(覆蓋)
>>追加
標準錯誤輸出
2>覆蓋
2>>追加
將標準正確輸出轉換為標準錯誤輸出
1>&2
將標準錯誤輸出轉換為標準正確輸出
2>&1
將所有輸出結果輸出
&> 覆蓋
&>> 追加|
&> /dev/null 丟入null
管道符 |
將前一條命令的正確輸出結果傳遞給后面一條命令使用 ehco hj123 |tr hj aa
tee 對輸出結果進行復制
echo hello |tee -a /root/test.txt |tr a-z A-Z
-a 表示追加,如不加則覆蓋
原創文章,作者:oranix,如若轉載,請注明出處:http://www.www58058.com/85842