Git 是一个开源的分布式版本控制系统。
版本控制(Revision control)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。
作用:
简单说就是用于管理多人协同开发项目的技术。
目前使用最广泛的是Git与SVN。
他们主要的区别:
在这里插入图片描述
在这里插入图片描述
在 git 诞生之前,Torvalds 选择使用 BitKeeper 进行 Linux 版本管理。BitKeeper 是一个闭源的商业软件,这个决定长期受到社区的质疑和争议。 2005 年,一位 Linux 开发成员 Andrew(Samba 协议之父)写了一个可以连接 BitKeeper 仓库的外挂,因此 BitMover 公司(BitKeeper 持有者)认为他反编译了 BitKeeper。BitMover 决定中止 Linux 免费使用 BitKeeper 的授权。最终 Linux 团队与 BitMover 磋商无果,Torvalds 决定开发自己的版本管理系统。 十天后,git 诞生了。 你没有看错。git 从开始到诞生,Torvalds 这位天才只用了 10 天的时间。 Git是目前世界上最先进的分布式版本控制系统。
注 : Git作者 Linus Torvalds(林纳斯·托瓦兹,同时也是 Linux 之父)1969,芬兰
Git官方下载地址:http://git-scm.com/downloads
官网慢,可以用国内的镜像:https://npm.taobao.org/mirrors/git-for-windows/
下载对应的版本即可安装! 无脑点击下一步即可!自动配置环境变量!
完成安装后:
在这里插入图片描述
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 文件里。
在这里插入图片描述
工作区域
在这里插入图片描述
常用命令:
在这里插入图片描述
在这里插入图片描述
因此,git管理的文件有三种状态:已修改(modified),已暂存(staged),已提交(committed)
在这里插入图片描述
日常使用命令:
在这里插入图片描述
1.新建目录
在这里插入图片描述
2.git init 初始化(注,这是隐藏的文件)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
查看文件状态
#查看指定文件状态
git status [filename]
# 查看所有文件状态
git status
#git add . 添加所有文件到暂存区
#git commit -m "消息内容" 提交暂存区的内容到本地仓库 -m 提交信息
忽略文件
有些时候我们不想把某些文件纳入版本控制中,比如数据库文件,临时文件等。 在主目录下建立”.gitignore”文件,此文件有如下规则:
1.忽略文件中的空行或以井号(#)开始的行将会被忽略。
2.可以使用Linux通配符。例如:星号(*)代表任意多个字符,问号(?)代表一个字符,方括号 ([abc])代表可选字符范围,大括号({string1,string2,…})代表可选的字符串等。
3.如果名称的最前面有一个感叹号(!),表示例外规则,将不被忽略。
4.如果名称的最前面是一个路径分隔符(/),表示要忽略的文件在此目录下,而子目录中的文件不忽略。
5.如果名称的最后面是一个路径分隔符(/),表示要忽略的是此目录下该名称的子目录,而非文件(默认文件或目录都忽略)。
#为注释
*.txt #忽略所有 .txt结尾的文件
!lib.txt #但lib.txt除外
/temp #仅忽略项目根目录下的TODO文件,不包括其它目录temp
build/ #忽略build/目录下的所有文件
doc/*.txt #会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
官网:https://gitee.com/ 官网教程:https://gitee.com/help/articles/4122
可以设置绑定SSH公钥,实现免密码登录!
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注:所以还有第二种集成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主分支应该非常稳定,用来发布新版本,一般情况下不允许在上面工作,工作一般情况下在新建的dev分支上工作,工作完后,代码稳定了,再合并到主分支上来。 比如上要发布,或者说dev分支代码稳定后可以合并到主分支master上来。
部好的纪录片,能为孩子打开一扇门,走进更广阔的人生风景。
今天为大家带来国家广播电视总局推选出的2021年第一季度优秀国产纪录片、2021年第二季度优秀国产纪录片共89部。
内附观看链接,家长们闲暇之余,不妨陪孩子选一部喜欢的纪录片一起观赏吧。
2021年第一季度
优秀国产纪录片
《中国冰雪道路》
出发篇
《中国新疆之历史印记》
《书简阅中国》
《八月桂花遍地开》
《塞上江南 》
《年画·画年》
《我是猎鹰特战女兵》
《摆脱贫困》
《正风反腐就在身边》
《民之法典》
《热的雪——伟大的抗美援朝》
《王阳明》
《留法岁月》
《石油的故事》
《福建历史文化名城》
《远方未远——一带一路上的华侨华人》
《隐匿杀手》
《青海:我们的国家公园》
《寻路乡村中国》
《天山南北采棉人——“一带一路”上的黔江人》
《一支疫苗的诞生》
《一级响应》
《东京审判》第三季
《东向大海》
《中国减贫密码》
《丰碑——新疆脱贫攻坚纪实》
《习近平的扶贫故事》
《江河情缘》
《冬景胜春华》
《古镇里的年轻人》
《我爱中国造》
《敦煌:生而传奇》
《旱井》
《智慧中国:前沿科学》
《木香》
《武汉日夜》
《漫步长安街》
《烟火拾味》
《生命缘:健康中国实践者》
《米尔斯探秘生态中国》
《脱贫大决战——我们的故事》
《苗鼓声声寄少年》
《蔬菜改变中国》
《行进中的中国》
《铁军:新四军的故事》
《闽宁纪事》
《雪龙二号》
《面孔——24小时》
观看地址
http://www.docuchina.cn/special/2021zb/index.shtml?spm=C70862.P63098527977.EnIadVg5dlDe.1
2021年第二季度
优秀国产纪录片
《敢教日月换新天》
观看地址:
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
《我为冬奥制战衣》
《曙光》
观看地址:
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
《百炼成钢:中国共产党的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
《解码战疫24小时》
观看地址:
http://www.centv.cn/z/350197/
《东方医学》
观看地址:
https://www.bilibili.com/bangumi/media/md28234601/?spm_id_from=666.25.b_6d656469615f6d6f64756c65.1
本文部分素材综合自国家广播电视总局官网、中国纪录片网等。
来源: 首都教育
@Author: Runsen」
Linux系统的命令通常都是如下所示的格式:
命令名称 [命名参数] [命令对象]
获取登录信息 - 「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也被称为“壳”或“壳程序”,它是用户与操作系统内核交流的翻译官,简单的说就是人与计算机交互的界面和接口。目前很多Linux系统默认的Shell都是bash(Bourne Again SHell),因为它可以使用tab键进行命令和路径补全、可以保存历史命令、可以方便的配置环境变量以及执行批处理操作。
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
清除屏幕上显示的内容 - 「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
...
查看系统和主机名 - 「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
说明:在执行shutdown命令时会向登录系统的用户发出警告,可以在命令后面跟上警告消息来替换默认的警告消息,也可以在-h参数后通过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
说明:查看到历史命令之后,可以用!历史命令编号来重新执行该命令;通过history -c可以清除历史命令。
创建/删除空目录 - 「mkdir」 / 「rmdir」。
[root ~]# mkdir runsen
[root ~]# mkdir -p abc/runsen
[root ~]# rmdir runsen
创建/删除文件 - 「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 ../../命令。
查看目录内容 - 「ls」。
查看文件内容 - 「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... 已连接。
已发出 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-专业IT技术社区</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的命令,它是一个网络下载器程序,可以从指定的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」。
查找文件和查找内容 - 「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。
创建链接和查看链接 - 「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
说明:链接可以分为硬链接和软链接(符号链接)。硬链接可以认为是一个指向文件数据的指针,就像Python中对象的引用计数,每添加一个硬链接,文件的对应链接数就增加1,只有当文件的链接数为0时,文件所对应的存储空间才有可能被其他文件覆盖。我们平常删除文件时其实并没有删除硬盘上的数据,我们删除的只是一个指针,或者说是数据的一条使用记录,所以类似于“文件粉碎机”之类的软件在“粉碎”文件时除了删除文件指针,还会在文件对应的存储区域填入数据来保证文件无法再恢复。软链接类似于Windows系统下的快捷方式,当软链接链接的文件被删除时,软链接也就失效了。
.压缩/解压缩和归档/解归档 - 「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
...
说明:归档(也称为创建归档)和解归档都使用tar命令,通常创建归档需要-cvf三个参数,其中c表示创建(create),v表示显示创建归档详情(verbose),f表示指定归档的文件(file);解归档需要加上-xvf参数,其中x表示抽取(extract),其他两个参数跟创建归档相同。
将标准输入转成命令行参数 - 「xargs」。
下面的命令会将查找当前路径下的html文件,然后通过xargs将这些文件作为参数传给rm命令,实现查找并删除文件的操作。
maoli@ubuntu:~$ find . -type f -name "*.html" | xargs rm -f
下面的命令将a.txt文件中的多行内容变成一行输出到b.txt文件中,其中<表示从a.txt中读取输入,>表示将命令的执行结果输出到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
管道的使用 - 「|」。
例子:查找当前目录下文件个数。
maoli@ubuntu:~$ find ./ | wc -l
80801
例子:列出当前路径下的文件和文件夹,给每一项加一个编号。
maoli@ubuntu:~$ ls | cat -n
1 abc
2 backup
例子:查找record.log中包含AAA,但不包含BBB的记录的总数
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的结果之外,还会追加输出到ls.txt文件中。
maoli@ubuntu:~$ ls | tee -a ls.txt
maoli@ubuntu:~$ cat ls.txt
abc
backup
「alias」创建别名
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是操作、过滤和转换文本内容的工具。假设有一个名为fruit.txt的文件,内容如下所示。
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系统中处理文本最为强大的工具,它的作者之一和现在的维护者就是之前提到过的Brian Kernighan(ken和dmr最亲密的伙伴)。通过该命令可以从文本中提取出指定的列、用正则表达式从文本中取出我们想要的内容、显示指定的行以及进行统计和运算,总之它非常强大。
假设有一个名为fruit2.txt的文件,内容如下所示。
\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
输出末尾数字大于等于300的行。
maoli@ubuntu:~$ awk '{if($3 >= 300) {print $0}}' fruit2.txt
2 grape 500
3 apple 1230
5 orange 400
创建和删除用户 - 「useradd」 / 「userdel」。需要用root账号创建
maoli@ubuntu:~$ su root
密码:
root@ubuntu:/home/maoli# useradd Runsen
root@ubuntu:/home/maoli# userdel Runsen
创建和删除用户组 - 「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:~$
以管理员身份执行命令 - 「sudo」。
maoli@ubuntu:~$ ls /root
ls: cannot open directory /root: Permission denied
maoli@ubuntu:~$
sudo ls /root
[sudo] password for maoli:
「说明」:如果希望用户能够以管理员身份执行命令,用户必须要出现在sudoers名单中,sudoers文件在 /etc目录下,如果希望直接编辑该文件也可以使用下面的命令。
编辑sudoers文件 - 「visudo」。
这里使用的编辑器是vim,关于vim的知识在前面有讲解。
五十二、ViM的使用 该文件的部分内容如下所示:
## 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)
给其他用户发消息 -「write」 / 「wall」。
发送方:
root@ubuntu# write maoli
Hello Maoli
EOF
键入EOF表示信息结束,用Crtl+D组合键发送信息。输入内容会出现在用户的屏幕上,同时通信中止。 接收方:
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
如果想要发送一条信息给系统中所有用户,可以使用wall命令,wall表示:write all。输入wall,然后编辑信息,如果shell支持可以使用中文。然后使用Crtl+D组合键发送信息。这样系统所有登录用户的桌面会收到信息。如 果在网络上,可以使用rwall命令把信息发送到局域网上所有的用户。
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改变文件模式比特有两种方式:一种是字符设定法,另一种是数字设定法。除了chmod之外,可以通过umask来设定哪些权限将在新文件的默认权限中被删除。
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小时内与您取得联系。