Linux:是用c写成的操作系统,它要编译成二进制才能运行(编译器)。所以,就有了Debian、RedHat、SUSE、fedoro。Debian的更新版:Ubuntu。所以内核都是Linux,但是发行商是Debian、RedHat等。
RedHat安装:http://blog.51cto.com/xxlixin1993/1568830(注意选择虚拟磁盘类型:IDE)
Linux的基本原理:
- 由目的单一的小程序组成,组合小程序完成复杂任务
一切皆文件
尽量避免捕获用户接口
配置文件保存为纯文本格式
Shell:
①GUI(Graphic User Interface)接口:Gnome(c)、KDE(c++)、XFace(嵌入式)
② CLI(command line interface命令行接口)接口:命令提示符,prompt
#:root
$:普通用户
bash、csh、zsh、ksh、tcsh
- 命令行格式:命令 选项 参数
①选项:短选项-character、长选项–word
短选项可以多个选项可以组合-a-b 、-ab
长选项:通常不能组合- -
②参数:命令的作用对象 - 使用凭证:root
虚拟终端:Ubuntu进入CLI快捷键Ctrl+alt+f2
进入图形化界面快捷键startx &_模拟终端:在图形界面中打开一个终端
IDE(Integrated Development Environment):开发环境
dll:Dynamic Link Library。在Linux中称为.so
一、切换用户
su:switch user
su 用户名
密码复杂性规则(6位)纯数字10^6
数字+小写字母36^6
数字+大、小写字母62^6
设置较高密级的密码方法
- 使用4种类别字符中至少3种
- 足够长,大于7位
- 使用随机字符串
- 定期更换
循环周期要大 ,尽量不要使用最近使用的密码
二、ls
-l:长格式
文件类型:(普通文件)-、(目录文件)d、(块设备文件)b、(字符设备文件)c (character)、(符号链接文件)l(symbolic link file)、(命令管道文件)p(pipe)、(套接字文件)s(socket)
**文件权限:**9位,每3位为一组,每一组:rwx(读、写、执行)
文件硬链接的次数
文件的属组(owner)
文件的属组(group)
文件大小(size),单位是字节。若要用其他的单位显示,则可以其他单位用选项-h(human-readable):做单位转换(转换为k)
时间戳(timestamp):最近一次被修改时间
最近一次被访问(access)时间、最近一次被修改(modify)时间、最近一次被改变(change)时间【也叫元数据metadata】
drwxr-xr-x 2 j j 4096 Sep 9 17:28 Desktop
-a:显示普通文件和以.开头的隐藏文件
.表示当前目录 ..表示父目录
–A:显示除了.和..的文件
-d:显示目录自身属性(要与l组合使用)
-i:index node,inode
-r:逆序显示文件reverse(ls命令按照字母升序排列显示结果)
-R:递归(recursion)显示
三、cd:切换目录
如何判断是否是一个目录 用ls -l 即可。
cd 路径
cd 不加任何目录 则为家目录(主目录)
cd ~用户名 (到哪个家目录)
cd - :在当前目录和之前一个目录间切换
四、type:显示指定命令属于哪种类型–命令类型
内置命令(shell内置):builtin
外部命令
命令也是程序,所以要有存放位置。由此到五
五、which:命令存放位置
外部命令会有一个指定文件存放该命令,是一个可执行文件。
which ls /bin/ls
which 命令
那么为什么它能够直接使用呢?
变量:是命名的内存空间。放数据叫做变量赋值。但是这样存在一个问题,程序结束了,申请的内存就释放了。
堆 :静态变量
栈:普通变量
堆、栈:是存放变量的地方。
环境变量:用于定义当前工作环境的变量
命令:printenv
....
PATH:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/j/bin
....
在查命令时,就在这里面依次找可执行命令,但是若每一次有命令,就查找,也会显得很费时间,所以将用户使用的命令放入hash中,hash的时间复杂度O(1),可以提高可执行文件查找速度,此时的hash相当于缓存。
命令hash:将会显示如下
hits command
1 /usr/bin/printenv
28 /bin/ls
2 /usr/bin/clear
这些可执行文件,其实就是实现某个具体功能的代码,所以编程人员也可以写,所以当要执行某个可执行文件时,可以放入path中,也可以写具体的路径来执行程序。
六、Date(系统时间)
硬件时钟、系统时钟
七、获得命令使用帮助
内置命令:help command
外部命令:command –help 简要帮助信息
命令手册:(manual) man command []:可选的option 、<>:必须的、…:可以出现多次 、 {}:分组
内部命令一般不用man 。
如何查看命令在哪个章节:what is command
分章节:
用户命令1
系统调用2
库调用3
特殊文件(设备文件)4
文件格式(解释配置文件的语法)5
游戏6
- 杂项7 miscellaneous
- 管理命令(/sbin,/usr/abin,/usr/local/abin)
MAN:
(1)NAME:命令名称及功能简要说明
(2)SYNOPSIS:用法说明,包括可用的选项
(3)DESCRIPTION:命令功能的详尽说明,可能包含每一个选项的意义
(4)OPTION:说明每一个选项的意义
(5)FILES:此命令相关的配置文件
(6)BUGS
(7)EXAMPLES:使用示例
(8)SEE ALSO:另外参照
翻屏:
向后翻一页:SPACE
向前翻一页:b
向后翻一行:ENTER 或↓
向前翻一行:k或↑
查找 :
/KEYWORD:自前向后
?KEYWORD:自后向前
n:下一个
N:前一个
退出:q
UTC(Coordinated Universal Time):格林尼治时间
date 命令不仅能显示时间,并且能更改系统时间(也就是UTC时间)。此时间与硬件时间不同
//将EDT时间转换为CST时间
[root@localhost ~]# mv /etc/localtime /etc/localtime.bak
[root@localhost ~]# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
[root@localhost ~]# date
“`
在线文档
info command 用的较少。