Linux:是用c写成的操作系统,它要编译成二进制才能运行(编译器)。所以,就有了Debian、RedHat、SUSE、fedoro。Debian的更新版:Ubuntu。所以内核都是Linux,但是发行商是Debian、RedHat等。

RedHat安装注意选择虚拟磁盘类型: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 用的较少。