3.1 Linux的基本原则:
1、由目的单一的小程序组成;
组合小程序完成复杂任务;
2、一切皆文件;
把几乎所有的资源都整合为文件形式
3、尽量避免跟用户交互;
目标:实现脚本编程,以自动完成某些功能
4、配置文件保存为纯文本格式;
目标:一款文本编辑器即可实现系统配置
3.2 Shell及命令格式
GUI接口:图形化的人机交互接口
CLI接口:
命令提示符,prompt, bash(shell)
[root@localhost ~]# : root
[daniel@localhost ~]$: 普通用户
命令:输入命令,按enter之后命令送入内核,随后内核判断能否执行
命令格式:
命令 选项 参数
选项:修改命令的执行方式
短选项: -
短选项多个选项可以组合:-a -b = -ab
长选项: --
参数:命令的作用对象(多个参数由空格隔开)
使用凭证:验证用户身份和权限
严格区分大小写,root为默认管理员用户,一般不可以修改
虚拟终端(terminal):Ctrl+Alt+F1-F6,切换虚拟终端,模拟有多个用户,多个显示器
右键open terminal:可打开模拟终端
Linux GUI:
Gnome: C
KDE: C++
XFace:简洁的轻量级的桌面,多用于嵌入式平台
CLI:
sh
bash:最广泛,功能最强大
csh
zsh
ksh
tcsh
3.3 用户和密码管理
3.31 用户切换
root, student, vistor
su: switch user(切换用户)
# su [-l] 用户名
su -l 完全切换
su 用户名:半切换
# passwd
3.32 密码复杂性规则
六位密码:
纯数字:10^6
数字+字母:36^6
数字+大小写字母:62^6
所有字符:100^6
Linuxedu@126.com
1、使用4种类别字符中至少3种;
2、足够长,大于7位;
3、使用随机字符串;
4、定期更换;
5、循环周期足够大;
3.4 Shell和库
3.41 shell
RHCE+RHCA+shell编程+MySQL+Web集群+NoSQL+Hadoop+Hbase+Openstack
GNU: GNU is Not Unix.
GPL: General Public License,通用公共许可证,版权
Copyright, Copyleft
开源协定
LGPL:lesser
GPLv2
GPLv3
Shell:(用户交互界面)
GUI: Graphic User Interface(图形用户界面)
Windows
X-Window
Gnome
KDE
Xface
CLI: Command Line Interface
sh
bash
csh
ksh
zsh
tcsh
Google:
linux filetype:pdf
linux site:ibm.com
google hack
3.42 库
IDE:程序员开发时用到的集成开发环境
库文件
Windows:DLL:动态链接库(库文件)(Dynamic Link Library)
Linux:so:库文件(shared object)
3.5 用户和常用命令
3.51 用户和认证机制
login:
用户名:用户ID(用户标识符)
认证机制:Authentication鉴别用户就是他所声称的那个人
授权:Authorization
审计:Audition (日志)
prompt,命令提示符:
命令:
magic number: 魔数
shebang
3.52 命令格式
#!/bin/bash
# command options... arguments...
选项(修改命令的执行参数,有些选项是可以带参数的):
短选项
长选项
参数:指定命令的作用对象
3.53 ls
list: ls
列出,列表
目录:也是文件,路径映射文件
路径:从指定起始点到目的地所经过位置
文件系统:file system(实现层次化文件管理的机制)
列出指定路径下的文件
我们处在的目录:working directory, current directory
绝对路径:相对于根节点的路径
相对路径:相对于当前位置的路径
pwd: Printing Working directory,显示当前目录
ls
-l:长格式,输出的内容依次如下
[root@Daniel-R480 ~]# ls -l
total 36
-rw-r--r-- 1 root root 1 Jun 21 14:38 a
-rw-r--r-- 1 root root 87 Jun 21 14:30 aa
lrwxrwxrwx 1 root root 1 Jun 17 10:42 abc -> a
1、文件类型(1位):
-:普通文件 (f)
d: 目录文件
b: 块设备文件 (block)
c: 字符设备文件 (character)
l: 符号链接文件(symbolic link file)
p: 命令管道文件(pipe)
s: 套接字文件(socket)
2、文件权限:9位,每3位一组,每一组:rwx(读,写,执行), r--
3、文件硬链接的次数
4、文件的属主(owner)
5、文件的属组(group)
6、文件大小(size),单位是字节
7、时间戳(timestamp):最近一次被修改的时间
(1)访问:access
(2)修改:modify,文件内容发生了改变
(3)改变:change,metadata,元数据(文件的属性数据 )
-h(human):做单位转换
-a: 显示以.开头的隐藏文件
. 表示当前目录
.. 表示父目录
-A
-d: 显示目录自身属性
-i: index node, inode(文件的索引节点号)
-r: 逆序显示
-R: 递归(recursive)显示
3.54 cd
cd: change directory,切换目录
cd不加任何参数,直接回到用户的家目录,主目录, home directory(用户有所有的权限)
[root@Daniel-R480 opt]# cd
[root@Daniel-R480 ~]#
cd ~USERNAME: 进入指定用户的家目录
[root@Daniel-R480 ~]# cd ~daniel
[root@Daniel-R480 daniel]#
cd -:在当前目录和前一次所在的目录之间来回切换
[root@Daniel-R480 daniel]# cd -
/root
[root@Daniel-R480 ~]# cd -
/home/daniel
[root@Daniel-R480 daniel]# cd -
/root
[root@Daniel-R480 ~]#
3.55 type
type: 显示指定命令属于哪种类型
[root@Daniel-R480 ~]# type cd
cd is a shell builtin
[root@Daniel-R480 ~]# type ls
ls is aliased to `ls --color=auto'
[root@Daniel-R480 ~]# type pwd
pwd is a shell builtin
[root@Daniel-R480 ~]# type bash
bash is /usr/bin/bash
[root@Daniel-R480 ~]#
命令类型:
内置命令(shell内置),内部,内建
外部命令:在文件系统的某个路径下有一个与命令名称相应的可执行文件
3.56 环境变量和缓存
环境变量:命名的内存空间
变量赋值(在这个内存空间里面放置数据)
NAME=Jerry
PATH: 使用冒号分隔的路径,能运行的命令必须在path的路径中,不然必须要添加完整路径
hash为O(1)类型:无论表多长,瞬间能找到对应的数据
hash:缓存为王,速度慢了可以通过加缓存来解决
123