您的位置:首页 > 运维架构 > Linux

01 Linux 入门 各发行版 命令 时间 日期 关机 帮助

2015-11-17 20:07 661 查看
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 ~]# pstree
init─┬─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 kill
kill                 (1p)  - terminate or signal processes
kill                 (1)  - terminate a process
kill                 (2)  - send signal to a process
kill                 (3p)  - send a signal to a process or a group of processes
kill [builtins]      (1)  - bash built-in commands, see bash(1)
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# man -k kill
kill                 (1p)  - terminate or signal processes
killall              (1)  - kill processes by name
tkill                (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,hwclock
date 显示当前系统时间
date MMDDhhmm[cc]YY.ss
date[+FORMAT]
%Y:四位年份
%y:两位年份
%m:月
%M:分钟
%d:日
%h:英文简写的月
%H:时
%S:秒
%s:现在距离1970年1月1号0点0分(unix元年)的秒数,timestamp(时间戳)
%D:月/日/年
%F:年-月-日
%T:时:分:秒
[root@localhost ~]# date 0122145516
Fri Jan 22 14:55:00 CST 2016
[root@localhost ~]# date 012214552016.45
Fri Jan 22 14:55:45 CST 2016
[root@localhost ~]# date +%h-%Y
Jan-2016
[root@localhost ~]# date +%h:%Y
Jan: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/f
mkdir: 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/f
mkdir: 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}}/f
mkdir: 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" -pv
mkdir: 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管道和重定向:
文本编辑器:正则表达式
文件查找:
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: