linuxconcept1

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、目录结构

linux的目录结构图

分析:

/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 生成