Linux的常用指令 和 基础知识穿插巩固(巩固知识必看)
前言
本文一万多字,脑子不好的小菜鸟花了整整两天的空闲时间写完的,大家如果觉得还可以的话,点点赞或者关注吧,谢谢啦,祝你题题AC
ls
列出目录内容
ls
列出当前目录中的文件和子目录,但不包括以.
(当前目录)和..
(上级目录)开头的隐藏文件或目录。
扩展知识
- 隐藏文件:
在Linux下,若文件名以 " . "开头就是隐藏文件(windows下也有类似的隐藏文件,若大家将代码会上传到gitee上,则在你上传代码的文件夹下做以下操作会发现有一个以" . "开头的git隐藏文件,若你不显示隐藏文件,则这个文件你查看不到)
- 隐藏文件的作用
1. 保护重要文件
2.通常用来隐藏配置文件
ls -l
以长格式列出当前目录中的文件和子目录的详细信息,这个命令所列出来的信息较 ls 的更详细,包括文件类型和权限、链接数、所有者、所属组、文件大小、最后修改时间等。
我在从Linux角度具体理解程序翻译过程-----预处理、编译、汇编、链接_翻译、预处理、编译-CSDN博客中也列了这样一张表格,展示了用ls -l列出的各列的含义
文件类型 | 文件权限 | 硬链接数 | 文件拥有者 | 文件所属组 | 文件大小(以字节为单位) | 文件创建时间或者最近更新时间 | 文件名 |
---|---|---|---|---|---|---|---|
- | rw-rw-r– | 1 | xkjtx | xkjtx | 627 | Apr 18 21:32 | codetest |
d | rwxr-xr-x | 2 | xkjtx | xkjtx | 6 | Apr 13 19:42 | Desktop |
Linux下文件信息:
在Linux中,输入ll命令会显示文件和目录的详细信息。这些信息通常分为若干列,每列的含义如下:
- 文件类型:
第1个字符代表文件类型:
-:普通文件
d:目录
l:软链接(符号链接)
c:字符设备文件
b:块设备文件
s:本地套接字
p:命名管道(FIFO)
接下来的九个字符分为三组,每组三个字符,代表文件权限:
-
文件权限
r:可读权限
w:可写权限
x:可执行权限 -
每组分别代表文件拥有者(user)、所属组(group)和其他用户(other)的权限。
-
硬链接数:
对于文件,这表示有多少个文件名指向该文件;对于目录,这表示该目录所含的子目录数(不包括.和…)。 -
文件拥有者:
显示文件的拥有者用户名。 -
文件所属组:
显示文件所属的用户组名称。
这个组存在的意义是:有时为了保护文件所属者的信息,文件只有自己可见,但这样子会有弊端:当文件所有者的同事或者上级想查看文件时,无法查看,只能打开other查看的权限,但是这样子所有人都可以看,而不只是上级和同事,因此设置了group(文件所属组)权限,设置了其他人可见,并保证了隐私
- other:
不属于 文件拥有者 和 文件所属组 中的任何一者
ls -a
列出当前目录中的所有文件和子目录,包括以.
(当前目录)和..
(上级目录)开头的隐藏文件或目录。
ls -al
结合了-a
和-l
的功能,以长格式列出当前目录中的所有文件和子目录的详细信息,包括隐藏文件或目录。
cd
cd + 目录名
进入“目录名”这个目录
Ψ( ̄∀ ̄)Ψ:敲黑板了嗷~
进入文件:给你脑门敲稀碎😤😤😠╰(‵□′)╯
这个命令只可以进入目录,不能进入文件!!!
cd + …
返回上级(Linux中.
通常表示当前级, 而..
表示上一级)
cd + ~
进入用户家目录,也就是路径为:/home/"用户名"
cd -
返回最近访问的目录
pwd
显示当前工作目录的 绝对路径
(
扩展知识
关于路径的扩展:
路径
分类:
- 绝对路径
- 相对路径
使用场景
- 绝对路径:正式场合(如:配置文件)
- 相对路径:平时使用(原因:使用方便)
区分
- 绝对路径:/home/xxx(这也通常是"xxx"这个用户的 家目录 或者 工作目录)
- 相对路径:./test.c,这里有一个
.
,表示的是当前路径
/
- 名称:路径分隔符(注意:Linux下是" / “,但Windows下是” \ ",一个是斜杠,一个是反斜杠) 或者 根目录
- 其实PC我们常见的网址中的
/
也就是Linux下的一个目录 - 在
/ /
里的一定是目录或者文件夹,但在/
或的可能是文件或者文件夹,也就是说路径有以下两种形式
/目录名/目录名/目录名
/目录名/目录名/文件名
- 目录其实是一个多叉树的结构
-
题外话
博主手痒,想看看根目录下到底有多少文件,俺之间输入
tree /
,哎哟我,刷刷刷一个屏幕,全是文件一闪而过,我又又想ctrl + c
终止掉的冲动,还想看它到底有多少,就一直看它唰唰唰几个页面,如果又tree命令的阅读者,可以试试哦😜,没有的也不着急,后面会教大家怎么下载tree,tree命令有时候让你的文件的分区非常清晰哦,如下就是我的tree的一部分,是不是真的把层次展现的非常清晰呢Ψ( ̄∀ ̄)Ψ~~~
)
cp [选项] “源文件名” “目标文件名”
-
复制文件
源文件名:被复制的内容所在文件
目标文件名:要增加复制的内容的文件
-
复制目录
选项:通常为" -r "选项,表示递归复制
源文件名:被复制的内容所在目录
目标文件名:要增加复制的内容的目录
mv [选项] “源文件名” “目标文件名”
mv的缩写
- 移动源文件到目标文件或者目标路径
- 重命名文件
源文件名:被复制的内容所在文件
目标文件名:要增加复制的内容的文件
-
移动文件:
mv 源文件名 目标文件名
-
移动目录:
mv 源目录名 目标目录名
-
重命名文件:
mv 老文件名 新文件名
rm
remove的缩写
作用
- 删除目录
- 删除文件
用法
-
rm [选项] 文件/目录
-
删除文件:
rm 文件名
-
删除目录(需要加上“ -r ”选项,仍然是递归的意思):
-
递归删除
-
可以询问(这里的询问意思是:有时候Linux防止你误删,会向你确认是否要删除这个目录,你需要输入y/n来决定是否删除)
rm -r 目录名
-
强制删除,不询问
rm -rf 目录名
-
-
-
删除前访问
rm -i
./“可执行程序名”
执行程序,通常用在编译代码后运行代码
-
(o゚v゚)ノ 敲重点:
./
和"可执行程序名"
之间没有空格
mkdir
用于创建目录。例如:mkdir 目录名
。
rmdir
-
删除空目录
用于删除空目录。例如:
rmdir 目录名
。
touch
用于创建空文件或更新文件时间戳。例如:touch 文件名
。
man 命令名
用于显示命令的使用手册。例如:man ls
:显示ls的使用方法,如同c中MSDN的作用
grep
用于在文件中搜索指定模式。例如:grep pattern file.txt
。
find
用于在文件系统中查找文件。例如:find 路径 -name "文件名"
。
-
find ~ -name "文件名"
在用户的家目录和其子目录下寻找该文件
zip/unzip
-
zip
压缩文件(这也就是为啥基础能看见压缩包以.zip结尾的原因)
-
unzip
解压文件
tar
-
tar -cvf 归档文件名 被打包的文件1 被打包的文件2 被打包的文件3....
-
作用
打包文件
-
注意
只是打包了文件,并没有压缩,只是将一堆文件集合在一起,方便传输和归档(归档指的是将一组文件或目录打包成一个单一的文件,以便更方便地传输、存储或备份。这个单一的文件通常称为归档文件,它可以包含一个或多个文件和目录,保留了原始文件的层次结构和权限信息。)
-
-
tar -czvf 归档文件名 被打包的文件1 被打包的文件2 被打包的文件3....
-
作用
打包并压缩文件
- c : 创建一个压缩包
- z:压缩
- v:显示压缩进程
- f : 后面接形成的文件名称,注意:f一定要放最后,cvz顺序随意
-
-
tar -xzvf
-
作用
解压文件
- x : 解压
-
head和tail
-
head
- head “文件名”:提取前几行(默认10行)
- head -n:提取前n行
-
tail
- tail “文件名”:提取后几行(默认10行)
- tail -n:提取后n行
-
思考
讲到这里,请思考一下如果我们想要test.c文件中的第999行到1009行应该怎么做呢?
方法:
-
方法1
- 创建一个临时文件temp.c,然后应该怎么写才能实现把test.c文件的前1009行写入temp.c中呢?(动动你的聪明小脑瓜(≧∀≦)ゞ)(提示所用知识点:
输出重定向
) - 方法就是:head -1009 test.c > temp.c啦
- 再把temp.c的最后几行写入目标文件:
tail -100 temp.c > dest.c
- 删除临时文件
rm temp.c
- 创建一个临时文件temp.c,然后应该怎么写才能实现把test.c文件的前1009行写入temp.c中呢?(动动你的聪明小脑瓜(≧∀≦)ゞ)(提示所用知识点:
-
方法2
这里就要引入一个概念了:
管道
-
什么是管道呢?
- 生活中的管道:传输各种资源😯🤔🤨,那么…请问,数据是不是一种资源呢?
- 答案是肯定的,所以我们可以用管道:将数据从这个文件通过管道传输到另一个文件
-
管道的理解
所以我们的写法是:
head -1009 test.c | tail -100 > temp.c
(是不是脑子有点懵懵哒?那本小菜鸟就用画图让俺的读者理解一下什么是管道吧~)也就是说:
- 绿色框框中的对test.c的操作后所获取到的内容被放入管道中
- 管道中形成了管道文件
- 管道文件再进行橙色框框里的操作
- 最后管道文件被
>
输出重定向到了目标文件temp.c
这里就省去了我们建立临时文件的功夫了,而管道帮我们做了
-
用管道的好处:
文件是存在磁盘的,而管道是将文件存在内存的,而访问速度从快到慢为:
CPU > 内存 > 磁盘 > 光盘和磁带
-
-
ctrl + d
登出当前用户(就是退登的意思)
adduser
增加用户
userdel
删除用户
cat
-
cat “文件名”
打印文件到屏幕(通常是篇幅较小的文件)
-
cat -n “文件名”
打印文件到屏幕,且带行号,这一点在打印较短的代码时非常实用
-
cat “文件名1” “文件名2”
将两个文件内容都打印到屏幕
-
cat > “新文件名”
创建新文件
-
cat test1.c > test2.c
将test1.c的内容输入到test2.c中,!!!!!!!!千万注意啦:这样子会覆盖test2.c的内容,将test2.c的内容完全变为test1.c中的内容!!!!!!!!!1(不要问我怎么知道的😖伤心心,┭┮﹏┭┮,俺为这篇文章付出了惨痛的代价)
-
扩展知识:
这里的
>
是输出重定向,cat的默认输出是输出到显示器,但是因为"test1.c" > "test2.c"
,最后会把test1.c的内容输入到test2.c中,改变了输出方向,所以叫输出重定向
-
-
cat test1.c >> test2.c
将test1.c的内容追加到test2.c中,注意这里是追加,不会删除test2.c中的内容,而只是增加了test1.c的内容进去(如果俺之前注意了这一点,就不会损失我那个文件的代码了╥﹏╥…)
-
扩展知识
这里的
>>
是追加重定向
-
-
cat < test2.c
这里的
<
是输入重定向
小问题
如果执行以下操作会输出什么?🧐🧐🧐
-
先创建两个文件,分别为:
test1.txt
,test2.txt
-
然后用vim操作在test1.txt中写入:hello ,努力的你;并保存退出
-
在命令行中输入:cat < test1.txt > test2.txt,会怎么样呢(≧∀≦)ゞ?
-
答案就不公布啦,那就请你自己去试试啦~~ε=ε=ε=( ̄▽ ̄)
脑子不好的小菜鸟跑路
tac
眼尖的同学可能发现了,tac是cat的逆序写法,而他们的作用也确实相反:
逆序输出文件
注意:
-
这里的逆序不是把所有字都逆向输出,而是以行为单位,倒着输出,如以下代码
int main() { int i; for (i = 0; i < 100; i++) printf("如果能上清华就好了\n"); return 0; }
逆向输出就是:
} return 0; printf("如果能上清华就好了\n"); //cout << "如果能上清华就好了" << endl; for (i = 0; i < 100; i++) int i; { int main() #include <stdio.h>
看似无用,其实用处还是挺大的,比如有一个文档,有上万行,但是用cat打印出来在屏幕上时,最后只能看见文件的最后几行,你要看第一行或者其他较为靠前的行数,你需要翻阅很久才能找到,但是当逆序打印时,前面的几行能立马看见
echo
打印内容到显示器
- 与cat的区别:
-
echo
命令:-
echo
命令用于在终端上打印指定的文本或变量的值。 -
它通常用于简单的文本输出
如输入以下指令时:
echo "a = 10"
它会显示:
a = 10
-
echo
命令不会读取文件内容,而是直接将指定的文本输出到标准输出(通常是终端)。也就是说,如果输入以下命令:
echo test.c
- echo像傻子,会输出:
test.c
,根本不会输出test.c
中的代码 - cat就讨人喜欢,会输出
test.c
中的内容
- echo像傻子,会输出:
-
-
cat
命令:cat
命令用于连接文件并打印它们的内容到标准输出。- 它通常用于查看文件的内容,或者将多个文件的内容连接起来输出到标准输出。
cat
命令可以接受多个文件名作为参数,并按顺序输出它们的内容。
总的来说,echo
主要用于文本输出,而cat
主要用于文件内容的查看和连接。
more
-
more “文件名”
打印文件
-
使用场景
cat:打印小文件
more:打印大文件
-
使用方法
-
向下查看内容:摁enter键,注意哦~~~:摁上下键没有用
-
退出:按
q
-
more 5 “文件名”:只打印5行
-
-
注意:
不可向上翻阅----->所以不推荐这样子用------>推荐less,可以向上翻也可向下
less
-
less “文件名”
查看文件(通常为大文件)
-
用法
/
:向下搜索"字符串"的功能?
:向上搜索"字符串"的功能n
:重复上一个搜索(next的缩写)g
:回到一开始
whoami
显示当前你所处的账户名
which “指令名称”
在系统路径中查找特定的指令所在位置
whereis “指令名称”
找包含该指令的路径
alias
-
alias 别名='指令名'
给命令起别名,如:
alias zhangsan='touch'
,那么你就可以zhangsan test.c
来创建test.c文件了 -
注意
该别名只在这次登录有效,下次登录无效,所以这里大家可以作为娱乐玩
cal
打印日历
date
-
用处
打印时间
-
使用场景
平时没有什么用处,但是当在数据库这种安保要求较高的地方,手机并不能带,这个时候可以用这个命令来确定当前时间
bc
计算器
-
退出
那就是万能的
ctrl + c
-
和echo的结合
echo "1+2+3" | bc
:显示1+2+3的答案到屏幕
Tab
这个命令记住有时候真的很爽哦😎
- 命令补齐
- 查找命令(若你输入
whi
,它会给你输出which while whiptail
,当你有时候想不起那个命令具体怎么写的时候可以用哦)
ps
这不是很简单吗,不就是P图吗
-
前置知识
-
进程
-
概念
在任何操作系统下都有进程,而进程的概念是:执行中的程序实例
Windows下的进程查看:打开电脑最底部的搜索框,搜索
任务资源管理器
,什么就会显示目前在运行的程序(也可以叫做进程) -
所含属性
- PID
- 执行状态
- 优先级
- …
-
-
进程状态
-
R
运行状态
,也就是Running的首字母 -
S
-
含义
休眠状态,等待事件完成(如:等待某个文件加载到缓冲区)。Sleeping的缩写
-
终止该状态
输入
kill -9 "该进程的PID"
扩展: 1.kill命令 用法: (1)kill -19 "要被结束进程的PID" 这个命令:用来结束一个进程 【注】查看PID: 1)输入 ps axj | head -1 && ps axj | grep '你的可执行程序名' 2)查看“PID”对应的那一列-----该进程的PID [解释]:*ps axj:显示进程的详细信息 *head -1:显示头部(显示每一列代表的 含义){注意不是kill -l(字母l),而是数字1} *grep '你的程序名':在所有进程中找你的程序 *-19:只是一种信号,信号不同,kill所做的指令不同,若想看各种信号是什么用途,请在命令行输入:man kill
-
注意
该状态可随时被唤醒
-
-
D(disk sleep)
-
含义
睡眠状态,磁盘睡眠,升读睡眠
-
注意
该状态不可被唤醒,不可被中断------------->只能自己醒 或者 关机重启
-
-
T
暂停或调试状态(STOP)
-
当要继续执行时:
kill -18 该进程的PID
-
-
X
终止状态(该状态瞬时性非常强,所以一般见不到这种状态)
-
Z
僵尸状态
说到这里,我就不得不提两个比较特殊的进程了:
孤儿进程
和僵尸进程
-
孤儿进程
-
形成原因:
子进程还没进行完,父进程比子进程先退出(注意:在进程中,父子进程的退出先后没有特定的顺序,谁先运行完是调度器决定的),子进程后退出
-
处理方法
当孤儿进程出现后,系统会给孤儿进程安排一个1号父亲(这个时候可以看见该进程的PPID变为1),这个1号进程也叫init进程,这个init进程会将该子进程回收
-
后果
这属于正常现象,并不会造成上面太大的危害
-
-
僵尸进程
-
形成原因:
子进程已经进行完了,但是父进程进行完时并未读取子进程的结束状态(只要父进程读取了子进程的状态,子进程的Z状态(僵尸状态,等待被检查)才会变成X状态(可退出状态)),使得子进程永远无法结束,一直等待被读取,但是父进程已经结束,无法读取了,而其状态为Z状态,操作系统也无法回收
-
处理方法
请各位移步该文章哦:僵尸进程的处理办法 -
后果
会导致内存泄漏
-
为什么是内存泄漏呢?
因为该状态一直不执行,就会一直在内存中等待被操作----->不被释放---->占用内存资源----->内存泄漏==
-
-
-
-
-
-
ps
查看当前进程的状态
-
ps axj
查看当前所有进程的状态
-
ps axj | head -1 && ps axj | grep test
显示包含”test“的进程
【注】:head -1:显示头部
PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND
stat
显示进程的状态信息
nano
一个文本编辑器,用户可以编辑文本
-
用法
nano 文件名
vim
一个功能强大的文本编辑器,它支持多种模式,包括普通模式、插入模式和命令模式,这三个模式的转化方法如下:
gdb
调试工具,Linux并不像IDE一样,会把编译等多种功能集合在一起,而是分开的
-
格式
gdb 可执行文件名
注意:说可执行文件名,不是源文件,谁写源文件名,我给他一棒槌( ̄ε(# ̄)☆╰╮o( ̄皿 ̄///)
chown
-
chang owner的缩写
-
chown
命令用于改变文件或目录的所有者(owner)。其基本语法为:
chown 新所有者 文件或目录
chmod
-
chmod 操作 文件名
-
作用:
改变文件的属性(这里的属性指的是:当输入ll时第一大列的属性,如:
rwxrwxrwx
这个怎么看呢?分三列三列的看
- r:读权限
- w:写权限
- x:粘滞位
)
-
这里所说的操作可以有以下几种操作,大家可以根据喜好进行操作
-
chmod u+x test.txt
这里的意思是:给user(文件所有者)加上
x
权限(u:user的缩写);若想减去x
权限,则写成:chmod u-x test.txt
若想给所属组添加,则是:
chmod g+x test.txt
(g:group的缩写)若想给other添加,则是:
chmod o+x test.txt
(o:other的缩写) -
chmod 456 test.txt
这里的意思是:
给user添加:-r-权限(对应的是010)
给group添加:-rx权限(对应的是011)
给other添加:rw-权限(对应的是110)
-
chmod u=rwx test.txt
这里的意思是:
给user设置rwx权限
- 若要给所有人设置rwx,则:
chmod a=rwx test.txt
(a:all的缩写)
- 若要给所有人设置rwx,则:
-
-
chgrep
chgrep 新所属组 文件名
-
作用
改变文件所属组
grep
-
作用
使用正则表达式搜索文本,并将匹配的行打印出来
-
使用
若想在test.c找含有
hello
的行,则:grep hello test.c
yum
有软件包的安装、卸载、更新、查询等功能。
以下是yum
的一些基本命令和用法:
-
安装软件包:
yum install 软件包名称
-
卸载软件包:
yum remove 软件包名称
-
更新软件包:
yum update 软件包
-
列出可用的软件包:
yum list 软件包
-
查找软件包:
yum search 软件包
-
列出已安装的软件包:
yum list installed
-
注意
在使用
yum
时,请确保你有足够的权限来安装或卸载软件包。通常,需要使用sudo
命令来获取必要的权限-
下载
sudo yum install 软件包名称
卸载
-
sudo yum remove 软件包名称
-
top
更改进程的nice值
-
进程的优先级
-
为什么有?
CPU资源是有限的,但是又有非常多的进程要调用CPU,这就会出现资源竞争,为了资源分配更合理,就出现了优先级
-
什么是优先级
确认使用CPU资源谁先谁后的参考标准
-
Linux的优先级计算标准
优先级 = 老的优先级 + nice值
-
查看老优先级和nice值
输入
ps -l
PRI:老优先级
NI:nice值
优先级越小越早被执行
-
-
export
设置环境变量
-
使用方法
export 环境变量名="你要设置的环境变量"
-
环境变量
-
概念
环境变量是系统用来传递信息的变量,它们在程序启动时被设置,并且可以在程序之间传递(如:父进程和子进程,子进程会继承父进程的所有属性)。环境变量可以被程序读取,并用于决定程序的行为,例如指定程序的路径、配置选项或连接到特定的数据库。
-
作用
-
其实我们在命令行中输入
ls
这个命令时,同时可以输入ls这个命令的地址 来执行ls这个命令(地址通过which ls
这个命令来获取) -
但是我们不可直接用名字执行自定义的命令,而是要用地址的方式
-
若想和
ls
这样子直接用名字执行命令的方式执行自定义命令,则就要用到`环境变量 -
export PATH=$PATH:'你自定义的命令命令的所在路径'
-
-
env
- 列出所有环境变量
su
-
su “用户名”
登入"用户名"这个用户的家目录(前提:你得是root)
sudo
不切换到root用户但可以执行某些特定指令
-
前提
你得是被信任用户
-
被信任用户添加方法
-
切换到root身份
-
编辑 sudoers 文件
使用
visudo
命令编辑/etc/sudoers
文件。这个文件描述了哪些用户可以使用sudo
命令以及可以执行哪些操作。sudo visudo
-
添加用户到 sudo 组:
usermod -aG sudo 要被授权的用户名
-
配置 sudoers 文件
在
/etc/sudoers
文件中,您可以使用以下语法添加用户或用户组的权限:
要被授权的用户名 ALL=(ALL:ALL) ALL
这将允许 要被授权的用户 以任何用户(ALL)和任何组(ALL)的身份执行任何命令。
-
保存更改
在
visudo
中保存并退出文件。确保您的更改没有错误,以免导致系统权限问题。 -
测试:
使用被授权用户登录,并尝试执行
sudo
命令以验证权限是否已生效。
注意:修改系统文件时应格外小心,确保不会产生潜在的安全风险。
-
-
make
-
执行"makefile"文件中的内容(或者"makeFile"),所以通常它们同时使用
-
makefile的介绍
-
存在意义
自动化地构建项目/自动化地把源文件变成可执行程序
-
写法
通常是以下写法
mytest:test.c gcc test.c -o test -g .PHONY:clean rm -f test
-
写法解释
-
mytest : test.c
mytest:依赖关系
test.c:依赖方法
我们并不需要理解什么叫依赖关系,什么叫依赖方法,我们只需要知道:
1.当我们想运行gcc test.c -o test -g时,我们只需要输入make,系统就会帮我们执行这个命令,不再需要我们每次要编译test.c文件时都写
gcc test.c -o test -g
这一大长串节约了我们的时间2.当我们想运行rm -f test时,我们并不需要每次都输入这一行,而是要输入
make clean
,为什么这次make后面要带上依赖关系呢?因为make命令执行时会从上到下执行每个依赖关系,但是如果只输入make只会执行第一个,如果要执行后面的,就需要输入make "依赖关系"
-
gcc test.c -o test -g
编译
test.c
文件生成名为test
的可执行程序- -o :相当于起别名
- -g:可调试,若无这个部分,则默认生成的可执行文件时release版本(不可调试)
-
-
-
tree
-
以树状图的形式显示目录结构
-
这种方式呈现的层次关系非常清晰,大家可以看看下面的图哦
sl
这是一个很有意思的插件啦,需要下载哦,输入sl
时会有小火车开过哦
大家可以尝试执行以下代码来下载sl
命令,当然可能会下载失败,比如:你是Ubuntu,不是Centos
yum -y install sl
- 效果展示
history
列出历史所有命令记录,在这里你可以看到你之前运行过的所有命令
git
上传git
-
安装Git(以下是Centos的操作)
sudo yum install git
-
创建Gitee账号
如果你还没有Gitee账号,需要先注册一个账号。访问Gitee的官方网站(https://gitee.com/)进行注册并登录。
-
克隆仓库
git clone 地址
这里的地址在图示部分(注意是HTTPS这个地址)
-
git三板斧
-
git add 源文件名
或者git add .
(第一个:提交该文件的更改 第二个:提交当前这个目录的被更改的文件) -
git commit -m "提交的更改"
:提交修改到仓库 -
git push
把代码提交到远程仓库-
注意
-
只有上面三步都做完才能在gitee上看见小绿点哦~~
-
有时候会出现提交失败的情况,这种情况下我们只需要:
git pull
,产生失败的原因是:在同一个公司的同一组内,每天要提交日志,可能会出现你和你的同事同时提交文件到gitee的情况,这个时候就可能你的git不同步,而
git pull
这个命令用来获取最新提交,这样你们的gitee就同步啦
-
-
-
ping
测试与网络设备的连接
wc
-
wc “文件名”
显示文件的行数、字数和字节数
-
wc -l “文件名”
显示文件 filename 的行数。
-
wc -w “文件名”
显示文件 filename 的字数。
-
wc -c “文件名”
显示文件 filename 的字节数。
-
wc -L “文件名”
显示文件 filename 中最长行的长度