本文共分为几个部分:linux基本原则,人机交互接口介绍,用户名密码介绍和命令格式介绍, 文件类型说明,ls、cd、type命令的使用,环境变量简单介绍、时间介绍和获取帮助和LINUX文件系统结构与几个常用命令(ls、cd、pwd、mkdir、rmdir、touch、stat、rm、tree、cp、mv、install),历史命令回顾,和其它命令。
linux基本原则:
1、everything is a file
2、small,single--purpose program
3、ability to chain programs together to perform complex tasks
4、avoid captive user interface
5、configuration date stored in text
中文为:1、一切皆文件
2、目的单一的简单的小程序
3、组合小程序实现复杂的功能
4、尽量避免捕获用户接口
5、配置文件保存为文本格式
人机交互接口:SHELL,计算机通过shell把系统以人容易理解和接受的方式展现给用户,与用户进行交互
shell的分类:GUI接口(Graphic User Interface)图形用户界面。
例如:windows
x-window:Gnome、KDE、Xface
CLI接口(Command Line Interface)命令行接口
例如:windows的PowerShell(Windows NT以后版本)
linux的sh、bash(最常用)、csh、ksh、zsh、tcsh
linux共有7个用户界面(也叫用户终端:Terminal),6个命令行界面与1个图形化界面,
图形化界面的启动方式startx
用户终端的切换方式:Ctrl+Alt+F1--F6,F7为图形界面
LINUX中在图形界面中,桌面上鼠标右键有Open Terminal(或者Application----Terminal),这个打开的叫模拟终端
一个最简单的操作系统由kernel+shell所需要的库文件+shell程序
windows的库文件为.dll结尾:即动态链接库(Dynamic Link Library)
Linux的库文件为.so结尾:即共享对象,也叫共享库。(Share Object)
用户介绍:用户名 用户密码和用户ID
用户登录需要用户名和密码,系统对用户的辨认使用的是用户ID。
用户登录系统,系统需要对用户进行验证即认证机制(Authentication),用户登录系统后,用户有什么样的权限,即授权机制(Authorization )。对用户的使用需要进行审计(Audition),通常为日志形势。
用户又分为普通用户、管理用户和root用户
su [-l] username:不同的用户之间需要切换(l表示完全切换,不带半切换) su= switch user
passwd:对用户密码进行修改
密码的复杂度规则:为了用户的安全,对用户密码复杂度有如下要求
1、使用4中类型中的至少三种
2、足够长,至少为7位
3、使用随机字符串,不要谁用单词、日期或者单词和日期的组合
4、定期更新
5、循环周期足够大
用户登录后有命令提示符(prompt bash):#为root用户, 为普通用户
命令提示符后的输入格式为:命令+选项+参数
----------------------------------------------------------------------------------------------------------------------------------------
[root@LAB1 ~]# su -l student
[student@LAB1 ~]$ exit
logout
[root@LAB1 ~]# su student
[student@LAB1 root]$ exit
exit
[root@LAB1 ~]# passwd student
Changing password for user student.
New password:
BAD PASSWORD: it is based on a dictionary word
BAD PASSWORD: is too simple
Retype new password:
passwd: all authentication tokens updated successfully.
命令行格式
命令 选项(可以多个) 参数(可以多个) 即:command option(多个) arguments(多个)
命令、选项和参数严格区分大小写,
命令:二进制程序或者脚本文件
选项:修改用户的执行参数。分为长选项(--)和短选项(-),都可以为多个。长选项多个时必须用空格隔开,短选项可以对多个可以进行组合
极个别选项带参数。
参数:执行程序的执行对象。
ls:为list简写,列表、列出,列出制定路径下的所有文件
目录:也是文件,是一种路径映射文件
路径:从指令起始点到目的地所经过的位置。
文件系统(File System):层次化文件管理机制,倒置的树状目录结构。分为根,一级子目录,二级子目录等。
分叉的节点:为目录。
不能分叉的节点:文件或者叶子节点
从根开始的路径为绝对路径,相对于当前所处目录的路径为相对路径。
当前目录(Current Dirctory):工作目录
---------------------------------------------------------------------------------------------------------------------------------
[root@LAB1 ~]# pwd
/root
[root@LAB1 ~]# ls -a -l /root
total 72
dr-xr-x---. 2 root root 4096 Mar 12 01:26 .
dr-xr-xr-x. 24 root root 4096 Mar 12 18:18 ..
-rw-------. 1 root root 0 Mar 12 01:26 .Xauthority
-rw-r--r--. 1 root root 18 May 20 2009 .bash_logout
-rw-r--r--. 1 root root 176 May 20 2009 .bash_profile
-rw-r--r--. 1 root root 176 Sep 23 2004 .bashrc
-rw-r--r--. 1 root root 100 Sep 23 2004 .cshrc
-rw-r--r--. 1 root root 129 Dec 4 2004 .tcshrc
-rw-------. 1 root root 1152 Mar 10 21:59 anaconda-ks.cfg
-rw-r--r--. 1 root root 25213 Mar 10 21:59 install.log
-rw-r--r--. 1 root root 7690 Mar 10 21:56 install.log.syslog
[root@LAB1 ~]# ls -al /root
total 72
dr-xr-x---. 2 root root 4096 Mar 12 01:26 .
dr-xr-xr-x. 24 root root 4096 Mar 12 18:18 ..
-rw-------. 1 root root 0 Mar 12 01:26 .Xauthority
-rw-r--r--. 1 root root 18 May 20 2009 .bash_logout
-rw-r--r--. 1 root root 176 May 20 2009 .bash_profile
-rw-r--r--. 1 root root 176 Sep 23 2004 .bashrc
-rw-r--r--. 1 root root 100 Sep 23 2004 .cshrc
-rw-r--r--. 1 root root 129 Dec 4 2004 .tcshrc
-rw-------. 1 root root 1152 Mar 10 21:59 anaconda-ks.cfg
-rw-r--r--. 1 root root 25213 Mar 10 21:59 install.log
-rw-r--r--. 1 root root 7690 Mar 10 21:56 install.log.syslog
一.文件类型说明
drwxr-xr-x. 3 root root 4096 Mar 10 21:52 sound
1、文件类型(1位):-:表示普通文件
d:目录文件
b:块设备文件(block)
c:字符设备文件(character)
l:链接文件(Symbolic Link File)
p:管道文件(Pipe)
s:套接字(socket)
2、文件权限(2-10位):3位一组,共9位。每一组为RWX(读、写、执行),没有此权限,用-占用
3、文件硬链接数
4、文件属主(owner)
5、文件属组(group)
6、文件大小(size)
7、时间戳(timestamp),文件最后一次被修改的时间。
文件有三个时间:最后一次访问时间(Access),最后一个修改时间(Modify)(指改变文件内容),最后一次改变的时间(Change)(改变文件属性和名字等)
查看方法: stat 文件名
--------------------------------------------------------------------------------------------------
[root@LAB1 etc]# stat sound
File: `sound'
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: 803h/2051d Inode: 1967162 Links: 3
Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2010-07-14 23:55:07.000000000 +0800
Modify: 2015-03-10 21:52:31.835150870 +0800
Change: 2015-03-10 21:52:31.835150870 +0800
8、文件名
clear:可以用来清屏。
二、ls命令介绍
ls:list简称,显示某一个文件的属性,或者某个目录旗下子目录的属性
ls (目录路径):显示目录,文件
ls 文件名路径:显示某个文件的属性
ls常用选项:-l :长格式显示文件属性
-h:做单位转换(默认为k),不加h为bit
-a:显示所有文件,包裹以‘.’开头的隐藏文件
-A:显示所有文件,不包裹.与..
-d:显示目录自身属性
-i:显示文件的索引节点号:每个文件都有一个数字标示符,Inode = Index Node,即文件的节点,也叫索引节点
-r:逆序显示文件
-R:递归显示(Recusrive)
-----------------------------------------------------------------------------------
[root@LAB1 ~]# ls
anaconda-ks.cfg install.log install.log.syslog
[root@LAB1 ~]# ls -al
total 72
dr-xr-x---. 2 root root 4096 Mar 12 01:26 .
dr-xr-xr-x. 24 root root 4096 Mar 12 18:18 ..
-rw-------. 1 root root 0 Mar 12 01:26 .Xauthority
-rw-r--r--. 1 root root 18 May 20 2009 .bash_logout
-rw-r--r--. 1 root root 176 May 20 2009 .bash_profile
-rw-r--r--. 1 root root 176 Sep 23 2004 .bashrc
-rw-r--r--. 1 root root 100 Sep 23 2004 .cshrc
-rw-r--r--. 1 root root 129 Dec 4 2004 .tcshrc
-rw-------. 1 root root 1152 Mar 10 21:59 anaconda-ks.cfg
-rw-r--r--. 1 root root 25213 Mar 10 21:59 install.log
-rw-r--r--. 1 root root 7690 Mar 10 21:56 install.log.syslog
[root@LAB1 ~]# ls -a
. .. .Xauthority .bash_logout .bash_profile .bashrc .cshrc .tcshrc anaconda-ks.cfg install.log install.log.syslog
[root@LAB1 ~]# ls -A
.Xauthority .bash_logout .bash_profile .bashrc .cshrc .tcshrc anaconda-ks.cfg install.log install.log.syslog
[root@LAB1 ~]# ls -lh
total 44K
-rw-------. 1 root root 1.2K Mar 10 21:59 anaconda-ks.cfg
-rw-r--r--. 1 root root 25K Mar 10 21:59 install.log
-rw-r--r--. 1 root root 7.6K Mar 10 21:56 install.log.syslog
[root@LAB1 ~]# ls -i
1310729 anaconda-ks.cfg 1310722 install.log 1310723 install.log.syslog
[root@LAB1 ~]# ls -d /root
/root
[root@LAB1 ~]# ls -lid /root
1310721 dr-xr-x---. 2 root root 4096 Mar 12 01:26 /root
[root@LAB1 ~]# ls -r
install.log.syslog install.log anaconda-ks.cfg
三、cd:切换目录 Change Directory
不带任何目录,切换到当前家目录(Home Directory)
制定路径:就切换到指定路径下面
-:在上一个目录和当前目录之间进行切换
~:切换到当前家目录
~用户名:切换到指定用户的家目录
..:切换到上一级目录
pwd:Print Working Directory:显示当前目录,即显示到现在这个目录的绝对路径。
四、type:显示命令分类型,是内部命令还是外部命令。
内部命令:(shell内置),内部,内建
外部命令:在文件系统中某一个路径下有一个与命名相对应的可执行文件。
五、环境变量
环境变量:定义当前用户的工作环境的内存空间。
printenv:显示当前环境变量。
注意PATH=使用冒号分割的一堆路径。后面为可执行程序的路径,在执行程序并且没有指定路径的时候,系统默认按照顺利从PATH路径中挨个寻找可执行程序,并执行查找到的第一个。
hash:一种缓存,记录以前使用过的命令,及其被使用的次数
变量:命名的内存空间。变量能申请能撤销
变量声明,即申请内存的过程。变量赋值,即把数据存到对应的内存中。
堆栈:堆(Heap):需要访问的数据
栈(Stack):本地生命变量和静态变量
所有的变量都是一个配置文件与之对应。
---------------------------------------------------------------------------------------------------------
[root@LAB1 ~]# printenv
HOSTNAME=LAB1
SELINUX_ROLE_REQUESTED=
TERM=vt100
SHELL=/bin/bash
HISTSIZE=1000
SSH_CLIENT=192.168.10.1 61481 22
SELINUX_USE_CURRENT_RANGE=
QTDIR=/usr/lib/qt-3.3
QTINC=/usr/lib/qt-3.3/include
SSH_TTY=/dev/pts/0
USER=root
LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.tbz=01;31:*.tbz2=01;31:*.bz=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.axa=01;36:*.oga=01;36:*.spx=01;36:*.xspf=01;36:
SSH_AUTH_SOCK=/tmp/ssh-MyuEuh3980/agent.3980
MAIL=/var/spool/mail/root
PATH=/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
PWD=/root
LANG=en
SELINUX_LEVEL_REQUESTED=
HISTCONTROL=ignoredups
SHLVL=1
HOME=/root
LOGNAME=root
QTLIB=/usr/lib/qt-3.3/lib
CVS_RSH=ssh
SSH_CONNECTION=192.168.10.1 61481 192.168.10.100 22
LESSOPEN=|/usr/bin/lesspipe.sh %s
G_BROKEN_FILENAMES=1
_=/usr/bin/printenv
[root@LAB1 ~]# hash
hits command
7 /bin/date
1 /usr/bin/printenv
4 /sbin/hwclock
六:date:时间管理
在LINUX中,时间分为系统时间与硬件时间。
硬件时间:即主板上硬件计算的时间。date
系统时间:操作系统自己计算的时间。hwclock、clock
系统时间修改方法:date [MMDDhhmm[[CC]YY][.ss]]
系统时间同步到硬件时间:hwclock -w
硬件时间同步到系统时间:hwclock -s
date常用参数:+%D(日期) %d(日) %T(小时) %F(日期) %Y-%m-%d %H:%M:%S(定制显示格式)
[root@LAB1 ~]# date +%D
03/16/15
[root@LAB1 ~]# date +%d
16
[root@LAB1 ~]# date +%T
19:01:22
[root@LAB1 ~]# date +%F
2015-03-16
[root@LAB1 ~]# date +%Y-%m-%d
2015-03-16
[root@LAB1 ~]# date +%H:%M:%S
19:02:41
七:获取帮助
1、help
内部命令 help COMMAND 外部命令与内部命令的坚定方法:type
外部命令 COMMAND --help
2、man
man分章节:1、用户命令(/bin、/usr/bin、/usr/local/bin)
2、系统调用
3、库调用
4、特殊文件(设备文件)
5、文件格式(配置文件指示指令的运算属性,某个命令对应的配置文件的语法)
6、游戏
7、杂项(Miscellaneous)
8、管理命令(/bin、/usr/sbin、/usr/local/sbin.管理员使用的命令,修改硬件参数,硬件工作特性、以及其它的系统级别的配置):mount
man的文件描述:【】表示可省略 、| 表示多选一、<>表示必须用、...表示可以使用多次、{}表示分组
章节:NAME:命令名称与功能简单介绍
SYNOPSIS:用法说明,包括可用的选项
DESCRIPTION:命令功能的详细说明,包括每个选项的意义。
OPTIONS:说明每个选项的意义。
FILES:此命令相关的配置文件
BUG:bug报告方法。
EXAMPLE:使用示例
SEE ALSO:另外参考
快捷键:后翻一屏:space
向前一屏:b
后一行:Enter
前一行:k
查找: /keyword
从尾部开始查找:?Keyword
n:下一个
N:上一个
q:退出
LINUX文件系统结构
/boot:系统启动时候需要用到的文件。vmlinuz--内核,initramfs--硬盘映像文件,grub:引导加载器
/dev:设备文件,没有大小,按照元数据文件存放,包含一些设备的访问入口。
块设备:随机访问(例如:硬盘) 字符设备:线性访问(鼠标、键盘、屏幕等) 设备号:主设备号和次设备号
/etc:配置文件,都是文本文件
/home:用户的家目录,默认为/home/USRNAME
/root:root的家目录
/lib:library,库文件
/lib/modules:内核模块文件
静态库:直接链接到程序访问地址,做为程序的一部分,在内存中不和别的内存进行共享
动态库:动态链接库,在内存中可以被多个程序调用,共享使用
/lost+found:异常开关机保存
/mnt:挂载点目录(主要为移动设备:光盘、软盘等)
/media:挂载点目录(额外的临时文件挂载点) 介质文件的访问必须挂载在某个目录下,进行打开读取和执行操作
/misc:杂项
/opt:optinal,可选目录,早起用于存放第三方软件
/proc:伪文件系统,内核映射文件,内核可调参数。(后期系统调优与系统检测主要涉及此文件)
/sys:伪文件系统,跟硬件设备相关的属性映射文件
/tmp、/var/tmp:临时文件系统
/var:可变化的文件
/bin:binary二进制可执行文件,用户命令
/sbin:管理命令。 这两个为系统启动相关指令
/usr:shared,read-only,全局的共享的只读文件。
/usr/bin /usr/sbin 启动后提供基本功能的应用
/usr/local/bin /usr/local/sbin 第三方软件安装的位置
创建目录的命名规则:1、严格区分大小写
2、不能超过255个字符
3、不能用‘/’当文件名
mkdir:创建目录
-P 创建目录的时候如果父目录不存在,则创建
-v 详细信息 显示创建的详细信息
-----------------------------------------------------------------------------------------
[root@LAB1 tmp]# mkdir -pv {a,b}/{c,d}
mkdir: 已创建目录 "a"
mkdir: 已创建目录 "a/c"
mkdir: 已创建目录 "a/d"
mkdir: 已创建目录 "b"
mkdir: 已创建目录 "b/c"
mkdir: 已创建目录 "b/d"
{}:表示展开
rmdir:删除目录。remove directory。只能删除空目录
-p:路径中为空的都删除。
文件的创建与删除
touch:创建目录(一个文件夹下的目录与文件不可重名)
1、touch 文件名 创建文件
2、修改时间戳
-c 修改时间戳,没有此文件不创建
-a:只修改访问时间
-m:只修改修改时间
-t:修改为过去某个时间
用文本编译器创建文件。nano
stat :查看文件的属性信息
中文标准:GB18030、GBK、GB2312
rm:删除文件
-i:交互删除
-f:强制删除
-r:删除目录,递归删除
复制和移动目录
copy:复制目录。cp src dest
cp file1 file2 ....filen 第一个为源,最后一个为目标。
一个文件到一个文件,一个文件到一个目录,多个文件到一个目录。
-R:递归复制,即复制此目录及其子目录
-f:强制覆盖
-i:复制提醒
-p:保留时间戳、属主等信息
-a:保留所有属性(归档的时候用)
-d:复制链接文件为链接文件,否则会把链接到的文件复制过来。
-L:复制链接文件为文本
mv: src dest
移动文件。一个文件到一个目录中,一个文件到一个文件(不存在)则移动并重命名,文件到文件(存在)则覆盖,目录到目录
install:复制文件并制定属性。只能是文件
-w:制定权限
-d:创建目录
目录管理:ls、cd、pwd、mkdir、rmdir、tree
文件管理:touch、stat、file、rm、cp、mv、namo
日期时间:date、clock、hwclock、cal
文本查看命令:cat、tac、more、less、head、tail
cat:连接并显示。
-n:显示行号
-E:显示结束符号(Linux结束符号为$)
-T:显示制表符
-v:显示非打印符号
-A:显示所有符号
文件1 文件2:把文件1与文件2的内容连起来进行显示
tac:把显示的内容反过来
Ctrl+C:强制结束。
分屏显示命令:more、less
空格:向后翻一屏
B:向前翻一屏
回车:向后翻一行
K:向前翻一行。
more:常用想后翻,最后一页会推出。less:常用向后翻页,最后一页不退出,只有Q才退出。
head:查看前N行,默认是10
tail:查看后N行。
-n:查看前几行。
-f(tail可用):立即显示文件中追加的内容。
-----------------------------------------------------------------------------------------------------------
[root@LAB1 ~]# head -3 /etc/inittab
# inittab is only used by upstart for the default runlevel.
#
# ADDING OTHER CONFIGURATION HERE WILL HAVE NO EFFECT ON YOUR SYSTEM.
文本处理:cut、join、sed、awk
cut:-d:制定分隔符,默认为空格
-f:指定显示的字段。f1:显示第一列。f1,3:表示显示1列和3列。f1-3:表示显示1-3列。
-----------------------------------------------------------------------------------------------------------------------------
[root@LAB1 ~]# cut -d : -f1,3,5-7 /etc/passwd
root:0:root:/root:/bin/bash
bin:1:bin:/bin:/sbin/nologin
daemon:2:daemon:/sbin:/sbin/nologin
[root@LAB1 ~]# head -3 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
排序命令:sort
sort: 不影响文件内容,按照文档第一个字符升序进行排序。
-n:按照数值大小进行排序。
-r:逆序。
-t:字段分隔符
-k:第几行。以哪个字段进行排序。
-u:不显示重复行
-f:排序不区分大小写
uniq:显示或者忽略重复行(重复且相同的行为重复行)
-d:只显示重复行
-D:显示所有重复行(重复几次就显示几行)
-c:显示行,并说明每行重复的次数。
文本统计:WC(word count):行、字符数、字节数(空格也包裹)
[root@LAB1 ~]# wc /etc/issue
3 13 75 /etc/issue
-l:只显示行
-w:单词数
-m:字符数
-L:最长一行多少个字符
字符处理命令:tr:转换或者删除字符
tr 选项 ... set1 ...
tr 'a-z' 'A-Z' < /etc/passwd
-d:删除字符集中出现的所有制定字符