简单指令:
概念介绍:
1. 目录🟰文件夹
2. 同级目录下,不允许存在同名文件或目录。也就是多叉树的同一层不允许存在同名节点
如果大家有的指令不知道有什么选项就可以在指令后➕ --help,就可以查到了
例如: ls --help
rm --help
mkdir --help
Linux指令 | 示范 | 用法说明 |
who | who | 查看哪些人登陆我的机器 |
whoami (who am i) | who am i | 查看当前账号是谁 |
pwd |
pwd | 查看当前我所在的目录 |
clear | clear | 清屏 |
tree 目录名(文件夹名) | tree game | 以树形结构列出该文件夹下的所有文件 |
stat 目录名 | stat game | 查看指定目录的更详细的属性信息 |
gcc (.c/.cpp文件) |
gcc test.c | 编译.c/.cpp文件 |
./(.c/.cpp文件) | ./test.c | 执行.c/.cpp文件 |
touch 文件名 文件名... | touch test.c | 在当前目录下建立一个或多个文件 |
nano 文件名 | nano test | 写文件内容 (文件不存在就建立一个写入) |
which 指令 | which ls | 看指令在哪个路径下 |
whereis | whereis test | 查看文件的路径 |
alias 别名='指令' | alias T='tree' | 给指令取别名 (退出Linux后,别名自动销毁) |
wc -l | wc -l file | 统计文件内容不重复的行数 |
注意,在Linux安装没有的指令
指令名称 | 安装命令 |
nano | yum install -y nano |
tree | yum install -y tree apt-get install tree |
gcc | yum install -y gcc |
1. 查看Linux系统的指令
uname -a | 查看Linux系统的详细信息 |
uname -r | 查看linux内核版本信息 |
cat /etc/redhat-release | 看Linux的发行版和芯片架构 |
cat /proc/cpuinfo | 看cpu |
cat /proc/meminfo | 看内存情况 |
vmstat |
报告关于内核线程、虚拟内存、磁盘、陷阱和 CPU 活动的统计信息 |
sar | 主要帮助我们掌握系统资源的使用情况,特别是内存和CPU的使用情况 |
top |
查看cpu资源使用状态 |
netstat | 查看网络连接状态 |
free |
查看内存资源状态 |
df | 查看磁盘分区资源状态 |
2. ls指令(可以混合使用,大家自行测试)
概念介绍:
1.隐藏文件:是以‘ . ’开头的文件,默认不显示。
2. 指令后面的选项之间可以自由组合。
3. 某些指令后面的文件都可以是一个或者多个,比如删除一个多个,建立一个多个。
ls | 列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息 |
ls -a | 列出目录下的所有文件,包括以 . 开头的隐含文件 |
ls -d |
将目录像文件一样显示,而不是显示其下的文件。 如:ls –d 指定目录 |
ls -i | 输出文件的 i 节点的索引信息。 如 ls –ai 指定文件 |
ls -k | 以 k 字节的形式表示文件的大小。ls –alk 指定文件 |
ls -l 、ll | 列出文件的详细信息。 |
ls -la 、ls -al 、ls -l -a、 ls -a -l 、ll -a | 列出目录下的所有文件的详细信息,包括以 . 开头的隐含文件。 |
ls -n | 用数字的 UID,GID 代替名称。 (介绍 UID, GID) |
ls -F | 在每个文件名后附上一个字符以说明该文件的类型 “*” : 表示可执行的普通文件; “/” : 表示目录; “@” : 表示符号链接; “|” : 表示FIFOs; “=” : 表示套接字(sockets) |
ls -r | 对目录反向排序。 |
ls -t | 以时间排序。 |
ls -s | 在l文件名后输出该文件的大小。(大小排序,如何找到目录下最大的文件) |
ls -R | 列出所有子目录下的文件。(递归) |
ls -1 | 一行只输出一个文件。 |
3. cd指令
概念介绍:
1. 一个 ‘ . ’ 表示的是 当前路径;
2. 两个‘ . .’ 表示的是 上级路径;
3. 路径:由‘ / ’ 和目录组成的字符串
4. ‘ / ’ 是Linux下的路径分隔符
5. 2个 ‘ / ’之间的一定是目录(文件夹)
6. 最后一个‘ / ’ 后的可能是目录,也可能是文件
7. 第一个‘ / ’ 代表根目录
8. 我们的 “ /root ”代表的是家目录,所谓家目录就是在个人账户下的目录
相对路径:以当前目录为参考点,利用‘ .. ’找到当前目录的上级目录,再找到指定文件所形成的路径。
绝对路径:从根目录( / )开始,定位到叶子文件的方式,形成的路径。
重点!!!
我们任何指令都可以➕绝对路径或者相对路径,只在这里说一次,下面指令不会重复说明。
使用规则 | 示范 | 功能 |
cd 目录名 | cd game | 从当前目录进入到指定目录里,指定目录必须在当前目录里 |
cd 绝对路径 | cd /root/game | 可以从当前目录找到任何目录或文件,但是要使用绝对路径。 |
cd 相对路径 | cd ../game | 可以从当前目录找到任何目录或文件,但是要使用相对路径。 |
cd .. | cd .. | 返回上一级目录 |
cd . | cd . | 返回当前目录 |
cd ~ | cd ~ | 进入家目录 |
cd - | cd - | 返回最近访问的目录 |
首先,如下图Linux下整体的目录结构就是一颗多叉树。我们可以根据多叉树来找相对路径和绝对路径。
假设我们在/usr/bin这个路径下,也就是在bin的目录下,我们要去找到lib
通过绝对路径 / usr / lib 找到
通过相对路径 .. / lib 找到,大家不要忘了.. 是代表上级路径哦!
4. mkdir指令(重要)
可以加绝对路径或者相对路径,在指定路径里创建目录
使用规则 | 示范 | 功能 |
mkdir --help | mkdir --help | 来获取更多mkdir信息 |
mkdir 目录名 目录名... | mkdir dirname mkdir a b c d |
在当前目录下创建一个名为 “dirname”的目录 在当前目录下创建多个目录,为a,b,c,d |
mkdir -p(--parent) 目录名 | mkdir -p test/test1/test2 mkdir --parent a/b/c |
递归建立多个目录)(使用tree命令查看) |
5. rmdir指令(重要)
1. 只适用具有当前目录操作权限的所有操作者
2. 只能删除空目录,不能删除文件
3.可以加绝对路径或者相对路径,在指定路径里删除空目录
1. 超级用户:root用户,删除任何东西都会询问是否删除,因为超级用户的东西比较重要。
2. 普通用户:非root用户,删除东西多时候不会询问,想要被询问,需要➕特定的选项,下面会给出说明
3. 一切的删除都默认不删除隐藏文件!!!!!!
使用规则 | 示范 | 功能 |
rmdir --help | rmdir --help | 来获取更多rmdir信息 |
rmdir 目录名 | rmdir dirname | 删除空目录 |
rmdir -p(--parent) 目录 | rmdir -p(--parent) a/b/c rmdir --parent a/b/c |
当子目录被删除后如果父目录也变成空目录的话,就连带父目录一起删除 |
6. rm指令(重要)
1.适用所有使用者
2.rm命令可以同时删除文件或者空目录
3.单独的rm无法删除目录
4.可以加绝对路径或者相对路径,在指定路径里删除。
5. ‘ * ’ :通配符,指定路径下的所有文件。
使用规则 | 示范 | 功能 |
rm --help | rm --help | 来获取更多rm信息 |
rm -i 目录 | rm -i dir | 删除前询问是否删除 |
rm -r | rm -r dir | 删除之前先递归进入到叶子文件或目录 |
rm -f | rm -f test | 直接删除文件 |
rm -rf | rm -rf dir | 强制删除任何目录(包括非空目录)和文件 |
rm -rf * |
rm -rf * | 删除当前目录下的所有目录和文件 |
1. 删除隐藏文件:rm -rf 隐藏文件名
2. 一定不要删除根目录,小白玩家切记!!!
7. man指令(重要)
1.Linux的命令有很多参数,我们不可能全记住,我们可以通过查看联机手册获取帮助。所以man是访问Linux手册页的命令
2.访问之后,要退出, 按q。
手册分为8章:
(1 )是普通的命令
(2) 是系统调用,如open,write之类的(通过这个,至少可以很方便的查到调用这个函数,需要加什么头文件)
(3) 是库函数,如printf,fread4是特殊文件,也就是/dev下的各种设备文件
(5) 是指文件的格式,比如passwd, 就会说明这个文件中各个字段的含义
(6) 是给游戏留的,由各个游戏自己定义
(7) 是附件还有一些变量,比如向environ这种全局变量在这里就有说明
(8) 是系统管理用的命令,这些命令只能由root使用,如ifconfig 没有man指令?输入下面的安装命令
yum install -y man-pages
使用规则 | 示范 | 功能 |
man 指令 | man printf | 在手册中从1到8章依次查找,找到了就显示 遇到指令在多个手册都有定义 只显示最先找到的 |
man num 指令 | man 3 printf | 只在第三章中查找 |
man -a 指令 | man -a printf | 把找到的全部有定义的章节都显示出来 比如printf,会显示第一章和第三章的 |
8. cp指令(重要)
用途:复制目录或文件
注意⚠️⚠️:
如果同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。
若同时指定多个文件或目录,而最后的目的地并非一个已存在的目录,则会出现错误信息。
如果要拷贝到当前路径,但是同级目录下没办法重名,所以我们就cp test test2就OK了。
不会拷贝隐藏文件,要拷贝隐藏文件,需要自己写哦!
使用规则 | 功能 |
cp 文件名 路径 | 将文件拷贝到路径内 |
cp -rf 目录/文件 路径 | 将目录或文件拷贝到路径内 |
cp -rf 路径1* 路径2 | 将路径1下的所有文件和目录都拷贝到路径2中 (路径1跟*无空格) |
9. mv指令(重要)
用途:可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录。
使用规则 | 示范 | 功能 |
mv 目录 目录 | mv a b | 将a重命名为b |
mv 文件 文件(不存在) | mv test data | 将test重命名为data |
mv 文件 文件(已存在) | mv test test2 | 将test覆盖到test2 |
mv -i 文件 文件(已存在) | mv -i test test2 | 将test覆盖到test2,但是会询问是否覆盖 |
mv -f 文件 文件(已存在) | mv -f test test2 | 将test强制覆盖到test2,不询问是否覆盖 |
mv 文件 目录 | mv test a | 将test移动到a目录里 |
10. cat指令&tac指令
用途:打印目标文件内容,文件内容是少的。(大文件用别的指令)
单独的cat(写完cat之后按回车才行),你输入什么(从键盘文件读取什么),就会打印什么(向显示器文件写入什么)
tac指令:逆向打印目标文件内容
使用规则 | 示范 | 功能 |
cat 文件 | cat test.c | 查看目标文件的内容 |
cat -b 文件 | cat -b test.c | 对非空的输出行进行编号 |
cat -n 文件 | cat -n test.c | 对输出的所有行,进行编号 |
cat -s 文件 | cat -s test.c | 不输出多行空行 |
cat < 文件 | cat < test.c | 从文件中读内容到显示器 |
11. echo指令
用途:可以向文件中写入一些字符串,当我们不写东西的时候,还会有个换行符,所以echo默认生成换行符。
printf指令,是默认不带换行的,剩下的跟echo一样
使用规则 | 示范 | 功能 |
echo 字符串 | echo "hello Linux !" | 缺省(默认)向显示器输出,自动换行 (缺省向显示器文件进行写入) |
echo 字符串 > 文件 | echo "hello Linux !" > test | 向test文件写入字符串 (有文件就直接写入,没有就创建再写入) 文件中有内容的话,会被清除,再写入新的字符串 |
echo 字符串 >> 文件 | echo "hello world !" >> test | 在test文件内容后追加字符串 |
我们学到这里了之后,其实我们会发现,在Linux里,一切的东西都可以是文件,我们在向显示器打印的时候,其实就是向显示器文件写入,所以在Linux系统里,我们会统一称为某某文件。
重点⚠️⚠️重点
一、输出重定向符 : >
这个符号类似我们的写入,从 > 的左边写入到 > 的右边
用法1 : > 文件 清空文件内容,再写入
用法2: > 文件(不存在) 新建一个文件
二、输入重定向符 :<
从 < 的右边读取到字符串之后,写入到显示器文件中。
三、追加重定向符:>>
向文件内容后面追加字符串
用法1 :>> 文件(不存在) 新建一个文件
12. more指令
类似cat,但是它是打印大文件的。
查看文件的时候只能按回车,上下键没用,只能下翻,不能上翻,所以我们不继续介绍more了,来看我们的less!
13. less指令(重要)
1.less 工具也是对文件或其它输出进行分页显示的工具,应该说是linux正统查看文件内容的工具,功能极其强大。
2. less 的用法比起 more 更加的有弹性。在 more 的时候,我们并没有办法向前面翻, 只能往后面看
3. 但若使用了 less 时,就可以使用上下键来往前往后翻看文件,更容易用来查看一个文件的内容!
4.除此之外,在 less 里头可以拥有更多的搜索功能,不止可以向下搜,也可以向上搜
5.在浏览文件的时候,退出按q,想搜索具体内容用 /具体内容
使用规则 | 示范 | 功能 |
less 文件 | less test.c | 浏览文件 |
14. head指令
默认打印其相应文件的前10行。
使用规则 | 示范 | 功能 |
head 文件 | head file.txt | 默认向显示器文件写入目标文件前十行内容 |
head -n 文件 | head -n file.txt | 向显示器文件写入目标文件前n行内容 |
15. tail指令
默认打印其相应文件的最后10行。
使用规则 | 示范 | 功能 |
tail 文件 | tail file.txt | 默认向显示器文件写入目标文件后十行内容 |
tail -n 文件 | tail -n file.txt | 向显示器文件写入目标文件后n行内容 |
如果想要提取中间的行内容怎么办呢?
方法一:建立临时文件
把file.txt的前n行拿出来,放在一个临时文件里,再用tail把临时文件的后n行拿出来,但是这样是建立文件才能完成,那有没有不用建立文件的方法呢?
head -n file.txt > newdata tail -n newdata
方法二:使用‘|’命令行管道
什么是命令行管道呢?我们想象一下现实中的管子,两个端开口可以连接,所以我们这个命令行管道就可以将前面的命令和后面的命令连接起来看下面的指令,解读一下就是,前面的输出是作为后面的输入
head -n file.txt | tail -n
16. date指令
date 指定格式显示时间: date +%Y-%m-%d_%H:%M:%S
%H : 小时(00..23)
%M : 分钟(00..59)
%S : 秒(00..61)
%X : 相当于 %H:%M:%S
%d : 日 (01..31)
%m : 月份 (01..12)
%Y : 完整年份 (0000..9999)
%F : 相当于 %Y-%m-%d
使用规则 | 功能 |
date +%Y-%m-%d_%H:%M:%S | 显示当前的时间 |
date -s "年月日时分秒" | date -s "2023-11-9 10:16:30" 设置时间 |
date +%s | 将时间转换时间戳的形式 (时间戳是1970.1.1的午夜到现在时间所经过的秒数) |
date -d@时间戳 | 时间戳转换成时间 |
15. cal指令
cal命令可以用来显示公历(阳历)日历
使用规则 | 示范 | 功能 |
cal | cal | 查看当天的日历 |
cal 年份 | cal 2000 | 查看目标年份的所有日历 |
cal -3 | cal -3 | 显示系统前一个月,当月和下一个月的日历 |
cal -j | cal -j | 显示当天在今天的第几天 |
16. find指令(很重要‼️)
使用规则 | 示范 | 功能 |
find filename | find test | 找到当前目录下的所有名为test的文件或目录,递归查找 |
find 路径 -name filename | find /root/xmb/test -name test | 找到路径下所有名为fliename的文件/目录 |
17. grep指令
在文件内容中找目标字符串,再将找到目标字符串存在的行打印出来。
使用规则 | 示范 | 功能 |
grep 字符串 文件 | grep 'a' file | 在文件file里找,字符串a,并把a存在的行写入在显示器文件中 |
grep -i 字符串 文件 |
grep -i 'a' file | 忽略大小写的不同,所以大小写视为相同 |
grep -n 字符串 文件 | grep -n 'a' file | 顺便输出行号 |
grep -v 字符串 文件 | grep -v 'a' file | 反向选择,亦即显示出没有 '搜寻字符串' 内容的那一行 |
grep -E ^字符串 文件 grep -E ^a flie ^表示匹配文件起始, ^a表示以a起始,向显示器文件下入file文件中所有以a开头的行
grep -E 字符串$ 文件 grep -E a$ file $表示匹配文件末尾,a$表示以a结尾,向显示器文件写入file文件中所有以a结尾的行
18. sort指令
将文本内容每行按ASCII值排序
使用规则 | 示范 | 功能 |
sort 文件 | sort file | 将文本内容每行按ASCII值排序 |
sort -r 文件 | sort -r file | 将文本内容每行按ASCII值排序,但是反向输出 |
19. uniq指令
把文本中相邻且内容重复的行变成一行,再向显示器文件写入
使用规则 | 示范 | 功能 |
uniq 文件 | uniq file | 把文本中相邻且内容重复的行变成一行 |
uniq -d 文件 | uniq -d file | 只显示文本中的重复行 |
uniq -u 文件 | uniq -u file | 保留文本中出现一次的行 |
uniq -c 文件 | uniq -c file | 统计文本中每行的内容出现了几次 |
20. 安装指令yum/apt-get(很重要)
相当于我们手机的应用商店,应用市场;在Linux下实现对指令/工具/程序的安装,检查和卸载。
centos下的是yum,ubuntu下的是apt-get
ubuntu把yum换apt-get就行,其余不变
使用规则 | 示范 | 功能 |
yum list | grep 内容 | yum list | grep lrzsz | yum list罗列出我们yum当前一共有哪些安装包,通过管道| 将内容输入给grep,通过grep筛选出关注的内容。 |
(sudo) yum install -y 指令 普通用户加sudo,-y是默认yes |
(sudo)yum install -y tree |
安装tree命令 |
(sudo) yum remove -y 指令 普通用户加sudo |
(sudo)yum remove -y tree |
卸载tree命令 |
(sudo) yum install -y epel-release 普通用户加sudo |
(sudo) yum install -y epel-release | 有些指令安装不了,拓展yum源 |
yum list | 列出可以安装的软件包 |
yum search | 搜索包含指定关键字的软件包 |
yum clean all | 清除缓存中老旧的头文件和软件包 |
yum makecache | 将服务器的软件包信息缓存到本地 |
更新yum源博客链接:更新yum源的保姆级教程(有手就行)-CSDN博客