Git 是一個開源的分布式版本控制系統(tǒng)。
版本控制(Revision control)是一種在開發(fā)的過程中用于管理我們對文件、目錄或工程等內(nèi)容的修改歷史,方便查看更改歷史記錄,備份以便恢復以前的版本的軟件工程技術(shù)。
作用:
簡單說就是用于管理多人協(xié)同開發(fā)項目的技術(shù)。
目前使用最廣泛的是Git與SVN。
他們主要的區(qū)別:
在這里插入圖片描述
在這里插入圖片描述
在 git 誕生之前,Torvalds 選擇使用 BitKeeper 進行 Linux 版本管理。BitKeeper 是一個閉源的商業(yè)軟件,這個決定長期受到社區(qū)的質(zhì)疑和爭議。 2005 年,一位 Linux 開發(fā)成員 Andrew(Samba 協(xié)議之父)寫了一個可以連接 BitKeeper 倉庫的外掛,因此 BitMover 公司(BitKeeper 持有者)認為他反編譯了 BitKeeper。BitMover 決定中止 Linux 免費使用 BitKeeper 的授權(quán)。最終 Linux 團隊與 BitMover 磋商無果,Torvalds 決定開發(fā)自己的版本管理系統(tǒng)。 十天后,git 誕生了。 你沒有看錯。git 從開始到誕生,Torvalds 這位天才只用了 10 天的時間。 Git是目前世界上最先進的分布式版本控制系統(tǒng)。
注 : Git作者 Linus Torvalds(林納斯·托瓦茲,同時也是 Linux 之父)1969,芬蘭
Git官方下載地址:http://git-scm.com/downloads
官網(wǎng)慢,可以用國內(nèi)的鏡像:https://npm.taobao.org/mirrors/git-for-windows/
下載對應的版本即可安裝! 無腦點擊下一步即可!自動配置環(huán)境變量!
完成安裝后:
在這里插入圖片描述
Git Bash:Unix與Linux風格的命令行,使用最多,推薦最多
Git CMD:Windows風格的命令行
Git GUI:圖形界面的Git,不建議初學者使用,盡量先熟悉常用命令Git 配置
cd : 改變目錄
cd .. :回退到上一個目錄,直接cd進入默認目錄
pwd : 顯示當前所在的目錄路徑
ls : 都是列出當前目錄中的所有文件
touch :新建一個文件 如touch index.js就會在當前目錄下新建一個index.js
rm :刪除一個文件, rm index.js就會把index.js文件刪除
mkdir :新建一個目錄,就是新建一個文件夾
rm -r 刪除一個文件夾,rm -r src 刪除src目錄
mv 移動文件, mv index.html src index.html 是我們要移動的文件,src是目標文件夾
reset :重新初始化終端/清屏
clear 清屏
history 查看命令歷史
help 幫助
exit 退出
# 表示注釋
如果用了 —global 選項,那么更改的配置文件就是位于你用戶主目錄下的那個,以后你所有的項目都會默認使用這里配置的用戶信息。
如果要在某個特定的項目中使用其他名字或者電郵,只要去掉 —global 選項重新配置即可,新的設定保存在當前項目的 .git/config 文件里。
在這里插入圖片描述
工作區(qū)域
在這里插入圖片描述
常用命令:
在這里插入圖片描述
在這里插入圖片描述
因此,git管理的文件有三種狀態(tài):已修改(modified),已暫存(staged),已提交(committed)
在這里插入圖片描述
日常使用命令:
在這里插入圖片描述
1.新建目錄
在這里插入圖片描述
2.git init 初始化(注,這是隱藏的文件)
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
查看文件狀態(tài)
#查看指定文件狀態(tài)
git status [filename]
# 查看所有文件狀態(tài)
git status
#git add . 添加所有文件到暫存區(qū)
#git commit -m "消息內(nèi)容" 提交暫存區(qū)的內(nèi)容到本地倉庫 -m 提交信息
忽略文件
有些時候我們不想把某些文件納入版本控制中,比如數(shù)據(jù)庫文件,臨時文件等。 在主目錄下建立”.gitignore”文件,此文件有如下規(guī)則:
1.忽略文件中的空行或以井號(#)開始的行將會被忽略。
2.可以使用Linux通配符。例如:星號(*)代表任意多個字符,問號(?)代表一個字符,方括號 ([abc])代表可選字符范圍,大括號({string1,string2,…})代表可選的字符串等。
3.如果名稱的最前面有一個感嘆號(!),表示例外規(guī)則,將不被忽略。
4.如果名稱的最前面是一個路徑分隔符(/),表示要忽略的文件在此目錄下,而子目錄中的文件不忽略。
5.如果名稱的最后面是一個路徑分隔符(/),表示要忽略的是此目錄下該名稱的子目錄,而非文件(默認文件或目錄都忽略)。
#為注釋
*.txt #忽略所有 .txt結(jié)尾的文件
!lib.txt #但lib.txt除外
/temp #僅忽略項目根目錄下的TODO文件,不包括其它目錄temp
build/ #忽略build/目錄下的所有文件
doc/*.txt #會忽略 doc/notes.txt 但不包括 doc/server/arch.txt
官網(wǎng):https://gitee.com/ 官網(wǎng)教程:https://gitee.com/help/articles/4122
可以設置綁定SSH公鑰,實現(xiàn)免密碼登錄!
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
注:所以還有第二種集成git的方法,待補充!!!
在這里插入圖片描述
git分支中常用指令:
# 列出所有本地分支
git branch
# 列出所有遠程分支
git branch -r
# 新建一個分支,但依然停留在當前分支
git branch [branch-name]
# 新建一個分支,并切換到該分支
git checkout -b [branch]
# 切換分支
git checkout [branch]
# 合并指定分支到當前分支
$ git merge [branch]
# 刪除分支
$ git branch -d [branch-name]
# 刪除遠程分支
$ git push origin --delete [branch-name]
$ git branch -dr [remote/branch]
如果同一個文件在合并分支時都被修改了則會引起沖突: 解決引起沖突辦法::
注: master主分支應該非常穩(wěn)定,用來發(fā)布新版本,一般情況下不允許在上面工作,工作一般情況下在新建的dev分支上工作,工作完后,代碼穩(wěn)定了,再合并到主分支上來。 比如上要發(fā)布,或者說dev分支代碼穩(wěn)定后可以合并到主分支master上來。
部好的紀錄片,能為孩子打開一扇門,走進更廣闊的人生風景。
今天為大家?guī)韲覐V播電視總局推選出的2021年第一季度優(yōu)秀國產(chǎn)紀錄片、2021年第二季度優(yōu)秀國產(chǎn)紀錄片共89部。
內(nèi)附觀看鏈接,家長們閑暇之余,不妨陪孩子選一部喜歡的紀錄片一起觀賞吧。
2021年第一季度
優(yōu)秀國產(chǎn)紀錄片
《中國冰雪道路》
出發(fā)篇
《中國新疆之歷史印記》
《書簡閱中國》
《八月桂花遍地開》
《塞上江南 》
《年畫·畫年》
《我是獵鷹特戰(zhàn)女兵》
《擺脫貧困》
《正風反腐就在身邊》
《民之法典》
《熱的雪——偉大的抗美援朝》
《王陽明》
《留法歲月》
《石油的故事》
《福建歷史文化名城》
《遠方未遠——一帶一路上的華僑華人》
《隱匿殺手》
《青海:我們的國家公園》
《尋路鄉(xiāng)村中國》
《天山南北采棉人——“一帶一路”上的黔江人》
《一支疫苗的誕生》
《一級響應》
《東京審判》第三季
《東向大海》
《中國減貧密碼》
《豐碑——新疆脫貧攻堅紀實》
《習近平的扶貧故事》
《江河情緣》
《冬景勝春華》
《古鎮(zhèn)里的年輕人》
《我愛中國造》
《敦煌:生而傳奇》
《旱井》
《智慧中國:前沿科學》
《木香》
《武漢日夜》
《漫步長安街》
《煙火拾味》
《生命緣:健康中國實踐者》
《米爾斯探秘生態(tài)中國》
《脫貧大決戰(zhàn)——我們的故事》
《苗鼓聲聲寄少年》
《蔬菜改變中國》
《行進中的中國》
《鐵軍:新四軍的故事》
《閩寧紀事》
《雪龍二號》
《面孔——24小時》
觀看地址
http://www.docuchina.cn/special/2021zb/index.shtml?spm=C70862.P63098527977.EnIadVg5dlDe.1
2021年第二季度
優(yōu)秀國產(chǎn)紀錄片
《敢教日月?lián)Q新天》
觀看地址:
http://tv.cctv.com/2021/06/18/VIDAGr17Tj2dDO4M1VxEOLzC210618.shtml
《國家公園:
野生動物王國》
觀看地址:
https://tv.cctv.com/2021/06/05/VIDEqoB0TJopGjCOQ28isfKR210605.shtml
《山河歲月(第一季)》
觀看地址:
https://tv.cctv.com/2021/05/17/VIDAIlHsIGuLEKDR2mMjsTae210517.shtml
《飛向月球(第二季)》
觀看地址:
http://tv.cctv.com/2021/04/24/VIDAeIxoUjViVsoxIdYbHqnp210424.shtml
《暗流涌動》
觀看地址:
https://tv.cctv.com/2021/04/01/VIDAsn1PEDk2Wu5uOs2tHXga210401.shtml
《長江之歌》
觀看地址:
https://tv.cctv.com/2020/12/25/VIDAY6l0NZpBCDGYL1qdv8a2201225.shtml
《絕筆》
觀看地址:
https://tv.cctv.com/2021/07/01/VIDATf4TyekfM0tQTLgn5mZG210701.shtml
《告別貧困》
觀看地址:
https://tv.cctv.com/2021/02/24/VIDA7p5hC091LW55VDQEARvC210224.shtml
https://tv.cctv.com/2021/03/08/VIDEjy4ZTFHTrF6hNEEeNeKU210308.shtml
《家事如天》
觀看地址:
http://tv.cctv.com/2012/12/17/VIDA1355686068919882.shtml
《青春之我(第一季)》
《我們一起走過》
觀看地址:
http://tv.cctv.com/2018/11/23/VIDAQvn9XdVZ4iNYK5H9uuAE181123.shtml
《野性的呼喚(第二季)》
觀看地址:
https://tv.cctv.com/2021/06/15/VIDAwk162kiGeX2P3EvtujOF210615.shtml
《刺刀下的勞工》
觀看地址:
https://tv.cctv.com/2021/03/31/VIDAqzHtL2obDDJgyqSQGT6d210331.shtml
《我的時代和我
(第二季)》
觀看地址:
https://v.youku.com/v_show/id_XNTE3MjQ2NDI4OA==.html?spm=a2hbt.13141534.1_3.1&s=adfbaa0c12dc44ee8552&scm=20140719.apircmd.61517.video_XNTE3MjQ2NDI4OA==
《一直看著你來的路口》
觀看地址:
https://www.iqiyi.com/v_27xxlm09msw.html?vfm=2008_aldbd&fv=p_02_01
《百年巨匠——建筑篇》
觀看地址:
https://www.iqiyi.com/v_12bd6mvu0lo.html
《我為冬奧制戰(zhàn)衣》
《曙光》
觀看地址:
https://www.bilibili.com/video/BV1th411a76i
《初心李大釗》
觀看地址:
https://www.bilibili.com/bangumi/play/ep413256?bsource=baidu_aladdin
《誕生地》
觀看地址:
https://www.bilibili.com/video/BV12o4y1Q7B3
《六個團子》
觀看地址:
https://www.iqiyi.com/a_21kjj2v44j5.html?vfrm=pcw_jilupian&vfrmblk=B
《百年大黨——老外講故事·上海解放特輯》
觀看地址:
https://www.bilibili.com/video/av418463841/
《下飯菜》
觀看地址:
https://www.iqiyi.com/a_1oujltvxxj1.html
《理想照耀中國
http://jishi.cntv.cn/2015/05/04/VIDA1430732804999543.shtml
《百煉成鋼:中國共產(chǎn)黨的100年》
觀看地址:
http://tv.people.com.cn/n1/2021/0330/c61600-32065047.html
《聲歌嘹亮》
觀看地址:
https://www.sohu.com/a/472881874_121106832
《我與大運河》
觀看地址:
https://tv.cctv.com/2021/06/21/VIDAsVKSe3VoeLvlfhd5ruzB210621.shtml
《雪域戍邊人》
觀看地址:
https://www.bilibili.com/bangumi/play/ep391070
《年輕黨員云在線》
觀看地址:
https://www.mgtv.com/h/368366.html
《書店與菜市場》
觀看地址:
https://www.mgtv.com/h/365544.html
《雜交水稻之父袁隆平》
觀看地址:
https://www.mgtv.com/h/371287.html
《一代天嬌——紅線女(粵語版)》
《秘境神草》
觀看地址:
https://www.miguvideo.com/mgs/website/prd/detail.html?cid=714974252&channelId=CAAAB000902005900000000&pwId=85f718dd360f4b0c86b195931a57fdf4
《家在青山綠水間——
更好的日子》
觀看地址:
https://vod.gxtv.cn/video/videoShow_80345c33bd85460bbfcc1094dc34d4f6.html
《外國作家筆下的
百年成都》
《放羊的畫家》
觀看地址:
http://www.gsjqtv.com/folder6/folder25/folder72/folder110/2021-05-06/109609.html
《不辭長作新疆人》
觀看地址:
http://www.xjkunlun.gov.cn/jzhxjg/wwey/120255.htm
《重返紅旗渠》
觀看地址:
http://www.centv.cn/p/400474.html
《解碼戰(zhàn)疫24小時》
觀看地址:
http://www.centv.cn/z/350197/
《東方醫(yī)學》
觀看地址:
https://www.bilibili.com/bangumi/media/md28234601/?spm_id_from=666.25.b_6d656469615f6d6f64756c65.1
本文部分素材綜合自國家廣播電視總局官網(wǎng)、中國紀錄片網(wǎng)等。
來源: 首都教育
@Author: Runsen」
Linux系統(tǒng)的命令通常都是如下所示的格式:
命令名稱 [命名參數(shù)] [命令對象]
獲取登錄信息 - 「w」 / 「who」 / 「last」/ 「lastb」。
maoli@ubuntu:~$ w
08:07:38 up 2 min, 1 user, load average: 0.83, 0.64, 0.27
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
maoli tty7 :0 08:06 2:38 2.29s 0.31s /sbin/upstart -
maoli@ubuntu:~$ who
maoli tty7 2020-05-28 08:06 (:0)
maoli@ubuntu:~$ last
maoli tty7 :0 Thu May 28 08:06 gone - no logout
reboot system boot 4.15.0-99-generi Thu May 28 08:04 still running
maoli tty7 :0 Fri May 1 15:20 - down (01:26)
reboot system boot 4.15.0-99-generi Fri May 1 15:20 - 16:47 (01:26)
maoli tty7 :0 Fri May 1 10:12 - crash (05:08)
wtmp begins Fri May 1 10:12:22 2020
maoli@ubuntu:~$ sudo lastb
[sudo] maoli 的密碼:
btmp begins Fri May 1 15:20:29 2020
查看自己使用的Shell - 「ps」。
Shell也被稱為“殼”或“殼程序”,它是用戶與操作系統(tǒng)內(nèi)核交流的翻譯官,簡單的說就是人與計算機交互的界面和接口。目前很多Linux系統(tǒng)默認的Shell都是bash(Bourne Again SHell),因為它可以使用tab鍵進行命令和路徑補全、可以保存歷史命令、可以方便的配置環(huán)境變量以及執(zhí)行批處理操作。
maoli@ubuntu:~$ ps
PID TTY TIME CMD
3621 pts/1 00:00:00 bash
5082 pts/1 00:00:00 ps
查看命令的說明和位置 - 「whatis」 / 「which」 / 「whereis」。
maoli@ubuntu:~$ whatis ps
ps (1) - report a snapshot of the current processes.
maoli@ubuntu:~$ whatis python
python (1) - an interpreted, interactive, object-oriented programmi...
maoli@ubuntu:~$ whereis ps
ps: /bin/ps /usr/share/man/man1/ps.1.gz
maoli@ubuntu:~$ whereis python
python: /usr/bin/python3.5m-config /usr/bin/python /usr/bin/python3.5 /usr/bin/python3.5m /usr/bin/python2.7 /usr/bin/python3.5-config /usr/lib/python3.5 /usr/lib/python2.7 /etc/python /etc/python3.5 /etc/python2.7 /usr/local/lib/python3.5 /usr/local/lib/python2.7 /usr/include/python3.5 /usr/include/python3.5m /usr/share/python /usr/share/man/man1/python.1.gz
maoli@ubuntu:~$ which ps
/bin/ps
maoli@ubuntu:~$ which python
/usr/bin/python
清除屏幕上顯示的內(nèi)容 - 「clear」。
查看幫助文檔 - 「man」 / 「info」 / 「help」 / 「apropos」。
maoli@ubuntu:~$ ps --help
Usage:
ps [options]
Try 'ps --help <simple|list|output|threads|misc|all>'
or 'ps --help <s|l|o|t|m|a>'
for additional help text.
For more details see ps(1).
maoli@ubuntu:~$ man ps
PS(1) User Commands PS(1)
NAME
ps - report a snapshot of the current processes.
SYNOPSIS
ps [options]
DESCRIPTION
...
查看系統(tǒng)和主機名 - 「uname」 / 「hostname」。
maoli@ubuntu:~$ uname
Linux
maoli@ubuntu:~$ hostname
ubuntu
時間和日期 - 「date」 / 「cal」。
maoli@ubuntu:~$ date
2020年 05月 28日 星期四 08:13:25 CST
maoli@ubuntu:~$ cal
五月 2020
日 一 二 三 四 五 六
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
maoli@ubuntu:~$ cal 5 2020
五月 2020
日 一 二 三 四 五 六
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
maoli@ubuntu:~$ shutdown -h +5 #五分鐘關機
Shutdown scheduled for 四 2020-05-28 08:19:24 CST, use 'shutdown -c' to cancel. [root ~]#
maoli@ubuntu:~$ shutdown -c
maoli@ubuntu:~$ shutdown -r 12:00
Shutdown scheduled for 四 2020-05-28 12:00:00 CST, use 'shutdown -c' to cancel
maoli@ubuntu:~$ shutdown -c
說明:在執(zhí)行shutdown命令時會向登錄系統(tǒng)的用戶發(fā)出警告,可以在命令后面跟上警告消息來替換默認的警告消息,也可以在-h參數(shù)后通過now來表示立刻關機。
退出登錄 - 「exit」 / 「logout」。
查看歷史命令 - 「history」。
maoli@ubuntu:~$ history
...
625 date
626 cal
627 cal 5 2020
628 shutdown -c
629 shutdown -r 12:00
630 shutdown -c
631 history
maoli@ubuntu:~$ !631
說明:查看到歷史命令之后,可以用!歷史命令編號來重新執(zhí)行該命令;通過history -c可以清除歷史命令。
創(chuàng)建/刪除空目錄 - 「mkdir」 / 「rmdir」。
[root ~]# mkdir runsen
[root ~]# mkdir -p abc/runsen
[root ~]# rmdir runsen
創(chuàng)建/刪除文件 - 「touch」 / 「rm」。
maoli@ubuntu:~$ touch readme.txt
maoli@ubuntu:~$ rm readme.txt
rm: remove regular empty file ‘readme.txt ’? y
[root ~]# rm -rf xyz
說明:cd命令后面可以跟相對路徑(以當前路徑作為參照)或絕對路徑(以/開頭)來切換到指定的目錄,也可以用cd ..來返回上一級目錄。返回到上上一級目錄應該給cd ../../命令。
查看目錄內(nèi)容 - 「ls」。
查看文件內(nèi)容 - 「cat」 / 「tac」 / 「head」 / 「tail」 / 「more」 / 「less」 / 「rev」 / 「od」。
maoli@ubuntu:~$ wget https://www.csdn.net/
--2020-05-28 08:25:01-- https://www.csdn.net/
正在解析主機 www.csdn.net (www.csdn.net)... 47.95.164.112
正在連接 www.csdn.net (www.csdn.net)|47.95.164.112|:443... 已連接。
已發(fā)出 HTTP 請求,正在等待回應... 200 OK
長度: 未指定 [text/html]
正在保存至: “index.html”
index.html [ <=> ] 420.39K 1.53MB/s in 0.3s
2020-05-28 08:25:02 (1.53 MB/s) - “index.html” 已保存 [430482]
maoli@ubuntu:~$ cat index.html
<!DOCTYPE html>
...
maoli@ubuntu:~$ head -10 index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=Edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="referrer"content="always">
<meta name="msvalidate.01" content="3189512127C34C46BC74BED5852D45E4" />
<title>CSDN-專業(yè)IT技術(shù)社區(qū)</title>
maoli@ubuntu:~$ tail -2 index.html
<script src="https://g.csdnimg.cn/side-toolbar/2.0/side-toolbar.js"></script>
</html>
maoli@ubuntu:~$ less index.html #相當于cat
maoli@ubuntu:~$ cat -n index.html |more
...
說明:上面用到了一個名為wget的命令,它是一個網(wǎng)絡下載器程序,可以從指定的URL下載資源。
拷貝/移動文件 - 「cp」 / 「mv」。
maoli@ubuntu:~$ mkdir backup
maoli@ubuntu:~$ cp index.html backup/
maoli@ubuntu:~$ cd backup/
maoli@ubuntu:~/backup$ ls
index.html
maoli@ubuntu:~/backup$ mv index.html csdn.html
maoli@ubuntu:~/backup$ ls
csdn.html
文件重命名 - 「rename」。
查找文件和查找內(nèi)容 - 「find」 / 「grep」。
maoli@ubuntu:~/backup$ find ./ -name "*.html"
./csdn.html
maoli@ubuntu:~/backup$ find / -name "*.html"
/usr/local/java/jdk-11.0.6/README.html
/usr/local/python3/lib/python3.6/idlelib/help.html
/usr/local/python3/lib/python3.6/test/sgml_input.html
/usr/local/python3/lib/python3.6/test/test_difflib_expect.html
...
maoli@ubuntu:~/backup$ find . -type f -size +2k
./csdn.html
maoli@ubuntu:~/backup$ find . -type f -name "*.swp" -delete
maoli@ubuntu:~/backup$ grep "<script>" csdn.html -n
3192: <script>
maoli@ubuntu:~/backup$ grep -E \<\/?script.*\> csdn.html -n
12: <script src='//g.csdnimg.cn/tingyun/1.8.3/www.js' type='text/javascript'></script>
18: <script src="//csdnimg.cn/public/common/libs/jquery/jquery-1.9.1.min.js" type="text/javascript"></script>
19: <script src="//g.csdnimg.cn/??login-box/1.0.7/login-box.js,login-box/1.0.7/login-auto.js" type="text/javascript"></script>
...
說明:grep在搜索字符串時可以使用正則表達式,如果需要使用正則表達式可以用grep -E或者直接使用egrep。
創(chuàng)建鏈接和查看鏈接 - 「ln」 / 「readlink」。
maoli@ubuntu:~/backup$ ls -l csdn.html
-rw-rw-r-- 1 maoli maoli 430482 5月 28 08:30 csdn.html
maoli@ubuntu:~/backup$ ln /home/maoli/backup/csdn.html /home/maoli/csdn
maoli@ubuntu:~/backup$ ls -l csdn.html
-rw-rw-r-- 2 maoli maoli 430482 5月 28 08:30 csdn.html
說明:鏈接可以分為硬鏈接和軟鏈接(符號鏈接)。硬鏈接可以認為是一個指向文件數(shù)據(jù)的指針,就像Python中對象的引用計數(shù),每添加一個硬鏈接,文件的對應鏈接數(shù)就增加1,只有當文件的鏈接數(shù)為0時,文件所對應的存儲空間才有可能被其他文件覆蓋。我們平常刪除文件時其實并沒有刪除硬盤上的數(shù)據(jù),我們刪除的只是一個指針,或者說是數(shù)據(jù)的一條使用記錄,所以類似于“文件粉碎機”之類的軟件在“粉碎”文件時除了刪除文件指針,還會在文件對應的存儲區(qū)域填入數(shù)據(jù)來保證文件無法再恢復。軟鏈接類似于Windows系統(tǒng)下的快捷方式,當軟鏈接鏈接的文件被刪除時,軟鏈接也就失效了。
.壓縮/解壓縮和歸檔/解歸檔 - 「gzip」 / 「gunzip」 / 「xz」。
maoli@ubuntu:~$ ls
redis-4.0.10.tar.tar.gz
maoli@ubuntu:~$ gunzip redis-4.0.10.tar.tar.gz
maoli@ubuntu:~$ ls
redis-4.0.10.tar.tar
歸檔和解歸檔 - 「tar」。
maoli@ubuntu:~$ tar -xvf redis-4.0.10.tar
redis-4.0.10/
redis-4.0.10/.gitignore
redis-4.0.10/00-RELEASENOTES
redis-4.0.10/BUGS
redis-4.0.10/CONTRIBUTING
redis-4.0.10/COPYING
redis-4.0.10/INSTALL
redis-4.0.10/MANIFESTO
redis-4.0.10/Makefile
redis-4.0.10/README.md
redis-4.0.10/deps/
redis-4.0.10/deps/Makefile
redis-4.0.10/deps/README.md
...
說明:歸檔(也稱為創(chuàng)建歸檔)和解歸檔都使用tar命令,通常創(chuàng)建歸檔需要-cvf三個參數(shù),其中c表示創(chuàng)建(create),v表示顯示創(chuàng)建歸檔詳情(verbose),f表示指定歸檔的文件(file);解歸檔需要加上-xvf參數(shù),其中x表示抽取(extract),其他兩個參數(shù)跟創(chuàng)建歸檔相同。
將標準輸入轉(zhuǎn)成命令行參數(shù) - 「xargs」。
下面的命令會將查找當前路徑下的html文件,然后通過xargs將這些文件作為參數(shù)傳給rm命令,實現(xiàn)查找并刪除文件的操作。
maoli@ubuntu:~$ find . -type f -name "*.html" | xargs rm -f
下面的命令將a.txt文件中的多行內(nèi)容變成一行輸出到b.txt文件中,其中<表示從a.txt中讀取輸入,>表示將命令的執(zhí)行結(jié)果輸出到b.txt中。
maoli@ubuntu:~$ xargs < a.txt > b.txt
顯示文件或目錄 - 「basename」 / 「dirname」。
其他相關工具。
maoli@ubuntu:~$ cat foo.txt
grape
apple
pitaya
maoli@ubuntu:~$ cat bar.txt
100
200
300
400
maoli@ubuntu:~$ paste foo.txt bar.txt
grape 100
apple 200
pitaya 300
400
maoli@ubuntu:~$ paste foo.txt bar.txt > hello.txt
maoli@ubuntu:~$ cut -b 4-8 hello.txt
pe 10
le 20
aya 3
0
maoli@ubuntu:~$ cat hello.txt | tr '\t' ','
grape,100
apple,200
pitaya,300
,400
maoli@ubuntu:~$ split -l 100 sohu.html hello
maoli@ubuntu:~$ wget https://www.baidu.com/img/bd_logo1.png
maoli@ubuntu:~$ file bd_logo1.png
bd_logo1.png: PNG image data, 540 x 258, 8-bit colormap, non-interlaced
maoli@ubuntu:~$ wc index.html
3820 18696 430482 index.html
maoli@ubuntu wget http://www.qq.com -O qq.html
maoli@ubuntu iconv -f gb2312 -t utf-8 qq.html
管道的使用 - 「|」。
例子:查找當前目錄下文件個數(shù)。
maoli@ubuntu:~$ find ./ | wc -l
80801
例子:列出當前路徑下的文件和文件夾,給每一項加一個編號。
maoli@ubuntu:~$ ls | cat -n
1 abc
2 backup
例子:查找record.log中包含AAA,但不包含BBB的記錄的總數(shù)
maoli@ubuntu:~$ cat record.log | grep AAA | grep -v BBB | wc -l
輸出重定向和錯誤重定向 - 「>」 / 「>>」 / 「2>」。
maoli@ubuntu:~$ cat readme.txt
banana
apple
grape
apple
grape
watermelon
pear
pitaya
maoli@ubuntu:~$ cat readme.txt | sort | uniq > result.txt
maoli@ubuntu:~$ cat result.txt
apple
banana
grape
pear
pitaya
watermelon
輸入重定向 - 「<」。
maoli@ubuntu:~$ echo 'hello, world!' > hello.txt
maoli@ubuntu:~$ echo 'I will show you some code.' >> hello.txt
maoli@ubuntu:~$ cat hello.txt
hello, world!
I will show you some code.
多重定向 - 「tee」。
下面的命令除了在終端顯示命令ls的結(jié)果之外,還會追加輸出到ls.txt文件中。
maoli@ubuntu:~$ ls | tee -a ls.txt
maoli@ubuntu:~$ cat ls.txt
abc
backup
「alias」創(chuàng)建別名
maoli@ubuntu:~$ alias ll='ls -l'
maoli@ubuntu:~$ alias frm='rm -rf'
maoli@ubuntu:~$ ll
量 144920
drwxrwxr-x 3 maoli maoli 4096 5月 28 08:20 abc
maoli@ubuntu:~$frm abc
「unalias」刪除別名
maoli@ubuntu:~$ funalias frm
maoli@ubuntu:~$ frm index.html
-bash: frm: command not found
字符流編輯器 - 「sed」。
sed是操作、過濾和轉(zhuǎn)換文本內(nèi)容的工具。假設有一個名為fruit.txt的文件,內(nèi)容如下所示。
maoli@ubuntu:~$ cat -n fruit.txt
1 banana
2 grape
3 apple
4 watermelon
5 orange
接下來,我們在第2行后面添加一個pitaya。
maoli@ubuntu:~$ sed '2a pitaya' fruit.txt
banana
grape
pitaya
apple
watermelon
orange
在第2行前面插入一個waxberry。
maoli@ubuntu:~$ sed '2i waxberry' fruit.txt
banana
waxberry
grape
apple
watermelon
orange
刪除第3行。
maoli@ubuntu:~$ sed '3d' fruit.txt
banana
grape
watermelon
orange
刪除第2行到第4行。
maoli@ubuntu:~$ sed '2,4d' fruit.txt
banana
orange
將文本中的字符a替換為@。
maoli@ubuntu:~$ sed 's#a#@#' fruit.txt
b@nana
gr@pe
@pple
w@termelon
or@nge
將文本中的字符a替換為@,使用全局模式。
maoli@ubuntu:~$ sed 's#a#@#g' fruit.txt
b@n@n@
gr@pe
@pple
w@termelon
or@nge
模式匹配和處理語言 - 「awk」。
awk是一種編程語言,也是Linux系統(tǒng)中處理文本最為強大的工具,它的作者之一和現(xiàn)在的維護者就是之前提到過的Brian Kernighan(ken和dmr最親密的伙伴)。通過該命令可以從文本中提取出指定的列、用正則表達式從文本中取出我們想要的內(nèi)容、顯示指定的行以及進行統(tǒng)計和運算,總之它非常強大。
假設有一個名為fruit2.txt的文件,內(nèi)容如下所示。
\maoli@ubuntu:~$ cat fruit2.txt
1 banana 120
2 grape 500
3 apple 1230
4 watermelon 80
5 orange 400
顯示文件的第3行。
maoli@ubuntu:~$ awk 'NR==3' fruit2.txt
3 apple 1230
顯示文件的第2列。
maoli@ubuntu:~$awk '{print $2}' fruit2.txt
banana
grape
apple
watermelon
orange
顯示文件的最后一列。
maoli@ubuntu:~$ awk '{print $NF}' fruit2.txt
120
500
1230
80
400
輸出末尾數(shù)字大于等于300的行。
maoli@ubuntu:~$ awk '{if($3 >= 300) {print $0}}' fruit2.txt
2 grape 500
3 apple 1230
5 orange 400
創(chuàng)建和刪除用戶 - 「useradd」 / 「userdel」。需要用root賬號創(chuàng)建
maoli@ubuntu:~$ su root
密碼:
root@ubuntu:/home/maoli# useradd Runsen
root@ubuntu:/home/maoli# userdel Runsen
創(chuàng)建和刪除用戶組 - 「groupadd」 / 「groupdel」。
用戶組主要是為了方便對一個組里面所有用戶的管理。
修改密碼 - 「passwd」。
root@ubuntu:/home/maoli# passwd maoli
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
如果使用passwd命令時沒有指定命令作用的對象,則表示要修改當前用戶的密碼。如果想批量修改用戶密碼,可以使用chpasswd命令。
查看和修改密碼有效期 - 「chage」。
設置maoli用戶100天后必須修改密碼,過期前15天通知該用戶,過期后15天禁用該用戶。
root@ubuntu:/home/maoli# chage -M 100 -W 15 -I 15 maoli
root@ubuntu:/home/maoli# su maoli
maoli@ubuntu:~$
以管理員身份執(zhí)行命令 - 「sudo」。
maoli@ubuntu:~$ ls /root
ls: cannot open directory /root: Permission denied
maoli@ubuntu:~$
sudo ls /root
[sudo] password for maoli:
「說明」:如果希望用戶能夠以管理員身份執(zhí)行命令,用戶必須要出現(xiàn)在sudoers名單中,sudoers文件在 /etc目錄下,如果希望直接編輯該文件也可以使用下面的命令。
編輯sudoers文件 - 「visudo」。
這里使用的編輯器是vim,關于vim的知識在前面有講解。
五十二、ViM的使用 該文件的部分內(nèi)容如下所示:
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
## Allows members of the 'sys' group to run networking, software,
## service management apps and more.
# %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS
## Allows people in group wheel to run all commands
%wheel ALL=(ALL) ALL
## Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL
## Allows members of the users group to mount and unmount the
## cdrom as root
# %users ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom
## Allows members of the users group to shutdown this system
# %users localhost=/sbin/shutdown -h now
顯示用戶與用戶組的信息 - 「id」。
root@ubuntu:/home/maoli# id
uid=0(root) gid=0(root) 組=0(root)
給其他用戶發(fā)消息 -「write」 / 「wall」。
發(fā)送方:
root@ubuntu# write maoli
Hello Maoli
EOF
鍵入EOF表示信息結(jié)束,用Crtl+D組合鍵發(fā)送信息。輸入內(nèi)容會出現(xiàn)在用戶的屏幕上,同時通信中止。 接收方:
maoli@ubuntu:~$
Message from root on pts/0 at 9:41 ...
Hello Maoli
EOF
maoli@ubuntu:~$ mesg
is y
maoli@ubuntu:~$ mesg n
maoli@ubuntu:~$ mesg
is n
如果想要發(fā)送一條信息給系統(tǒng)中所有用戶,可以使用wall命令,wall表示:write all。輸入wall,然后編輯信息,如果shell支持可以使用中文。然后使用Crtl+D組合鍵發(fā)送信息。這樣系統(tǒng)所有登錄用戶的桌面會收到信息。如 果在網(wǎng)絡上,可以使用rwall命令把信息發(fā)送到局域網(wǎng)上所有的用戶。
maoli@ubuntu:~/backup$ ls -l
總用量 424
-rw-rw-r-- 2 maoli maoli 430482 5月 28 08:30 csdn.html
maoli@ubuntu:~/backup$ chmod g+w,o+w csdn.html
maoli@ubuntu:~/backup$ ls -l
總用量 424
-rw-rw-rw- 2 maoli maoli 430482 5月 28 08:30 csdn.html
maoli@ubuntu:~/backup$ chmod 644 csdn.html
maoli@ubuntu:~/backup$ ls -l
總用量 424
-rw-r--r-- 2 maoli maoli 430482 5月 28 08:30 csdn.html
說明:通過上面的例子可以看出,用chmod改變文件模式比特有兩種方式:一種是字符設定法,另一種是數(shù)字設定法。除了chmod之外,可以通過umask來設定哪些權(quán)限將在新文件的默認權(quán)限中被刪除。
maoli@ubuntu:~/backup$ ls -l
總用量 424
-rw-r--r-- 2 maoli maoli 430482 5月 28 08:30 csdn.html
maoli@ubuntu:~/backup$ sudo chown root csdn.html
[sudo] maoli 的密碼:
maoli@ubuntu:~/backup$ ls -l
總用量 424
-rw-r--r-- 2 root maoli 430482 5月 28 08:30 csdn.html
?
本文已收錄 GitHub,傳送門~[1] ,里面更有大廠面試完整考點,歡迎 Star。
?
[1]
傳送門~: https://github.com/MaoliRUNsen/runsenlearnpy100
*請認真填寫需求信息,我們會在24小時內(nèi)與您取得聯(lián)系。