1、 了解linux的基本原则:
a、有目的单一的小程序组成;
b、一切皆文件;
c、尽量避免捕获用户接口;
d、配置文件保存为纯文本格式;
2、在linux中学习到最主要的是shell(外壳),主要是由GUI(Graphic User Interface)接口(图形用户界面)、 CLI(Command Line Interface)接口(命令行界面);GUI主要用到Gnome、KDE、xFace,CLI主要基于bash csh zsh ksh tcsh,是以sh 为基础的。在CLI命令提示符中主要使用两种用户,第一种是root用户,权限最高,在一般情况下不要进入root中进行操作,通常之前有一个符号#;另一种是普通用户,权限属于一般,不能进入root用户中操作,要想在某个用户中进行操作,首先先进入固定用户中才能进行操作。通常普通用户前用$表示;
3、在虚拟终端中的命令格式表示为:命令(command) 选项(option) 参数(argument)
选项是修正命令的执行方式,它包括短选项和长选项;
短选项可以多个选项组合,比如:-a –b=-ab=-ba
长选项通常不能组合
参数是命令的作用对象,如果有多个参数,要用空格隔开
在linux中严格区分大小写
4、linux登陆时都有一个用户ID,也叫用户标示符,如果没有特殊设定的话,通常用root登陆,除了用户标示符还要有验证用户信息的认证机制(Authentication)、授权(Authorization)、审计(Audition)也叫日志,在日常生活中我们听过有指纹验证、生物特性等等,在linux中使用的是密码(password)为RedHat;
5、图形界面可以与命令行界面切换:startx & 按下Enter,也可以用快捷键表示(ctrl+alt+f7)、(ctrl+alt+f1)
6、切换用户,用命令su:Switch user;表示方法为:#su –l 用户名,属于完全切换;按exit命令可以退回原来模式;
可以在linux中修改密码,只需要在命令行中敲passwd 当前密码 ,然后连输入两次即可修改,不过在修改密码时要符合密码复杂性规则:
a、 使用4种类别字符中至少3种;
b、 要足够长,大于7位;
c、 使用随机字符串;
d、 定期更换;
e、 循环周期足够大;
7、IDE:集成的开发环境
.dll:动态链接库(Dynamic Link Library),这是在Windows上,而在linux上表现为.so(Shared Object)共享对象,也叫做共享库,只存储一份,目的是为了减少大家都来使用所消耗的内存量;
应用程序要想运行必须依赖于内核,而内核的功能是a、协调各个进程;b、需要内存管理;c、提供网络功能、硬件驱动、安全机制、文件系统;
8、了解操作系统的组成:在最底层是系统的硬件,上一层是内核,而内核是运行应用程序的基础,然后是库,库是存储用户程序的一个入口,但是必须要被系统调用,库只有被调用之后才会有意义
文件夹仅仅是文件路径的映射;
目录也是文件,不过是特殊的文件,也是路径映射;
而路径是从指定起始点到目的地所经过的位置,这样做的目的是为了层次化文件管理;
绝对路径是从跟开始找,经过一级目录、二级目录、、、;
相对路径相对于当前所处的位置;9、pwd(Printing Working Directory)显示当前目录
.文件类型:
ls
-l:长格式
-:普通文件(f)
d:目录文件
b:块设备文件(block)
c:字符设备文件(character)
l:符号链接文件(symbolic link file)
p:命令管道文件(pipe)
s:套接字文件(socket)
文件权限有9位,每3位一组,每一组:rwx(读,写,执行)
文件硬链接的次数
文件的属主(owner)
文件的属组(group)
文件的大小(size),单位是字节
时间戳(timestamp)是最近被修改的时间,每个文件都有3个时间戳,显示最近一次被修改的时间
访问时间(access)
修改时间(modify)是指文件内容发生了改变
改变时间(change)是改变的元数据,属性
最后一列是指文件名
查看文件各列项中其中有一列表示文件的大小,如果文件比较大时,通常数据显示的比较长,可以用K、G等表示,用-h作单位转换;-a显示以.开头的隐藏文件;-A是不显示以..开头的隐藏文件;-d显示目录自身属性,比如查看root下的目录属性:ls –d –l /root
-r是逆序显示,表示与原先文件排列顺序正好相反;
-R(recursive)递归显示 从文件所连接的目录;
10、cd(change directory)切换目录
cd~USERNAME是进入指定用户的家目录;
cd-是在当前目录和前一次所在目录来回切换;
cd不带任何参数可以进入家目录(主目录);
命令类型:内置命令(Shell内置)、外部命令是指在文件系统的某个路径下有一个与命令名称相应的可执行文件;
环境变量:命名的内存空间(定义当前用户的工作环境)
变量赋值 “=”
PATH:使用冒号分隔的路径(按次序查找)
Hash:缓存(实现系统加速)
Type:显示指定属于哪种类型
11、获取命令的使用帮助:内部命令格式(help COMMAND)、外部命令格式(COMMAND –help)获得简要帮助信息
命令手册(manual)
格式为:man COMMAND
如果要查找某个单词可以用whatis COMMAND命令就可以看到在哪一章有该单词相关的信息
Man分为8个章节:
a、 用户命令(/bin,/usr/bin,/usr/local/bin)
b、 系统调用
c、 库用户
d、 特殊文件(设备文件)
e、 文件格式(配置文件的语法)可以用命令man 5 passwd查看
f、 游戏
g、 杂项(Miscellaneous)
h、 管理命令(位于/sbin,/usr/sbin,/usr/local/sbin)
如果想查man自己的使用可以输入man man命令
在man COMMAND中COMMAND的使用格式经常有<>表示必须给出的内容,非可选
[]可选项,可以省略,如果后面出现..时表示可以出现多次
| 表示多选一 {}表示分组
在MAN命令中
NAME:命令名称及功能简要说明
SYNOPSIS:用法说明,包括可用的选项
DESCRIPTION:命令功能的详尽说明,可能包括每一个选项的意义
FILES:此命令相关的配置文件
BUGS:表示如果还有其他不明确的问题没解决可以访问其上面的链接网站
EXAMPLES:使用示例
SEE ALSO:另外参照
翻屏:进入man COMMAND中要想查阅方便可以按以下键
向后翻一屏:SPACE(空格)
向前翻一屏:b
向下翻一行:Enter
向上翻一行:k
查找:
/KEYWORD
?KEYWORD
按n表示下一个
按N表示上一个
按q表示退出12、date 数据管理
可以用man date 命令查看含义,里面包含对年、月、日、时、分、秒相对应的符号,比如:
年用%y或%Y,月用%m,日用%d ,时用%H,分用%M,秒用%S,%s表示从1970年1月1日起到当前时间所经过的秒数。在运用时要查看格式使用这些符号,date [OPTION]… [+FORMAT],另一种表达方式date [-u|–utc|–universal] [MMDDhhmm[[CC]YY].[.ss]]可以调试系统时间,如果硬件时间不准确,可以用clock或hwclock命令
Hwclock –w 把硬件时间改为系统时间,以系统时间为准
Hwclock –s 读取硬件时间映射到系统时间中,以硬件时间为准
Hwclock –r 读取当前时间
12、在线文档(info COMMAND)主要是一些在线手册、重要事件
日历(calendar)简写为cal,比如显示今年所有的月份,可以输入cal 2013;
显示今年某月的月份,可以输入cal MOUTH 2013;
Printy:格式化并显示数据,比如:printy “The year is 2013.\nToday is 26.\n”代表今年是2013年,今天是26日,同时两句之间换行
Echo:显示一行文本,同时它也有一些特殊符号,比如:\n表示换行,不过要在换行这句话之前加-e才会有效
Echo -e“The year is 2013.\nToday is 26.\n”
\b 表示退格,如果要在上述例子中把第一个\n换成\b就变成“The year is 2013The today is 26.
\t 表示水平制表符,同样在上例中把第一个\n换成\t,这两句之间就会水平相差8个字节;
\v 表示纵向制表符,同样在上例中把第一个\n换成\v,这两句之间就会纵向相差8个字节;
File COMMAND 查看文件类型
13、查看ls /(根目录下的子目录),包含子目录所经过的路径:
a、/boot:系统启动相关的文件,如内核、initrd(磁盘映像文件)以及grub(bootloader);
b、/dev:设备文件,如果以后要引用设备文件尽可以进入,可以通过命令ls –l /dev;
设备文件包括块设备,设备可以随机访问,如磁盘、硬盘,是按照其分割成数据块;另外包括字符设备(直接存储,有次序的,线性访问模型)按照字符为单位;
在/dev中也有特殊文件,没有大小,只有源数据,作为访问入口;
设备号是由主设备号(major)和次设备号(minor);
主设备号是定义设备类型;
次设备号是定义同种类型下的不同设备;
c、/etc:配置文件存放的位置,在这个目录下创建子目录(主配置存放路径);
d、/home:用户的家目录,每一个用户的家目录通常默认为/home/username;
e、/root:root没有家目录,通常不建议直接用root登录;
f、/lib:库文件,通常分为静态库和动态库;
静态库:在linux上以.a,在Windows上以.la;
动态库:在linux上表现为.so(shared object)共享文件,在windows上以.dll;
g、/media:挂载点目录,通常挂载移动设备,如硬盘、U盘;
h、/mnt:挂载点目录,额外的临时文件系统;
i、/opt:可选目录;
j、/proc:伪文件系统(本来是空的,启动之后就不空,是内核映像文件);
k、/sys:伪文件系统,跟硬件设备相关的属性映射文件,只是把它独立出来);
l、/tmp:临时文件;
m、/var:可变化的文件;
n、/bin:可执行文件,用户命令;
o、/sbin:管理命令;
p、/usr:全局的、共享的、只读性的文件;
/usr/bin /usr/sbin usr/lib /usr/local /usr/local/bin /usr/local/sbin /usr/local/lib
14、文件目录的命名规则:
a、文件名长度不能超过255个字符;
b、不能使用“/”当文件名(“/”可用作路径分隔符,不建议使用);
c、严格区分大小写;
15、在学习文件管理前首先了解一下目录管理(ls cd pwd)
创建空目录:mkdir
比如:mkdir /root/x/y/z 最后一个节点才是要创建的;如果想要查看生成的数目,可以使用命令tree 最后一个节点;
-p:父目录,一下可以创建多个目录,比如:mkdir –p /root/m/n/q;
-v:详细信息,比如:mkdir –pv /root/m/n/q;
16、删除目录:
rmdir 只能删除空目录
rmdir –p (如果树下的目录都为空,可以一下删除到非空的目录位置)
文件的创建和删除:
17、创建空文件:touch a(创建空文件a)目录是文件,所以文件不能与目录重名。
touch 主要是改变文件的时间戳不是创建空文件
touch –c a(不创建空文件)
修改时间与访问时间都是属性信息,他们两个的任意一个变化,改变时间都会改变,
Touch –m –t 日期 a 指定a文件的修改时间
创建文件:
nano x 创建x文件并编辑
删除文件:rmove x
rm 命令默认有交互性取消其交互性用 \rm x(使用命令自身的意思而不是别名的时候在命令前加”\ ”,只对有别名的命令有作用)
rm –f强行删除
rm –r 删除目录递归的形式 rm –rf 强行删除目录(无提示)
18、复制文件:
cp (不允许一个源多个目标,不允许多个源多个目标,只允许出现一个目的地)
a、 可复制一个文件到一个文件或者多个文件到一个目录
b、 一个文件复制到一个已经存在的目录里,则复制后名字不变,放在目标目录下
c、 一个文件复制到一个不存在的文件时,源文件复制后会改名为那个不存的文件名并复制到目标地,如果目标存在是个文件则会提示是否覆盖,若是个目录就会复制到目标目录下并保持原文件名
d、 如果源是多个目标一定是目录,并且必须存在是个目录,否则无法复制。
e、 cp 默认命令下不会复制目录只复制文件
f、 例子 cp –r /etc/init.d /tmp/hello(源文件存在,init.d是目录hello不存时init.d复制过去并重命名为hello,若hello存在是目录,把init.d复制到hello下并保持原来的名字
19、mv :move
移动文件
mv SRC DEST
mv a b 重命名a为b
-f 强制性覆盖
mv -i DEST SRC 先写目标目录
install 安装(复制文件并且指定属性)
install -d DIRECOTRY….创建目录
intstall -t DIRECTORY