linux的基础讲解
今天开始进入Linux的讲解,从Linux的基础命令、路径,最后还会涉及到C语言和数据结构、网络相关的知识点。但是今天讲不到C语言那些去。
1、终端格式:linux @ ubuntu:~$,(是以Ubuntu为例)打开终端的的快捷键是:CTRL+alt+t,也可以直接打开它。
1 2 3 4 5 6
| linux @ ubuntu:~$ 对这条指示的解释: Linux是普通用户名,Ubuntu是系统的名称,$是普通用户的标识。 当然还有一个管理员用户了。 root@ubuntu:~# 同理:#是超级管理员的标识。
|
2、简单的命令:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| 命令名称 命令的作用 pwd 显示当前的工作路径(绝对路径) ls 列出文件的状态 +【选项】(-1,-i,-h,-l) cat +文件名 显示文件的信息 rm 删除文件 vi 编辑文件 cp 复制文件 mv 修改文件名 mkdir 创建文件 rmdir 删除空文件 rm –rf 删除文件夹 cd + - 进入到上一次切换的目录 切换目录 clear 或者 CTRL+l 清屏 grep 查询关键字 grep “关键字” 地址 -rn 寻找当前目录下的xxx -rn递归查询
|
其中对执行的ls -l命令时候的结果的分析:
1 2 3 4 5 6
| rwx 文件所属用户对该文件执行权限 r-x 同组其他用户对该文件的执行权限 r-- 非同组其他用户对该文件的执行权限
|
3、目录结构
分析:
/home/linux 家目录
/ 根目录
4、文件的类型
1 2 3 4 5 6 7 8
| 类型简写 类型的全称 介绍 b block 块设备文件(比较少) c char 字符设备文件 d 目录 - 普通文件 l 链接文件 s socket 套接字文件 p pipe 管道文件
|
5、vi或vim编辑器
1)三种模式:命令模式(默认):刚进入vim的时候,默认就是命令模式,可以复制行,删除行等。
输入模式:可以输入内容。
末行模式:在最下边,除编辑模式,可以输入诸多管理员命令
2) 输入模式->命令模式
1 2 3 4 5 6 7 8 9 10 11 12
| :wq 保存退出 :q! 强制退出 :q 只退出不保存 按住shift+yy 复制一行 p 粘贴 Shift+dd 删除整行 u 回复到上一个状态 :vsp 文件名 分栏显示文件 :wqa 退出全部 Shift gg 跳到最后一行 Shift :200 跳到200行 :w 保存不退出
|
3) 命令模式->输入(插入)模式
i:在当前光标所在字符的前面,转为输入模式
I:在当前光标所在行的行首转换为输入模式
a:在当前光标所在字符的后面,转为输入模式
A:在光标所在行的行尾,转换为输入模式
o:在当前光标所在行的下方,新建一行,并转为输入模式
O:在当前光标所在行的上方,新建一行,并转为输入模式
s:删除光标所在字符
r:替换光标处字符
4)命令模式->末行模式
输入“:”即可转为末行模式
注意:在vi编辑器里面,CTRL+空格键,切换中英文
Exit 或者CTRL+d关闭终端
CTRL+ALT+t打开终端
vi –O 文件名 文件名 同时打开两个文件
Sudo shutdown –r now 重启==sudo reboot
Sudo shutdown now 关机
6、shell指令
1 2 3 4 5 6 7 8 9 10 11
| Head -行数 文件名 查看文件的前几行数据 Tail -行数 文件名 查看末尾倒数几行的数据 Diff 文件名 文件名 比较两个文件的不同 File 文件名 查看文件类型:如属于c语言程序 Echo “xxx” >文件名或设备 终端将xxx重定向到文件或设备中清空方式 >> 追加重定向 Df –TH 查看文件系统空间的占用情况 Du -mh 查看文件的大小 Sudo chmod 755 文件名 改变文件或目录的访问权限 Man + 命令名称 Linux官方文档 Sudo password +用户名 修改用户密码
|
7、tar归档压缩
1 2 3 4 5 6 7 8 9 10 11
| -v显示归档文件以及释放的过程 -c 创建新的文档文件 -f制定归档文件的名称 -x释放归档文件 -z将归档文件使用gzip压缩 -j 将归档文件,bz2压缩 Tar -cjf +压缩文件名 (如 dd.tar.bz)+需要压缩的目录 Tar –czf +压缩文件名(如 dd.tar.gz) +需要压缩的目录 tar解压: tar –xvf +压缩文件名
|
8、执行C语言的步骤
1 2 3 4 5 6 7 8 9 10 11
| Vim+文件名 打开编辑器 CTRL+Shift+n 打开一个终端 Sudo gcc c语言文件的文件名 Sudo gcc +文件名 –o +生成的可执行的程序名 执行:./执行程序名 编译器编译源码步骤: 预处理 xxxx.c ------- xxx.i(预处理文件) 编译 xxx.i -------xxx.s(汇编文件) 汇编 xxx.s ------xxx.o(可重定向文件) 链接 xxx.o(可执行文件的依赖) ---- xxx(可执行文件) 单步执行:-E 、 -S 、 -c
|
9、1)Makefile
1 2 3
| Makefile格式: target (目标) :dependency_file(依赖文件) <TAB> command (指令,依赖文件—>目标)
|
2)Makefile定义变量
OBJS = main.o funn.o 定义变量接受main.o 和funn.o
main : $(OBJS)用上面定义的变量替换main.o 和funn.o
3)Makefile的内容
1 2 3 4 5 6 7 8 9 10 11
| OBJS = main.o funn.o CC=gcc CFLAGS = -Wall -O2 main : #(OBJS) $(CC) *.o -o main main.o : main.c $(CC) $(CFLAGS) -c main.c -o main.o funn.o : funn.c $(CC) $(CFLAGS) -c funn.c -o funn.o clean: rm -rf *.o main
|
4)变量的讲解
自动变量:
1 2 3
| $< 第一个依赖文件的名称 $^ 所有不重复的文件,以空格分开 $@ 目标文件的完整名称
|
10、静态库、动态库
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| 1、静态库: 1) 将功能函数所在的文件编译成可重定向文件 gcc –c funn.c –o funn.o 2) 将可重定向文件制作成静态库 tar crs lib fncn.a funn.o 归档压缩 3) 编译时指定库的路径和名字 gcc main.c –o main –L . –lfunn “.”表示的是当前目录 2、动态库: 将功能函数所在的文件编译成可重定向的文件 gcc -fPIC –c funn.c –o funn.o -fPIC 生成
|