Linux基础
Linux简介
GNU、Linux与GPL
人们习惯用Linux(实际应该叫GNU/Linux)来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统,该系统遵循GPL协议
LinuxOS的组成
-
内核:整个系统的核心部分
-
shell:用户与计算机交流的接口
-
文件结构(根文件系统)
从管理的角度看, Linux以文件为中心;从运行的角度看,Linux以进程为中心。
-
实用工具
内核是核心,要使用肯定需要用shell与用户交流,而交流主要通过使用工具操作文件来进行
Linux的安装
磁盘分区
- 在硬盘上建立多个单独存储区域,在物理硬盘上进行逻辑硬盘的分割
- 主分区存放操作系统的引导程序文件和操作系统文件
BIOS启动调用
LILO ( Linux Loader),也是一种 Boot Manager (启动引导程序),也可以不用LILO而是用 Grub 引导
打开电源后,首先是BIOS开机自检,启动操作系统
Linux 系统启动
内核的引导 → 运行 init → 系统初始化 → 建立终端 → 用户登录系统
Linux常用命令
查看帮助
-
man
- 显示操作系统文档内的信息,space看下一页 q退出
- 常用命令格式
man [section number] [-k] command
- The Section numbers
- 代表用户命令
- 代表系统调用及内核服务
- 库函数
- 特殊文件、设备驱动及硬件
- 配置文件
- 游戏 娱乐
- 环境、表等
- 系统管理及维护
- 内核例程(非标准)
- 如果不输入 Section Number,那么 man显示按照上述顺序显示的第一个结果
- The Section numbers
- 按照关键字从帮助文档中搜索
man -k command
命令 和notion快捷键一样都是k
$ man 3 write $ man write $ man -k ls
-
info
info command
- 一个基于菜单的超文本系统
- 命令浏览系统在线帮助文档
- 可通过链接和交叉引用来浏览文档
-
- -help
工具选项,显示程序内部的信息,是程序的作者加上去的,一般比man出来的要简单
Linux命令基础
文件名与路径
- 文件最大256个字符,不能含有“/”
命令参数
- 短参数可以合并,赋值不写“=”;长参数不能合并,赋值要写“=”
command -abcd --parameter1 --parameter2
command -p 10
command --parameter=10
虚拟控制台
Linux是多用户操作系统,可以通过虚拟控制台(一般有七个)实现多个用户同时登录或一个用户多次登录(Alt键+功能键,功能键通常为F1~F6)
常用命令
操作目录与文件,管理用户、磁盘与系统,配置管理网络与进程
目录操作
$ ls [选项] [文件名/目录名/通配符] #查看目录及文件
$ ls -a #列出所有文件
$ ls -d #列出所有目录
$ ls -l #列出文件的详细信息
ls -l l* #列出当前目录下以“l”开头的文件的详细信息
$ pwd #显示用户的当前工作目录
$ cd [目录名] #切换目录
#如果不输入目录名,即返回用户主目录
#如果目录名输入`-`即显示并返回**上次更改目录之前的目录**
$ mkdir [参数] 目录名 #创建目录
$ rmdir [参数] 目录名 #删除目录
#**删除目录时要保证目录内已无任何文件或目录,否则命令不成功**
#参数-p表示递归删除或创建目录
rmdir -p ccc/new #表示删除ccc/目录中的new目录,若删除new后ccc也为空,则ccc也被删除
#**p**arent together
文件操作
$ cat [文件名称] #显示文本文件内容
$ cat file1 #显示file1的内容
$ cat file1 file2>file3 #把file1和file2的内容输入到file3中
$ cat < file << EOF #从文件中读取输入,并直到遇到EOF(End Of File)为止
$ cp [文件] [目的地] #拷贝文件
$ cp /root/* /temp #将root下的所有文件(不包括隐藏文件)拷贝到根目录下的temp内
$ mv [文件名1] [文件名或目录名] #文件更名或搬移
$ rm [文件名] #删除文件
$ find [目录名] [选项] #搜索文件或目录
$ find . -name "*.c" #列举当前目录及其子目录下所有扩展文件名是'.c'的文件
#-print 表示将匹配文件输出到标准输出
#-size 表示根据文件大小查找
#-user 表示根据文件所有者查找
#-exec 表示对匹配的文件执行该选项所给出的命令,命令格式为'command' {} \;例子如下
find . -name "*.asm" -exec ls -l {} \; #注意空格和结尾格式
$ grep [字符串] [文件名] #在**文件**中查找字符串
$ grep tigger file1 #在file1中查找tigger字符串
$ grep -v -n printf 2.6.c
#-v表示在文件中查找**不包含**printf的行,-n表示将该行的行号显示出来
$ command > filename 2 > &1 #把标准输出和标准错误输出重定向到一个文件中
# >> << 追加重定向
echo "2+4" #输出 2+4
echo "2+4" | bc #输出 6 ,bc是计算器语言
cat
、more
和less
- cat是一次性显示整个文件的内容,还可以将多个文件连接起来显示,常与重定向符号配合使用,适用于文件内容少的情况
- more和less用于显示文件内容超过一屏的内容,一次显示一页,并且提供翻页的功能。more比cat强大,less比more强大
*cp
mv
rm
*需要注意的几个选项-f
强制执行-i
交互式的执行命令-r
递归删除、拷贝。 mv命令没有该选项
文件备份和压缩
$ tar cvf [打包的文件名] [要打包的文件]
tar cvf test.tar *.txt #将当前目录下所有txt文件打包为text.tar
$ gzip [选项] [文件目录列表] # 压缩命令
$ gunzip [选项] [压缩包包名] # 解压缩命令
$ zip [-r] [压缩后的文件名称] 文件或目录 # 压缩
$ unzip [选项] 压缩包包名 # 解压缩
# zip更像一个打包器,能把多个多件放到一个zip中,压缩后保留源文件
# gzip一次只对一个文件压缩,通常与tar命令一起用,压缩后不保留源文件
关机和系统命令
$ shutdown [选项] [时间][警告信息] #关机
$ date
$ who
用户管理命令
$ chmod 权限参数 文件或目录名称 #改变文件权限
#文件的用户权限属性可用9位表示,每位用0或者1表示,1表示具有对应的权限,0表示没有该权限
#一般可将对应的三位二进制码转换为8进制,比如111→7
$ chmod [u/g/o/a] [+/-/=] [权限] FileName/DirecName
$ chown 用户账号 文件或目录名称 #改变文件拥有者
磁盘管理命令
$ df [可选参数]
$ df -k #显示系统配置的每个磁盘当前被占用的空间大小
$ du #逐级进入指定目录的每一个子目录,并显示该目录占用文件系统数据块的情况
进程管理命令
$ ps #查询正在执行的进程
$ kill #终止正在执行的进程或者发送信号
kill -9 PID #无条件删除进程号为PID的进程
$ at #在指定的时刻运行指定的命令
$ cron #周期性的执行指定的程序
Vi编辑器的使用
- 命令模式下按 v 进入可视模式
POSIX标准和LSB标准
- 可移植操作系统接口标准。定义了操作系统应该为应用程序提供的接口标准,是 IEEE 为要在各种 UNIX 操作系统上运行软件而定义的一系列 API 标准的总称。
- POSIX 并不局限于 Unix 系统,Microsoft windows NT 等也支持 POSIX 标准。
- LSB 是 Linux 标准化领域中事实上的标准,使各种软件可以很好地在兼容 LSB 标准的系统上运行。
- LSB 以 POSIX 和 SUS 标准为基础,还增加了对二进制可执行文件格式规范的定义,保证 Linux 上应用程序源码和二进制文件的兼容性。
LSB是在POSIX基础上改进后更适合Linux的标准,主要实现了二进制的兼容