一、怎样去学习linux?方法很重要
二、了解电脑的基础知识及启动过程
三、ls的使用
刚接触linux,是零基础学习,感觉有些东西很有趣,有些东西比较枯燥,所以它不好学。正因为不好学所以你才要去努力学好,给生活给爱好给工作添一道美丽的风景。
一、电脑启动过程
电脑的核心部件:cpu、主板、内存,输入输出设备:硬盘、显示器、键盘、鼠标等。电脑启动后通过读取ROM芯片(只读内存,"只读内存read-only memory,缩写为ROM"),这个芯片的开机程序开机程序叫bios计算机输入输出系统(Basic /Input/Output System)把信息传到南桥,南桥与设备连接,南桥把信息传到北桥,由北桥把信息传送给cpu,cpu经过分析运算知道这些设备是什么,有没有正常连接。然后通过bios设置的启动顺序,把控制权交给第一块存储设备,通过读取该设备的第一个扇区,大小为512字节,如果这512个字节的最后两个字节是0x55和0xAA,证明可以启动,反之不能。这个扇区被称为主引导记录(Master boot record,缩写MBR)。这个作用是告诉到那一个硬盘分区去找操作系统,然后控制权交给操作系统从而启动系统。linux中最流行的启动管理器是Grub,它的启动原理大致跟windows一样,先调入(system call系统调用)/boot目录下面的kernel(内核)。内核加载成功后,第一个运行的程序是/sbin/init。它根据配置文件(Debian系统是/etc/initab)产生init进程。这是Linux启动后的第一个进程,pid进程编号为1,其他进程都是它的后代。然后,init线程加载系统的各个模块,其实就是库(library)文件,应用程序接口(API:Application program interface)。比如窗口程序和网络程序,直至执行/bin/login程序,跳出登录界面,至此,linux启动完成。
linux学习原则是总分总形式,先有一个大的框架,然后去细分里边的东西,并学习掌握,最后再总结,做到学到知识、转换思维方式和做事的方式。
学习linux遵循的哲学思想:
1、由目的单一的小程序组成,组合小程序完成复杂任务。
2、一切皆文件。
3、尽量避免捕获用户接口。
4、配置文件保存为纯文本格式。
5、没有任何的信息就是最好的信息。
开机启动项的调整可以开机按住ctrl+alt+insert,然后按住F2(电脑不一样,按键也不一样),需要速度非常快,你的电脑性能越好,bios闪的越快,时间更短,需要更快的操作。编程语言有机器语言、微码(汇编语言)(编译器)和高级语言。liunx演变有许多著名的发行(release)版本,redhat系列:centos、fedora、mandrila,debian系列:ubuntu、mint等。系统启动起来有两个接口,一个是GUI(Graphic user interface)接口,即图形用户界面,快捷切换是:ctrl+alt+F7,通过虚拟终端(terminal)来输入执行命令,切换多个用户:ctrl+alt+F1-F6。它有Gnome、KDE、XFace、X-window。另一个是CLI(Command line interface)接口,即命令行界面,它有bash、csh、zsh、ksh、tcsh等。通过命令行输入命令,传送到shell(壳),shell再传送到内核(kernel,内核是平台)进行解析执行。
一个小的linux系统只需要kernel、库、shell就可以装起来,这里有几个名词:Dll(Dynamic link library)动态链接库,So:(shared object)共享对象。
切换用户命令:su,直接su root这样也可以切换,但只是半切换,用户的环境变量还停留在上一个用户,因此,要完全切换必须用su -l加选项的格式来切换。
登录用户通过login来打印,这个登录过程是如何登录的呢?
用户密码遵循原则:
1、使用4种类别字符中至少3种
2、足够长,大于7位
3、使用随机字符串
4、定期更换
5、循环周期足够大
用户名:用户ID
认证机制:Authentication
授权:Authorization
审计:Audition(日志)
prompt:命令提示符
magic number:魔数 (如#!bin/bash)
命令格式:#command opitions....arguments....
命令 选项 参数
选项包括:短选项-,长选项--
短选项可以叠加使用,长选项不能叠加使用。
选项:是修改命令执行特性
参数:制定命令作用对象
命令类型:
内置命令:(shell内置)
外部命令:在文件系统的某个路径下有一个与命令名称相应的可执行文件。
type:显示指定属于那种类型
命令结果的类型如下几种:
alias:别名
keyword :关键字,Shell保留字
function:函数,shell函数
builtin:内建命令,shell内置命令
file:文件,磁盘文件,外部命令
unfound:没有找到
选项:
type +COMMAND
-a 显示所有类型,如pwd即是内部命令,也是外部命令
-p 只显示外部命令的信息(如which命令一样)
-f 显示shell函数信息
-t 显示指定类型信息
环境变量:命令的内在空间
变量赋值:name=jerry
printenv: 显示环境
clear: 清屏
PATH:使用冒号分割的一堆路径
hash:看缓存命令,可以看到缓存的命令useradd用了两次,ls用了27次
一、list:ls 列出,列表,列出指定路径下的文件。
命令所在路径:/bin/ls
执行权限:所有用户
功能描述:显示目录文件
语法:ls 选项[-ald] [文件或目录]
文件系统:(file system)
目录:(working directory,current directory)即文件,路径映射。
路径:指从指定起始点到目的地所经过的位置。分为绝对路径和相对路径,/bin/ls即绝对路径,相对路径只是针对你所在目录相对而言。查找一般是通过根目录一级级的往下找。
ls 什么都不加,只显示当前所在目录文件。
ls -l(长格式long)
ls -l =ll两个效果一样
文件类型:(常用文件类型)
-:普通文件(f)
d:目录文件
b:块设备文件(block)
c:字符设备文件(character)
l:符号链接文件(system link file)
p:命令管道文件(pipe)
s:套接字文件(socket)
文件权限:9位,每三位一组,每组(rwx,读 写 执行)
文件硬链接次数
文件的属主(owner)
文件的属组(group)
文件大小(size)单位字节
时间戳(timestamp)三个时间(访问(access),修改(modify),改变(change,metadata(元数据)表示根本),这里显示的是最后一次修改的时间。
-h:做单位转换,通常跟l配合使用,看看下面两个命令有什么不同?
-a:显示以.开头的隐藏文件,其实是显示目录下的所有文件包括隐藏文件。
. 表示当前目录, .. 表示父目录,两个明显有区别,父目录意思就它的上一级目录。
-A:不显示另外目录,从下图可以看到跟-a的变化不大,这样理解你就错了。跟上面的-a比对下,就发现少了. ..这两个符号。
-d:显示目录自身属性,不显示目录下面的文件 和目录。
-i:indexnode,inode 显示文件缩影节点号,看下面图片文件或目录多出了前面的数字,这就是节点号。
-r:逆序显示,加-r和不加显示是不一样的。
-t: 以时间逆序显示,跟-l配合显示的更明显。
-R:递归显示(recursive)执行很耗资源,建议少操作。不仅可以显示当前目录的文件还可以显示子目录的文件,增加了搜索量,容易消耗系统资源。
二、cd(change directory)
所在路径:shell内置命令
执行权限:所有用户
语法:cd【目录】
功能描述:切换目录
cd 不加东西进入或回到用户家目录(home directory)
cd ~ username :进入指定用户家目录
cd - 在当前目录和前一次所在目录之间来回转换
cd . 当前目录, cd ..返回上级目录