Linux
1. Linux简介
Linux是操作系统
Linux中所有的程序与硬件设备对Linux系统而言都是一个文件或文件夹
1.1 Linux发行版本
发型版本的名称/版本有发行方决定
- Red Hat Enterprise Linux 5/6/7
- Suse Linux Enterprise 12
- Debian Linux 7.8
- Ubuntu Linux 14.10/15.04
1.2 Red Hat 系列版本
-
红帽 Linux 企业版
- 简称RHEL(Red Hat Enterprise Linux)
- http://ww.redhat.com/
-
Fedora Core 社区版
- http://fedoraproject.org/
-
CentOS,社区企业操作系统
- Community Enterprise Operating System
- http://www.centos.org/
1.3 Linux 目录结构
树形结构
/ 系统根目录,通常不会在这里存储文件
├── boot 启动目录(引导区块)
│
├── bin 系统二进制目录,存放普通用户级的 GNU 命令
├── sbin 系统超级二进制目录,存放管理员级别的 GNU 命令
├── usr 资源目录 (User System Resources)
│ ├── bin 用户二进制目录,存放用户级的 GNU 命令
│ └── sbin 用户超级二进制目录,存放管理员用户的 GNU 命令
│ └── local 存储第三方软件的
│ ├── bin
│ └── sbin
│
├── opt 第三方开发的程序 (option), 意为"选装"
│
├── dev 设备目录(device)
│ ├── null 无底洞 (丢弃一切写入其中的数据)
│ ├── zero 无限 0 数据流 (常用来产生一个特定大小的空白文件, 或安全销毁文件)
│ ├── shm 内存文件夹
│ ├── sda 第一块SCSI设备(及第一块SCSI磁盘)
│ ├── random 随机数发生器
│ └── urandom 非阻塞的随机数发生器
│
├── etc 系统配置文件目录 (et cetera)
├── proc 当前的进程、运行状态信息的目录
│
├── root 管理员家目录
├── home 用户的家目录
│
├── media 媒体目录,可移动媒体设备的常用挂载点,一般是系统自动挂载到这里
├── mnt 挂载目录,另一个可移动媒体设备的常用挂载点,一般是留给用户手动挂载
│
├── lib 系统库目录,存放系统和应用程序的库文件
│
├── srv 服务目录,存放本地服务的相关文件
├── sys 系统目录,存放系统硬件信息的相关文件
│
├── run 运行目录,存放系统运作时的运行时数据
├── tmp 临时目录,可以在该目录中创建和删除临时工作文件
└── var 可变目录,用以存放经常变化的文件,比如日志文件
2. 常用命令
平常通过图形界面能够实现的功能,通过命令基本上都可以实现
① --help
命令 --help
命令帮助信息
② man
man 是 Linux 提供的一个手册,这个手册有很多个章节
第一章中放的是 命令 的帮助信息
第二章中放的是系统调用(操作系统提供的函数 open)
第三章中放的是库函数(c 库提供的函数 printf)的帮助信息
语法:
man 章节 查找信息
例:
man 1 ls
注意:
查看内容后想要翻译点击上下键
如果想退出输入q
③ ls
查看当前路径下的文件
ls 选项 参数 选项 -a 所有 -l 详细信息 -h 人性化输出(数据有单位)
④ tree
作用:树状查看文件
没有的需要安装:
sudo apt-get install tree
语法:
tree -L 层数
tree:默认列出所有层。
例:
zhb@zhb-edu:~/temp$ tree
.
└── file
├── file1
│ ├── aaa.text
│ └── bbb.text
└── file2
├── ccc.text
└── ddd.text
3 directories, 4 files
⑤ cd
作用:进入指定的文件夹
路径可以使用
相对路径
也可以是绝对路径
- : 表示
/home/用户名
⑥ pwd、which
pwd
:显示当前工作目录的绝对路径zhb@zhb-edu:~/temp$ pwd /home/zhb/temp
which
:查看命令所在路径zhb@zhb-edu:~/temp$ which ls /bin/ls
⑦ cat
作用:查看文件中的内容
⑧ rm
作用:删除文件或文件夹
语法:
rm 选项 要删除的文件或文件夹路径
选项:
-r 文件夹
-f 强制
-rf
⑨ cp、mv
cp
:复制语法:
cp 选项 原文件路径 目标路径 选项 -r 文件夹 -a 进度
mv
:移动语法:同cp
⑩ mkdir、touch
mkdir
:创建文件夹
touch
:创建文件
⑪ find、grep
find
:在指定路径下查找指定文件语法:
find 查询的目录 -name 查询的文件名
例:
zhb@zhb-edu:/$ find /home/zhb/temp/file/file1 -name abc.text /home/zhb/temp/file/file1/abc.text
grep
:在指定文件中查找指定内容语法:
grep 要查询的内容 查询的文件路径 选项 选项 -n 显示行数 -r 文件夹
例:
zhb@zhb-edu:/$ grep a /home/zhb/temp/file/file1/aaa.text -n 1:aaa 6:abc 7:asfg zhb@zhb-edu:/$
⑫ tar
压缩或解压缩
解压
tar 选项 文件 -C 目标位置默认为当前目录
压缩
tar 选项 压缩包名称 要压缩的文件1 要压缩的文件2 ...
选项
z:gzip格式压缩包
j:bz2格式
x:解压
c:压缩
例:
- 压缩:
tar zcvf file1.tar.gz file1
zhb@zhb-edu:~/temp/file$ ls
file1 file2
zhb@zhb-edu:~/temp/file$ tar zcvf file1.tar.gz file1
file1/
file1/abc.text
file1/aaa.text
file1/bbb.text
zhb@zhb-edu:~/temp/file$ ls
file1 file1.tar.gz file2
- 解压:
tar zxvf file1.tar.gz -C ./
zhb@zhb-edu:~/temp/file/file2$ ls
ccc.text ddd.text file1.tar.gz
zhb@zhb-edu:~/temp/file/file2$ tar zxvf file1.tar.gz -C ./
file1/
file1/abc.text
file1/aaa.text
file1/bbb.text
zhb@zhb-edu:~/temp/file/file2$ ls
ccc.text ddd.text file1 file1.tar.gz
zhb@zhb-edu:~/temp/file/file2$
⑬ ln
创建软连接
语法:
ln 原文件路径 连接名 -s
例:ln file1/aaa.text aaa-1.test -s
软连接,也就是快捷方式
- 改变软连接的内容,原文件内容也会随之改变
- 但是删除软连接,原文件不收影响
⑭ 其他
(1) echo
作用:输出(在屏幕输出)
zhb@zhb-edu:~/temp/file$ echo aaa-1.test
aaa-1.test
zhb@zhb-edu:~/temp/file$
(2) 重定向 >、>>
本来输出到屏幕
上的数据,重定向
输出 到了 目的文件中
>
:替换
>>
:追加
例:>
zhb@zhb-edu:~/temp/file$ echo hello Linux > aaa-1.test
zhb@zhb-edu:~/temp/file$ cat aaa-1.test
hello Linux
zhb@zhb-edu:~/temp/file$
例:>>
![02-管道](images/02-管道.png)zhb@zhb-edu:~/temp/file$ echo 知行合一,致良知 >> aaa-1.test
zhb@zhb-edu:~/temp/file$ cat aaa-1.test
hello Linux
知行合一,致良知
zhb@zhb-edu:~/temp/file$
(3) 管道 |
一个程序的输出 作为另外一个程序的输入
例:
zhb@zhb-edu:~/temp/file/file1$ ls | grep a
aaa.text
abc.text
zhb@zhb-edu:~/temp/file/file1$
3. vim
作用:文本编辑器
vi的升级版
3.1 安装
sudo apt-get install vim
3.2 使用
创建或打开文件
文件存在就打开,不存在就创建
语法:
vim 文件名
3.3 模式
插入模式:
可以直接编辑文档
按esc键进入编辑模式
编辑模式:
不支持对文件的编辑,但是可以查找等其他操作
打开文件文件时默认为编辑模式
按
shift+:
进入命令行模式按:
i
,a
,o
都可以区别在于插入的位置不同命令行模式(最后一行模式) :
- 退出,保存或保存退出登操作
- 按esc键进入编辑模式
- 命令:
- q 退出
- w 保存
- ! 强制
- wq 保存退出
- q 强制退出
3.4 快捷键
编辑模式下:
a) u 撤消前面多次修改。 ctl r 反撤销
b) [n]x 删除光标后 n 个字符。如: 3x
c) [n]X 删除光标前 n 个字符。如: 6X
d) [n]dd 删除从当前行开始的 n 行。如: 4dd
e) [n]yy 复制从当前行开始的 n 行。如: 4yy
编辑模式下的查找
- /字符串:从光标开始处向文件尾查找字符串。
- n:同一方向重复上一次查找命令。
- N:反方向重复上一次查找命令
- :nohls 取消高亮
4. gcc编译器
将C语言代码文件编译为可执行文件
4.1 编译
编译后最终生成 .out
可执行文件。
① 步骤:
- 预编译
- 编译
- 汇编:唯一一门可以与计算机直接交流的语言
- 只能用加法(汇编中的减法的是+负数 )
- 连接
② 对应的命令:
gcc -E 源文件.c -o 预处理文件名.i —— 1、预处理
gcc -S 预处理文件名.i -o 编译文件名.s —— 2、编译
gcc -c 编译文件名.s -o 汇编文件名.o —— 3、汇编
gcc 汇编文件名.o –o 可执行文件名 —— 4、链接
③ 简化 — 直接编译
gcc 原文件名 -o 可执行文件名
gcc 原文件名
注意:生成的可执行文件默认名为 .out 文件
4.2 执行可执行文件
./可执行文件名
注意:必须在当前可执行文件所在的目录下