Linux基础知识

Linux介绍:
  Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
  Linux可以运行在多种硬件平台上,如具有x86、680x0、SPARC、Alpha等处理器的平台。此外Linux还是一种嵌入式操作系统,可以运行在掌上电脑、机顶盒或游戏机上。同时Linux也支持多处理器技术。多个处理器同时工作,使系统性能大大提高。
  Linux也支持图形化用户界面,但是通常来讲,根据笔者的经验,一般作为项目的实际生产环境Linux都使用的是纯字符界面,目的很简单,减少不必要的资源开销,提高运行效率。另外,在Linux中一切皆文件,相信使用过Linux的人都有深刻的体会!

目录结构:
/  #根目录
bin sbin usr sys home etc lib dev cgroup root selinux srv等等  #根目录下的一级目录
根目录下的bin和sbin,usr下的bin和sbin四个目录都是用来保存系统命令的,bin下的命令普通用户都能执行,sbin下的命令只有root超级用户能执行
根目录下的boot是用户启动数据目录
根目录下的dev是特殊文件保存目录
根目录下的etc系统配置文件目录
根目录下的lib是函数库目录
根目录下的sys和proc是内存过载点目录,不能操作此目录
根目录下的tmp是临时目录
根目录下的root是超级用户的主目录
根目录下的home存放普通用户的主目录等

Linux不同颜色的文件的区别(不同版本间可能存在区别):
蓝色文件----------目录
白色文件----------一般性文件,如文本文件,配置文件,源码文件等
浅蓝色文件--------链接文件,主要是使用ln命令建立的软连接文件
绿色文件----------可执行文件,可执行的程序
红色文件----------压缩文件或者包文件(或者有错误的文件)

命令提示符:
#--------超级用户(root)的提示符
$--------普通用户的提示符
~--------当前所在的目录(家目录下面的目录)

命令格式:
命令 [选项] [参数] #大多数命令均为该格式,选项和目录可以加也可以不加,如ls -l /etc/ 和 ls -l 和 ls 三种不同格式的命令

命令生效顺序:
第一顺序:执行用绝对路径或相对路径执行的命令。
第二顺序:执行别名。
第三顺序:执行Bash的内部命令。
第四顺序:执行按照$PATH环境变量定义的查找目录顺序找到的第一个命令。

Tab键补全功能:
使用Tab键可以自动补全文件名,也可以补全命令,如果有相同的开头字母,按两下会列出以输入字母开头的命令或文件名

创建文件连接(推荐使用软链接):
硬链接:除了名字和原文件可以不同,其他均相同,修改影响,删除一个不影响另一个,不能跨分区,不能针对目录使用
软链接:类似Windows快捷键,i节点不同,修改影响,删除原文件软链接会失效,查看权限(或其他信息)时应该查看原文件为准,创建时软链接时源文件一定要写成绝对路径

用户与用户组:
用户:使用操作系统的人
用户组:具有相同系统权限的一组用户
一个用户可以属于多个用户组,一个为主要用户组,其它为附属组
/etc/group 存储当前系统中所有用户组信息,分为四组用冒号隔开信息:组名称/组密码占位符/组编号(0-499为系统预留用户组编号)/组中用户名列表
组中用户名列表如果为空,不一定没有用户,可能是只有一个和组名相同的用户名
/etc/gshadow 存储当前系统中的用户组密码信息,分别为:组名称/组密码/组管理者/组中用户名列表
组密码为 ! 时代表组密码为空,即没有密码
/etc/passwd 存储当前系统中的所有用户信息,分别为:用户名/密码占位符/用户编号/用户组编号/用户注释信息/用户主(家)目录/shell类型
/etc/shadow 存储当前系统中的用户密码信息,分别为:用户名/密码(单向加密密码)/等等

系统运行级别:
0 关机
1 单用户
2 不完全多用户,不含NFS服务
3 完全多用户,通常使用的级别
4 未分配
5 图形界面,如果未装图形界面则使用init 5命令会报错
6 重启
使用init命令来运行相应的系统级别
使用runlevel查询系统当前级别,3 5表示之前为3,现在为5,N表示没有级别
个人建议不要直接点击叉叉按钮关闭窗口,要使用logout命令(或者在命令行使用ctrl键+d)退出再关闭,否则会占用Linux用户数,Linux用户数一般允许256个左右

shell介绍:
shell是linux中的命令行解释器,把命令解析成电脑能懂的二进制语言,把结果解析成用户能懂的特定语言,通过shell向linux内核发送请求与用户交互等等
用户登录到Linux系统后,系统将启动一个用户shell。在这个shell中,可以使用shell命令或声明变量,也可以创建并运行shell脚本程序。
运行shell脚本程序时,系统将创建一个子shell。此时,系统中将有两个shell,一个是登录时系统启动的shell,另一个是系统为运行脚本程序创建的shell。
当一个脚本程序运行完毕,它的脚本shell将终止,可以返回到执行该脚本之前的shell。
从这种意义上来说,用户可以有许多 shell,每个shell都是由某个shell(称为父shell)派生的。
shell主要有两种语法类型:Bourne和C,两种语法彼此不兼容;Bourne主要包括:sh、ksh、Bash、psh、zsh;C主要包括:csh、tcsh;常用的标准shell为Bash

shell脚本简单介绍:
shell中#表示注释,$表示调用,bash为Linux标准shell
#!/bin/bash #shell脚本的固定开头,如果不嵌入其他脚本语言可以省略,也能正常执行(建议所有shell脚本都必须写)
echo "hello shell!" #echo是shell脚本的打印(输出)语句,该句表示输出hello shell!
echo -e "\e[1;34m bash! \e[0m" #-e表示加入特殊选项,\e[1;表示颜色选择开始,\e[0m表示结束颜色选择,34m表示红色,linux支持30m-37m共八种颜色
如需系统学习shell脚本知识请参考专业书籍和资料,本文只做入门介绍。

本文说明:
本文主要介绍Linux基本知识,帮助Linux新人快速了解和入门Linux系统,如需进行更专业的学习或Linux系统专业人员请参考Linux相关的专业书籍和资料。Linux常用命令学习和查阅请参考:Linux常用命令参考与指南 http://jsonliangyoujun.iteye.com/blog/2344117
    原文永久地址: http://jsonliangyoujun.iteye.com/blog/2343963

你可能感兴趣的:(linux,unix,脚本,嵌入式,bash)