LINUX各发行版本
【点击看大图】
http://a.disquscdn.com/uploads/mediaembed/images/1078/9644/original.jpg
http://futurist.se/gldt/wp-content/uploads/12.10/gldt1210.png【原图下载】
Linux 入门命令
tty ,who,who am i, w, date hwclock,cal,cd, mkdir,type,hash,man whatis,
info,shutdown.reboot,poweroff.FHS
ROM:只读存储器,寻址地址空间的组成部分
RAM:随机存储器
南桥:低速
北桥:高速
将底层的细节隐藏起来,并提供一个统一的规范的,简介的接口提供出来,这就是操作系统的用途
posix 可移植操作系统(规范)
启动内核,启动外壳
init用来作为所有进程的父进程,由它来启动别的进程
linux被称为类unix,Unix―like
linux内核的官方站点
www.kernel.org
版本说明:
主版本号:此版本号、修正号
init:6以后使用Ubuntu研发的upstart,7以后可能使用systemd
shell:bash
源码:
linux发行版:
RadHat
SuSE
Debian
LFS:
bt:BackTrace
管理包工具:
RadHat,SuSE:RPM
Debian:deb
硬盘:分区、格式化(创建文件系统)、选择语言、键盘布局、时区、设置用户、选择安装需求、
安装程序:
RadHat:anaconda支持自动安装,有kickstart、cobbler
Linux终端:
物理终端、
/dev/console
串行终端、
/dev/ttys#
虚拟终端(Ctrl+Alt+F(1-6))
/dev/tty#(数字)
图形终端Ctrl+Alt+F7,
伪终端(远程终端、图形界面下的终端)
/dev/pts/#(数字)
startx 启动图形界面
Ctrl+c:取消正在执行的命令
&立即释放命令提示符(后台执行)
shfit+PageUp/PageDown:翻屏
tty命令:显示当前终端对应终端设备文件
[root@localhost ~]# tty
/dev/pts/0
who 查看当前系统上登陆的所有账号的命令
[root@localhost ~]# who
root tty1 2015-10-13 04:17
root pts/0 2015-11-15 19:41 (192.168.81.1)
who am i 查看当前终端登陆的账号
[root@localhost ~]# who am i
root pts/0 2015-11-15 19:41 (192.168.81.1)
查看进程树
[root@localhost ~]# pstreeinit─┬─anacron
├─auditd───{auditd}
├─console-kit-dae───63*[{console-kit-da}]
├─crond
├─dbus-daemon───{dbus-daemon}
├─dhclient
├─login───bash
├─master─┬─pickup
│ └─qmgr
├─5*[mingetty]
├─mysqld_safe───mysqld───17*[{mysqld}]
├─rsyslogd───3*[{rsyslogd}]
├─sshd───sshd───bash───pstree
└─udevd───2*[udevd]
linux哲学思想:
1.一切皆文件,显示器tty当作文件,硬盘sda也是文件,socket网络也是文件
2.由众多目的的单一应用程序组成:一个程序只做一件事,且做好
3.组合目的的单一的小程序完成复杂的任务
4.尽量避免跟用户交互,一次性写入,一次性返回
5.使用文本文件保存配置信息
6.提供机制,而非策略
自由软件的含义:
自由使用
自由学习和修改
自由分发
自由创建衍生版
shell:
GUI:
Windows
Gnome
KDE
Xfce
CLI:
bsh
csh
tcsh
ksh
bash
zsh
bash
管理员:提示符 #
普通用户 提示符 $
环境变量:
PS1:一级提示符
变量:是一段内存空间,
echo 回显
引用一个变量${变量名},大多数花括号可以省略
宏:
echo $PS1
[\u@\h \W]\$
\u:当前用户
\h:主机名
\W:工作目录的路径基名
基名:当前目录的最后一段
basename 显示当前目录的基名
dirname 显示当前目录的目录名
对于linux来讲,路径分隔符:/
绝对路径:从顶层开始的路径
相对路径:从当前位置开始的路径
目录是路径映射符
linux文件系统结构:
层次化
在启动的时候需要使用文件,需要载入内存,有一个分区作为起始分区,这个分区被称为根分区
根是由内核直接访问的
挂载
卸载
每个用户都有自己所有操作权限的目录,这个目录称之为家目录(主目录)
每次登陆目录,一定处在某个目录中
工作目录:当前所处的目录,叫做工作目录
cd:change directory
cd 目标目录
Linux文件系统的特性:
1、文件名可以使用除/意外的任意字符,但总长度不能超过255个
2、严格区分大小写
如何获取命令帮助:
bash中,命令分为:
内部命令:在bash中内部实现的命令叫做内置命令
外部命令:在文件系统上的某个位置有一个与命令名称对应的可执行文件
如何判断:?
使用type命令
[root@localhost ~]# type cd
cd is a shell builtin
[root@localhost ~]# type fdisk
fdisk is /sbin/fdisk
[root@localhost ~]# type cp
cp is aliased to `cp -i
shell 事先通过一个变量设定好了多个路径,当用户输入命令时,shell会自动到这些路径(由左向右)以此查找与命令名称相同的可执行文件
hash 用来保存以前曾经执行过的命令,以哈希表的方式保存,可以通过hash来查看
[root@localhost ~]# hash
hitscommand
1/usr/bin/tty
1/usr/bin/pstree
1/bin/cat
4/usr/bin/who
1/usr/bin/man
3/usr/sbin/ntpdate
2/bin/ls
查看一个可执行程序的具体路径:使用 which+程序名来查看
[root@localhost ~]# which fdisk
/sbin/fdisk
显示父目录
[root@localhost ~]# dirname /home/lost+found/
/home
获取帮助:
内置命令:
# help 命令名
外部命令:
# 命令 --help
有使用手册
# man 命令(先解压后显示)
里面有很多段落:
NAME
SYNOPSIS 格式
OPTIONS
EXAMPLES
DESCRIPTION
使用帮助中命令格式中的字符意义:
[]:可选的部分
{a|b}:分组,a和b作为一个使用单元来使用
|:或者,只能选其一
<>:必不可少的部分
...:同类内容可以出现多个,以空格分割
简要使用机制
翻屏:
空格键:向文件尾部翻一屏
b:向文件首部翻一屏
回车键:向文件尾部翻一行
k:向文件首部翻一行
ctrl+d:向文件尾部翻半屏
ctrl+u:向文件首部翻半屏
1G:第一行
G:最后一行
文本搜索:
/keyword : 顺向,向文件尾部搜索
查看下一个被匹配到的
n 跟命令方向一致
N 跟命令方向相反
?keyword : 逆向,向文件首部搜索
q:退出
补充:man其实能为命令(普通命令、管理命令)、程序的配置文件格式、系统调用、库调用、游戏及其他不便归类的文件提供帮助手册
man命令的分段机制:
1:用户命令:
2:系统调用
3:库调用
4:设备文件
5:文件格式
6:游戏
7:杂项
8:管理命令
命令的使用格式:
command options arguments
命令 选项 参数
查看passwd的文件格式
[root@localhost ~]# man 5 passwd
选项:调整命令的执行特性的
选项可以有多个,多个选项之间必须以空格分隔
短选项:-char(字符)
长选项:--word(单词)
两个短选项可以合并,长选项一般不可以合并
有些选项需要有参数
命令参数:命令的作用对象:
有些命令可以带多个参数,各参数之间需要使用空格隔开
查看某关键字在那些段落有使用帮助
whatis Keyword 精确查找
提示:如果whatis的数据库尚未生成,可以使用makewhatis手动进行
man -k Keyword 模糊查找
[root@localhost ~]# whatis killkill (1p) - terminate or signal processeskill (1) - terminate a processkill (2) - send signal to a processkill (3p) - send a signal to a process or a group of processeskill [builtins] (1) - bash built-in commands, see bash(1)[root@localhost ~]# [root@localhost ~]# [root@localhost ~]# man -k killkill (1p) - terminate or signal processeskillall (1) - kill processes by nametkill (2) - send a signal to a thread
info 命令:获取在线文档
很多应用程序自带的有文档:/usr/share/doc
ChangeLog INSTALL README
google:
linux filetype:ppt 特定格式
keyword site:magedu.com
Redhat官方文档
www.redhat.com/docs
[说明文档的帮助]
[root@localhost ~]# cat /usr/share/doc/yum-3.2.29/README
【推荐阅读】
Google.Hacks.探索和利用全球信息资源的技巧和工具.(第三版)
shuitdown,如何关机和重启;
reboot halt date hwcolck
【导出环境变量】
export LANG=en
将语言设置为en
系统管理类的命令
shutdown [option]...TIME -r :重启 -h :关机 -c:取消重启或关机命令 时间格式: now +#:#分钟以后 hh:mm 几点几分关机 reboot 一般情况下是调用shutdown进行关机处理 halt poweroff
日期时间管理类命令
date,hwclockdate 显示当前系统时间date MMDDhhmm[cc]YY.ssdate[+FORMAT]%Y:四位年份%y:两位年份%m:月%M:分钟%d:日%h:英文简写的月%H:时%S:秒%s:现在距离1970年1月1号0点0分(unix元年)的秒数,timestamp(时间戳)%D:月/日/年%F:年-月-日%T:时:分:秒[root@localhost ~]# date 0122145516Fri Jan 22 14:55:00 CST 2016[root@localhost ~]# date 012214552016.45Fri Jan 22 14:55:45 CST 2016[root@localhost ~]# date +%h-%YJan-2016[root@localhost ~]# date +%h:%YJan:2016
hwclock
-s:以硬件时钟为准 --hctosys
-w:以软件时钟为准 --systohc
Linux有两个时钟
硬件时钟:
软件时钟:开机时读取硬件时钟
[root@localhost ~]# hwclock
Tue 17 Nov 2015 04:50:16 AM CST -0.143619 seconds
cal 日历
bash的特性至二:
命令行展开:能够把一个特殊字符换成别的字符
{,}展开为多个条目
文件和目录管理类的命令
目录:
cd ~[username]
~:指定用户的家目录
cd -:回到上一次所在的目录
路径:
相对路径中:
.:当前目录
..:父目录
pwd: print working directory 显示当前目录
mkdir:创建目录
-p:先创建父目录
-v:显示详细信息
rmdir:删除空目录
-p:只能删除一线单的目录 批量创建 [root@localhost ~]# mkdir -pv a/b/c/d/e/fmkdir: created directory `a'mkdir: created directory `a/b'mkdir: created directory `a/b/c'mkdir: created directory `a/b/c/d'mkdir: created directory `a/b/c/d/e'mkdir: created directory `a/b/c/d/e/f'批量展开创建[root@localhost ~]# mkdir -pv a/b{1,2,3}/{c1,c1,c4}/d/e/fmkdir: created directory `a/b1'mkdir: created directory `a/b1/c1'mkdir: created directory `a/b1/c1/d'mkdir: created directory `a/b1/c1/d/e'mkdir: created directory `a/b1/c1/d/e/f'mkdir: created directory `a/b1/c4'mkdir: created directory `a/b1/c4/d'mkdir: created directory `a/b1/c4/d/e'mkdir: created directory `a/b1/c4/d/e/f'mkdir: created directory `a/b2'mkdir: created directory `a/b2/c1'mkdir: created directory `a/b2/c1/d'mkdir: created directory `a/b2/c1/d/e'mkdir: created directory `a/b2/c1/d/e/f'mkdir: created directory `a/b2/c4'mkdir: created directory `a/b2/c4/d'mkdir: created directory `a/b2/c4/d/e'mkdir: created directory `a/b2/c4/d/e/f'mkdir: created directory `a/b3'mkdir: created directory `a/b3/c1'mkdir: created directory `a/b3/c1/d'mkdir: created directory `a/b3/c1/d/e'mkdir: created directory `a/b3/c1/d/e/f'mkdir: created directory `a/b3/c4'mkdir: created directory `a/b3/c4/d'mkdir: created directory `a/b3/c4/d/e'mkdir: created directory `a/b3/c4/d/e/f'嵌入创建[root@localhost ~]# mkdir -pv a/b{1,2,3}/{c1,c1,c4}/d/{e1,e2{q1,w2}}/fmkdir: created directory `a/b1/c1/d/e1'mkdir: created directory `a/b1/c1/d/e1/f'mkdir: created directory `a/b1/c1/d/e2q1'mkdir: created directory `a/b1/c1/d/e2q1/f'mkdir: created directory `a/b1/c1/d/e2w2'mkdir: created directory `a/b1/c1/d/e2w2/f'mkdir: created directory `a/b1/c4/d/e1'mkdir: created directory `a/b1/c4/d/e1/f'mkdir: created directory `a/b1/c4/d/e2q1'mkdir: created directory `a/b1/c4/d/e2q1/f'mkdir: created directory `a/b1/c4/d/e2w2'mkdir: created directory `a/b1/c4/d/e2w2/f'mkdir: created directory `a/b2/c1/d/e1'mkdir: created directory `a/b2/c1/d/e1/f'mkdir: created directory `a/b2/c1/d/e2q1'mkdir: created directory `a/b2/c1/d/e2q1/f'mkdir: created directory `a/b2/c1/d/e2w2'mkdir: created directory `a/b2/c1/d/e2w2/f'mkdir: created directory `a/b2/c4/d/e1'mkdir: created directory `a/b2/c4/d/e1/f'mkdir: created directory `a/b2/c4/d/e2q1'mkdir: created directory `a/b2/c4/d/e2q1/f'mkdir: created directory `a/b2/c4/d/e2w2'mkdir: created directory `a/b2/c4/d/e2w2/f'mkdir: created directory `a/b3/c1/d/e1'mkdir: created directory `a/b3/c1/d/e1/f'mkdir: created directory `a/b3/c1/d/e2q1'mkdir: created directory `a/b3/c1/d/e2q1/f'mkdir: created directory `a/b3/c1/d/e2w2'mkdir: created directory `a/b3/c1/d/e2w2/f'mkdir: created directory `a/b3/c4/d/e1'mkdir: created directory `a/b3/c4/d/e1/f'mkdir: created directory `a/b3/c4/d/e2q1'mkdir: created directory `a/b3/c4/d/e2q1/f'mkdir: created directory `a/b3/c4/d/e2w2'mkdir: created directory `a/b3/c4/d/e2w2/f'多项式创建方式[root@localhost ~]# mkdir -pv {1,2}_{1,4}mkdir: created directory `1_1'mkdir: created directory `1_4'mkdir: created directory `2_1'mkdir: created directory `2_4'[root@localhost ~]# mkdir -pv {1,2}*{3,4}*{5,6}mkdir: created directory `1*3*5'mkdir: created directory `1*3*6'mkdir: created directory `1*4*5'mkdir: created directory `1*4*6'mkdir: created directory `2*3*5'mkdir: created directory `2*3*6'mkdir: created directory `2*4*5'mkdir: created directory `2*4*6'[root@localhost ~]# mkdir -pv /tmp/mylinux/{usr/local}/{bin,sbin},etc/{sysconfig,init.d},bin.sbin}mkdir: created directory `/tmp/mylinux'mkdir: created directory `/tmp/mylinux/usr'mkdir: created directory `/tmp/mylinux/usr/local}'mkdir: created directory `/tmp/mylinux/usr/local}/bin'mkdir: created directory `/tmp/mylinux/usr/local}/sbin'mkdir: created directory `/tmp/mylinux/etc'mkdir: created directory `/tmp/mylinux/etc/sysconfig'mkdir: created directory `/tmp/mylinux/etc/init.d'mkdir: created directory `/tmp/mylinux/bin.sbin'创建带空格目录[root@localhost ~]# mkdir "a c" -pvmkdir: created directory `a c'
shell的引用:
‘’:强引用,变量替换不会进行
"":弱引用,能够执行变量替换
``:命令替换,引用命令的执行结果,另外一种方式$()
变量替换:${变量名}
echo 显示
创建时间文件夹,两种方式
[root@localhost ~]# mkdir `date +%F-%H-%M-%S`
[root@localhost ~]# mkdir $(date +%F-%H-%M-%S)
shell的特性之三:命令历史
bash默认会保持此前执行过的命令列表
当前shell进程的保存在缓冲区中:
缓冲区中的命令会在shell退出的保存在文件中 .bash_history
使用上下箭头键可以翻看此前执行过的命令:
history:
!数字:执行history中第数字条的命令
!!:上一条命令
!-数字:表示执行命令列表中的倒数第数字条命令[没有空格]
!$:执行上个命令中的最后一个参数:ESC,.【按ESC+按点】
!string:执行命令列表中的最近一次以string开头的命令
-d 数字 删除第数字条记录
-c 清空history列表
-a:追加当前回话的命令到历史列表中去
-n:读取所有在回话列表中的 但是不在当前回话列表中的
-r
-w 把命令写到文件中
命令历史相关的环境变量
HISTSIZE:历史命令中可以保存的个数
[root@localhost ~]# echo $HISTSIZE
1000
HISTFILE: 历史命令保存的文件
HISTFILESIZE:历史文件中可以保存的命令个数
[root@localhost ~]# echo $HISTCONTROL
ignoredups
HISTCONTROL:控制命令历史的生成机制
ignoredups:忽略记录重复的命令,连续的相同命令
ignorespace:以空格开头的命令不会被记录
ignoreboth:同时具有上面两种特性
root@admin-ceph:~# HISTCOnTROL=ignoreboth
root@admin-ceph:~# echo $HISTCONTROL
ignoreboth
补充:Linux文件系统的另一个特性:以点开头的文件为隐藏文件 通过ls -a 查看
shell中的变量赋值
变量名=值
注意:变量在赋值是不能再前面带$
变量名只能包含字母、数字和下划线,并且不能以数字开头
变量名区分大小写
尽量能见名知义
FHS:文件层次标准
操作系统自身运行使用的 /bin: 存放可执行的二进制程序,管理员和普通用户都可以使用 /sbin:管理员才能执行的命令 运行正常功能的程序存放位置 /usr/bin /usr/sbin 用来存放第三方软件的程序 /usr/local/bin /usr/local/sbin/boot:存放系统引导文件:内核、ramfs文件、bootloader(grub)/dev:设备文件存放目录/etc:配置文件的集中存放目录 /etc/sysconfig:系统级别的应用 /etc/init.d:系统服务脚本 /home :普通用户,默认在/home下有一个与其名称同名目录,作为用户的家目录 /root:管理员的家目录 /lib,/lib64:库文件/media:专用挂载位置,通常用来挂载便携式设备/mnt:专用挂载位置,挂载额外的存储设备/misc:杂项,备用目录/opt:可选目录,但通常用来安装第三方软件/proc:所显示的文件都不是文件,伪文件系统,运行中的内核参数的映射/sys:伪文件系统,系统级别的用于配置硬件设备相关的参数/srv:为服务提供数据存放位置的/tmp:临时文件系统:默认存放30天/usr:shared 所有遵循协议的系统都可以使用,readonly 只读 /usr/include:头文件存放位置/var:经常发生变化的文件 /var/log /var/lock /var/run /var/cache
文件管理类的命令:
文件类型
bash的其他特性:
shell管道和重定向:
文本编辑器:正则表达式
文件查找: