Linux的基本指令和热键

Linux的基本指令

一、Linux下基本指令

1、ls-----显示当前目录(当前用户所处的目录)下的文件/文件夹

ls -l   显示列表   //.:当前目录
                  //..:上级目录
ls -a             //显示所有文件(包括隐藏文件——以.开头的文件)

ls -a -l
ls -al

2、pwd-----查看当前用户所处的目录

在这里插入图片描述

3、cd-----改变工作目录

在这里插入图片描述

cd ~   //进入当前用户的主工作目录
cd /   //回到根目录
cd -   //返回最近访问目录
//进入72班目录里
cd usr/

./可以用来执行某段代码

./a.out

从根目录("/")开始的路径称为绝对路径,只有一种路径,不会失效

在这里插入图片描述

/home/bit/test.c

从现在所在的目录开始的路径称为相对路径,容易失效

//比如说现在在bin
../../home/bit/test.c

4、touch-----只能用来创建普通文件(makefile也是touch创建的)

touch test.c

在这里插入图片描述

5、stat-----查看一个文件的属性(进入时间,修改时间,改变时间)

进入时间:Access
修改时间:Modify
改变时间:Change

stat file.txt

*6、mkdir-----制作一个目录(路径)

mkdir dir

在这里插入图片描述

//只包含目录
mkdir -p

7、tree-----以树状目录形式显示目录结构

tree .
tree 72——class
tree /

*8、rm-----删除目录

在这里插入图片描述

rm test2
rm -rf    //删除所有文件(包括被保护的文件,且不用询问)---删库跑路必备

rmdir-----删除空目录

在这里插入图片描述

*9、man [选项] 命令-----查看命令参数(cman为汉化)_按q退出

选项:
在这里插入图片描述

  • 1:用户指令
  • 2:系统调用
  • 3:程序库调用(C语言)

命令:
在这里插入图片描述

10、echo-----把echo后面的以字符串形式显示到显示器中

echo hello linux               //显示到显示器中(将字符串写到显示器文件里)
echo hello linux > test.txt    //将本来应该写到显示器文件中的内容写入到文件里)
cat test.txt                   //将文件中的内容显示出来

echo和cat的区别:

  • echo是显示字符串
  • cat是显示文件中的内容

11、cat-----正序拷贝打印(只能拷贝普通文件)

在这里插入图片描述

cat src /dst(绝对路径/相对路径)

tac-----逆序拷贝打印

*12、mv-----对文件进行重命名/剪切

重命名:

mv my.txt you.txt

剪切:

mv  test.txt rid    //把test.txt拷到rid

在这里插入图片描述

13、cp-----复制文件/命令

在这里插入图片描述

14、more-----将文件中运行,并搜索关键字

在这里插入图片描述
在这里插入图片描述

  • 先将文件中的代码运行,循环走满屏,剩下的折叠起来
  • 回车下翻
  • /10000跳转到10000行
  • 按q退出

*15、less-----将文件中运行,并搜索关键字

在这里插入图片描述

  • 先将文件中的代码运行,循环走满屏,剩下的折叠起来
  • 上下键上下翻
  • /10000跳转到10000行
  • 按q退出

16、head-----打印文件中的前十行代码

  • 默认打印文件(循环)中前10行代码
//要拿前二十行
head -20 file.txt

17、tail-----打印文件中的后十行代码

  • 默认打印文件(循环)中后10行代码
//要拿后20行
tail -20 file.txt
//要拿中间
"|"-----管道,把"|"前面的当成后面的数据源
//这里,file.txt有10000个数
head -5010 file.txt | tail -10    //提取5000——5009

18、date-----打印现在的时间

在这里插入图片描述
在这里插入图片描述
时间戳:格林威治1970年1月1日0时0分0秒开始,到现在的秒数
北京1970年1月1日8时0分0秒开始,到现在的秒数
在这里插入图片描述

19、cal-----日历(默认显示现在这个月的)

在这里插入图片描述

在这里插入图片描述
当年的
在这里插入图片描述
近期三个月
在这里插入图片描述

*20、find-----特定路径下查找

//在72_class路径下找test.c文件
find 72_class -name test.c

which-----帮我们找一个命令所在路径

which ls

whereis-----所有该词出现的所在路径

21、alias-----取别名

alias myexe='ls --color=auto'

在这里插入图片描述

22、grep-----文本行过滤工具(以行为基本单位)

----------------一般性的文本过滤
-n 加行号
-v 如果匹配到关键字,就把不包含关键字的行匹配出来
-i 忽略大小写

grep '999' file.txt
//忽略大小写
grep -i 'ERror' file.txt

*23、’|‘管道-----将’|‘前的输出作为’|'后的输入

cat file.txt | grep '999'

24、zip-----打包压缩

//将2_lesson的tree整个打包压缩到2_lesson.zip
zip 2_lesson.zip 2_lesson/*

unzip-----解压

//将2_lesson.zip解压到test目录(文件夹)中
unzip 2_lesson.zip -d test

25、tar-----打包/压缩(f必须紧跟文件名)

在这里插入图片描述

//压缩
tar -czf 72_class.tgz 72_class
//解压
tar -xzf 72_class.tgz -C test

26、bc-----计算器(浮点型)

bc
1*1

echo "1+1+2+4+6" | bc

*27、uname-----查内核版本,电脑的CPU架构

uname
全部

//全部
uname -a

查内核版本

//查内核版本
uname -r

在这里插入图片描述
图中的3.10为内核版本
x86_64代表当前的计算机用的CPU架构(64位)

28、clear-----清屏

29、sudo-----以系统管理员的身份运行

在这里插入图片描述
在这里插入图片描述

30、shutdown-----关机(没有开机,所有的指令必须在开机情况才能使用)

在这里插入图片描述

31、"<"-----重定向(将要放入的文件清空,再写入)

“>>”-----重定向(写入要放入的文件)

echo "helle world!" >> file.txt

32、sz:将选定的文件发送(send)到本地机器

//从服务端发送文件到客户端:
sz filename

33、rz:运行该命令会弹出一个文件选择窗口,从本地选择文件上传到Linux服务器

//从客户端上传文件到服务端:
rz

34、file-----查看文件类型

file helloworld.c

35、ldd-----用于打印程序/库文件所依赖的共享库列表

  • 用户在链接的时候如果出现了链接错误,应该先确认是否存在对应的库

.so-----动态库

-static-----变成.a静态库

程序体积比较小,比较节省系统资源(磁盘+内存)
一旦库缺失,所有依赖的程序都不可运行了!!

  • 优点:电脑共享,节省社会资源
  • 缺点:不方便,慢

.a-----静态库

程序的体积非常大,浪费系统空间
库缺失,程序不会受到影响

  • 优点:快,不依赖第三方场所
  • 缺点:浪费

36、make(命令)-----构建工程

make
  • 一旦写编写好 Makefile 文件,只需要一个 make 命令,整个工程就开始自动编译,不再需要手动执行 gcc 命令。

37、makefile(是一个文件)-----文件的依赖关系和依赖方法

makefile默认生成自顶向下扫描到的第一个可执行程序

ls > makefile

在vim内创建makefile:

//依赖关系
hello:hello.c
//依赖方法
TAB gcc hello.c -o hello

//运行且不打印

//依赖关系
hello:hello.c
//依赖方法
TAB @gcc hello.c -o hello

在vim内项目清理:
PHONY修饰的目标总是被执行

//项目清理:
.PHONY:clean
clean:
rm -f hello

在vim外打项目清理:

make clean

在这里插入图片描述

运行并清理文件:

①版本

main:main.o cal.o
TAB gcc -o main main.o cal.o
main.o:main.c
TAB gcc -c main.c
cal.o:cal.c
TAB gcc -c cal.c

.PHONY:clean
clean:
TAB rm -f *.o main
  • $@:依赖关系中的目标文件
  • $^:依赖文件列表
  • $<:把所有一个一个拿出来
    ②版本
main:main.o cal.o
TAB gcc -o $@ $^
main.o:main.c
TAB gcc -c main.c
cal.o:cal.c
TAB gcc -c cal.c

.PHONY:clean
clean:
TAB rm -f *.o main

③版本

main:main.o cal.o
TAB gcc -o $@ $^
%.o:%.c
TAB gcc -c $<

.PHONY:clean
clean:
TAB rm -f *.o main

make VS makefile

  • make是执行依赖关系和依赖方法的命令
  • makefile是维护该机制的文件,保存的是项目的依赖结构

38、git代码的使用

git clone http://

39、chown-----改变文件的拥有者

在这里插入图片描述
在这里插入图片描述

40、ps-----显示进程

ps aux-----显示进程的所有信息

ls /proc/-----查看进程

41、$?-----最近一个命令执行的退出网

echo $?

42、sudo top-----通过调整ni值调整进程的优先级

在这里插入图片描述

二、热键

1、CTRL+C-----终止失控程序

2、快速TAB两下-----可以把以其为头的全部显示出来

whi,快速TAB两下,寻找系统中以whi开头的

TAB一下,可以自动补齐

3、CTRL+D-----快速退出某个链接

三、函数(头文件:unistd.h)

1、fork()-----创建子进程

在这里插入图片描述
fork函数的子进程和父进程共享代码,数据各自私有一份!

fork的返回值-----pid_t ret = fork()

在这里插入图片描述

pid_t ret = fork()

fork函数的写时拷贝(页表映射)

在这里插入图片描述
父进程创建子进程时,页表会将父进程和子进程的权限改为只读状态
写入时,出发写时拷贝(写多少字节,拷多少字节),谁先写入,谁报错,然后操作系统将触发写时拷贝(将数据拷贝过来)

2、getpid()-----取得进程识别码

在这里插入图片描述

3、gitppid()-----获得父进程的进程识别码

在这里插入图片描述

4、kill-----杀掉进程

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值