一、 计算机常识
Windows动态链接库:
dll :Dynamic Link Library
Linux共享依赖库:
so:shared object
二、Linux
1.
Linux的基本原则
1、由目的单一的小程序组成;组合小程序完成复杂任务;
2、一切皆文件;
3、尽量避免捕获用户接口;
4、配置文件保存为纯文本格式;
Linux 精神
开源:开放源代码 Open source
自由:自有获取,自有修改,自由学习。
开源是获利不是收取版权,卖服务,授权使用费,卖的是软件,还有服务等级(售后响应)。
1. 多种发行版本
基于RedHat二次发行的版本:
centOS:Community Enterprise OS 社区企业操作系统
安装软件工具
kernel:2w
Debian:dpt
RedHat:rpm
Ubuntu:Mint
GNU GNU is Not Unix
通用公共许可证
GPL: General Public License
LGPL:lesser
GPLv2:
GPLv3:
gcc GNU C 语言编译器
GNU C Complier
源代码:C —> 编译成二级制(交叉编译)
ABI:Application Binary Interface
使用凭证
用户和密码。
认证机制:authentication
授权:authorization
审计:audition(日志)
2. shell的类别
01. GUI:
Graphic User Interface 图形化用户界面
Gnome:C
KDE:C++
XFace
02. CLI:
Command Line Interface 命令行用户界面
sh
bash
csh
zsh
ksh
tcsh
3. 系统调用
4.环境变量
启用禁用tomcat可以将tomcat的路径添加到path环境变量的路径里,就可以直接使用tomcat的start.sh命令了
多个 PATH 使用 “:” 隔开
查看命令的缓存 hash
命中率
5. 命令格式
选项
解释:
{
[] 可省略
| 表示多选一
<> 必选
… 可以出现多次
{} 分组
}
短选项:多个选项可以组合:-a -b = -ab
长选项:一般使用 —word (接一个单词)
参数
命令的作用对象,可以是个列表
prompt,命令提示符:
命令:
magic number:魔数
shebang
#!/bin/bash
#shell程序的入口,指定shell程序
获得命令的使用帮助:
内部命令:
help COMMAND
外部命令:
COMMAND —help
命令手册:manual
man COMMAND
whatis COMMAND
- 显示某个命令的描述信息
MAN:
NAME:命令名称及功能简要说明
SYNOPSIS:用法说明,包括可用的选项
DESCRIPTION:命令功能的详尽说明,可能包括每一个选项的意义
OPTIONS:说明每一个选项的意义
FILES:此命令相关的配置文件
BUGS:
EXAMPLES:使用示例
SEE ALSO:另外参照
翻屏:
向后翻一屏:SPACE
向前翻一屏:b
向后翻一行:ENTER
向前翻一行:k
查找:
/KEYWORD: 向后
n: 下一个
N:前一个
?KEYWORD:向前
n: 下一个
N:前一个
q: 退出
在线文档:
info COMMAND
(man的补充)
文档:/usr/share/doc
分章节
用户命令(/bin,/usr/bin,/usr/local/bin)
系统调用
库用户
特殊文件(设备文件)
文件格式(配置文件的语法)
游戏
杂项(Miscellaneous)
管理命令(/sbin,/usr/sbin,/usr/local/sbin)
命令的类型
内部命令:(shell内置),内部,自建
外部命令:在文件系统的某个路径下有一个与命名名称相应的可执行文件
命令补全
长命令单词忘记或不想输入、文件不想键入可以使用TAB键自动补全命令,多个相同的命令按两下TAB键显示所有命令、路径前缀相同的内容。
在PATH路径下寻找
路径补全
在目录路径下寻找
命令别名 alias
alias CMDALIAS='COMMAND [options] [arguments]'
在shell中定义的别名仅在当前shell生命周期中有效;别名的有效范围仅为当前shell进程;
# 取消别名
ualias CMDALIAS
\CMD # 命令别名和命令名相同的加反斜线使用原命令
命令替换: $(COMMAND), 反引号:`COMMAND`
把命令中某个子命令替换为其执行结果的过程
# 创建文件名为:file-2018-12-25+24+54.txt
touch file-$(date +%F+%M+%S).txt
正则表达式
文件名通配, globbing
*: 任意长度的任意字符 [0,)
?:任意单个字符
[]:匹配指定范围内的任意单个字符
[abc], [a-m], [a-z], [A-Z], [0-9], [a-zA-Z], [0-9a-zA-Z]
[:space:]:空白字符
[:punct:]:标点符号
[:lower:]:小写字母
[:upper:]: 大写字母
[:alpha:]: 大小写字母
[:digit:]: 数字
[:alnum:]: 数字和大小写字母
# man 7 glob
[^]: 匹配指定范围之外的任意单个字符
[[:alpha:]]*[[:space:]]*[^[:alpha:]]
练习:
1、创建a123, cd6, c78m, c1 my, m.z, k 67, 8yu, 789等文件;注意,以上文件是以逗号隔开的,其它符号都是文件名的组成部分;
2、显示所有以a或m开头的文件;
ls [am]*
3、显示所有文件名中包含了数字的文件;
ls *[0-9]*
ls *[[:digit:]]*
4、显示所有以数字结尾且文件名中不包含空白的文件;
ls *[^[:space:]]*[0-9] ?????????
5、显示文件名中包含了非字母或数字的特殊符号的文件;
ls *[^[:alnum:]]*