标签:google keyword manual linux
马哥预习视频第三天
linux 根文件系统
回顾:linux文件系统的特性,命令的使用帮助,常用的命令
如何使用帮助,内部命令help,外部man
官方文档
自带文档(README,CHANGELOG,INSTALL)
发行版的文档
Linux 内核:documentation
man非常重要:manual,使用手册
章节有很多whatis keyword
man # KEYWORD
SECTION:
NAME:
SYNOPSIS
[],<>,|,{}
..
控制命令
space,b
enter,k
ctrl+d,ctrl+u
q
#G
/keyword
?keyword
基础命令:pwd,cd,ls,echo,date,clock,cal,hwclock,cat,tac,file,type,tty,shutdown,reboot,
linux的组成部分
硬件的组成部分,由内而外,能够操作硬件的只能是内核,因此内核整个把硬件封装起来,所有硬件提供的hardware被隐藏起来,把硬件的功能转化为了系统调用,程序要和内核打交道,要通过系统调用。内核把硬件隐藏起来,抽象为系统调用。外面要打交道,需要通过系统调用。文件系统,硬件功能,安全加密等,很多通用的功能在内核。所有的工作要通过应用程序。也可以通过库函数来实现,库只是为了简化程序员研发困难度的,有了库以后可以把很多功能提供成公共功能模块,库文件没有独立单独的执行入口,只能被其他程序调用时方可运行。各种应用程序,程序员研发应用程序时调用了库,这个程序执行启动为进程时,首先把它依赖的库装载到内存中才能运行的,因为库本身就是这个程序的组成部分。如果一个程序员在开发时, 调用了库,在编译时做了静态编译(程序员编译好以后,也调用了库,但在编译的时候把所调用的每一个库都直接编译到程序中去,把每一个用到的库复制了一个副本,直接放在程序中,程序到任何位置都能运行)
linux的文件系统:
linux要用的库,是由glibc提供,
程序编译方式:
动态链接
静态链接
进程的类型:
终端:硬件设备,关联一个用户接口
与终端相关:通过终端启动
与终端无关:操作引导启动过程当中自动启动
操作系统的组成:
静态:内核文件(kernel),应用程序(application)
文件系统:层级结构,方便去查找每一个文件,
FHS;
filesystem hierachy standard标准文件系统
/bin:供所有用户使用的二进制用户文件;
/sbin:供系统管理员使用的工具程序;
/boot:引导加载器必须用到的各静态文件:kernel,initramfs(initrd),grub等
/dev:所有硬件设备的设备文件,存储特殊文件或设备文件;
设备有两种类型:字符设备(线性设备)、块设备(随机设备);
/etc:系统程序的静态配置文件,只能是静态
/home :普通的家目录的集中位置;一般每个普通用户的家目录默认此目录下与用户同名的子目录,/home/USERNAME
/root:管理员的家目录;可选;
/lib:为系统启动或根文件系统上的应用程序(/bin,/sbin等)提供共享库以及为内核提供内核模块,
libc.so.*:动态链接的C库;
ld*:运行时链接器/加载器;
modules:用于存储内核模块的目录;
/lib64:64位系统特有的存放64位共享库的路径;
/media:便携式设备挂载点,cdrom,floppy等;
/mnt:其他文件系统的临时挂载点;
/opt:附加应用程序的安装位置;可选路径
/srv:当前主机为服务提供的数据;主机特有
/tmp:为那些会产生临时文件的程序提供的用于存储临时文件的目录;可供所用户执行写入操作;有特殊权限;
/usr:/usr hierarchy,全局共享的只读数据路径;重要
bin,sbin
lib,lib64
include:C程序头文件;
share:命令手册页和命令自带文档等架构特有的文件存放位置
local:另一个层级目录;
X11R6:x-windows程序的安装位置
src:程序源代码文件的存储位置
/usr/local:local hierarchy,让系统管理员安装本地应用程序;也通常用于安装第三方程序;
/var:/var hierarchy,存储常发生变化的数据的目录;
cache application cache data
lib variable state information
local variable data for /usr/local
lock lock files
log log files and directories
opt variable data for /opt
run data relevant to running processes
spool application spool data
tmp temporary files preserved between system reboots
/proc:基于内存的虚拟文件系统,用于内核及进程存储其相关信息:他们多为内核参数,例如net.ipvt4.ip_forward,虚拟为net/ipv4/ip_forward,存储于/proc/sys/,因此期完整路径为/proc/sys/net/ipv4/ip_forward;
/sys:sysfs虚拟文件系统提供了一种比proc更为理想的访问内核数据的途径;其主要作用在于为管理linux设备提供一种统一模型的接口;
bash基础特性
linux基础命令及命令历史
linux系统上的文件类型:
-:常规文件:即f;
d:directory,目录文件:完成路径映射的
b:block device,块设备文件,以“block”为单位进行随机访问;特殊文件
c:charactor device,字符设备文件,支持以“character”
为单位进行线性访问;
major number:主设备号,用于标识设备类型,进而确定要加载的驱动程序
minor number:次设备号,用于标识同一类型的不同的设备;
8位二进制:0-255
l:symbolic link,符号链接文件;
p:pipe,命名管道;
s:socket,套接字文件;两个进程通信时套接的;
基本命令:
命令类型:
外部命令
shell内嵌命令原名被隐藏
bash:
type COMMAND
内部:builtin
外部:显示为命令文件路径;
注意:命令可以有别名;别名可以与原名相同,此时原名被隐藏;此时如果要运行原命令,则使用\COMMAND;
命令别名:
获取所有可用别名的的定义;
~]# alias
定义别名:
~]#alias NAME=‘COMMAND‘
撤销别名:
~]#unalias 有效NAME
注意:仅对当前shell进程有效
which命令
显示命令完整路径
which [options] programname [...]
--skip-alias:忽略别名
whereis 命令
whereis - locate the binary, source, and manual page files for a command
whereis [options] name...
-b:仅搜索二进制程序路径:
-m:仅搜索使用手册文件路径
who命令:
who - show who is logged on
who [OPTION]...
-b:系统此次启动的时间;
-r:运行级别;
w命令:
增强版的who命令;
bash的基础特性:
命令历史:shell进程会其回话中保存此前用户提交执行过的命令;
~]# history
定制history的功能,可通过环境变量实现;
HISTSIZE:shell进程可保留的命令历史的条数;
HISTFILE:持久保存命令历史的文件;
.bash_history (ls -a 家目录下的隐藏文件)
HISTFILESIZE:命令历史文件的大小
echo $HISTFILESIZE 结果1000
history -c清空命令历史 history -r 恢复
history -r:把文件读取命令历史至历史列表中;
history -d: 删除指定命令history -d 100
history -w:把历史列表中的命令追加至历史文件中; (保存到.bash_history里)
history #:显示最近的#条命令;
调用命令历史列表中的命令:
!#:再一次执行历史列表中的第#条命令;
!!:再一次执行上一条命令;
!STRING:再一次执行命令历史列表中最近一个以STRING开头的命令;
注意:命令的重复执行有时候需要依赖于幂等性;
调用上一条命令的最后一个参数:
快捷键:ESC,. 按ESC松开,再按.
字符串:!$
控制命令历史记录的方式:
环境变量:HISTCONTROL ignoredups
ignoredups:忽略重复的命令;
ignorespace:忽略以空白字符开头的命令;
ignoreboth:以上两者同时生效;
修改变量的值:(仅对当前shell有效)
NAME=‘VALUE‘
回顾:
FHS、命令及bash命令历史
FHS:linux的根文件系统是有特定格式标准,由某种层级结构组成的,其中有好多个一级子目录,任何一个程序都有四部分组成,这四个部分有
二进制程序文件bin,通常安装操作系统自身需要的
库文件lib,
配置文件etc ,
帮助文件usr
普通用户家目录home,
管理员的家目录root,
放引导文件boot,
挂载点media,mnt。
两个虚拟文件proc,sys
临时文件tmp,
为服务提供数据srv,
独立的文件opt
设备目录,dev
usr下可以有很多二进制程序,独立的用来专门提供全局共享的只读文件路径,经常用来安装程序
bin,sbin,lib,lib64,share。local。。
var几个存放文字会经常发生变化
cache缓存,lib,log,。。。
命令:which,whereis,who,w,alias,unalias
命令历史:history
文件类型:-,d,b,c,l,p,s
linux基础知识
bash的基础特性:
命令补全:
shell程序在接收到用户执行命令的请求,分析完成之后,最左侧的字符串会被当成命令;
命令处理机制:
查找内部命令:
根据PATH环境变量中设定的目录,自左而右逐个搜索目录下的文件名;
给定的打头字符串如果能唯一标识某命令程序文件,则直接补全;如果不能唯一标识某命令程序文件,再击tab键,会给出列表;
路径补全:
在给定的起始路径下,以对应路径下的打头字串来逐一匹配起始路径下的每个文件;
tab:
如果能唯一标识,则直接补全;
否则,再一次tab,给出列表;
目录管理类的命令:
mkdir,rmdir,
mkdir:make directory
mkdir [OPTION]... DIRECTORY...
重要: mkdir /tmp/x/y/z
注意: z(机名),方为命令的作用对象;机名之前的路径必须要存在;
-p:自动按需创建父目录;
-v:verbose,显示详细过程;
-m MODE(选项参数):在创建目录时设置权限的;否则默认权限
rmdir:remove empty director
仅用于删除空目录
rmdir [OPTION]... DIRECTORY...
-p:删除某目录后,如果其父目录为空,则一并删除
-v:显示过程;
问题1:如何创建/tmp/x/y1,/tmp/x/y2,/tmp/x/y1a,/tmp/x/y1/b?
问题2:如何创建a_c,a_d,b_c,b_d:
mkdir {a,b}_{c,d}
问题3:创建如下目录结构:
/tmp/mysysroot/
bin
sbin
etc
sysconfig
network_scripts
usr
bin
sbin
local
bin
sbin
etc
lib
lib
lib64
var
cache
log
run
/tmp/mysysroot
├── bin
├── etc
│ ├── sysconfig
│ └── network-scripts
│
│
├── sbin
├── usr
│ ├── bin
│ ├── lib
│ ├── lib64
│ ├── local
│ │ ├── bin
│ │ ├── etc
│ │ ├── lib
│ │ └── sbin
│ └── sbin
└── var
├── cache
├── log
└── run
bash的基础特性之一:命令行展开
~:自动展开为用户的家目录,或指定的用户的家目录;
{}:可承载一个以逗号分隔的路径列表,并能够将其展开为多个路径;
例如:/tmp/{a,b},相当于/tmp/a /tmp/b
centos7:安装tree命令;yun install tree
tree命令:
tree [option] [directory]要显示的层级;
-L level:指定
bash的基础特性:命令的执行状态结果
命令执行的状态结果:
bash通过状态返回值来输出此结果:
成功:0
失败:1-255
命令执行完成之后,其状态返回值保存于bash的特殊变量$!中;
注意:立即获取,只能获得最近一条的状态结果
命令正常执行时,有的还会有命令返回值;
根据命令及其功能不同,结果各不相同;
命令的状态返回值(状态结果),命令自己的运行结果
状态结果:看返回值
命令结果:执行的命令
可以引用命令的执行结果:
$(COMMAND)
或者`COMMAND` 反引号,引用命令的执行结果
bash的基础特性:引用
强引用:‘‘ 其内部字串直接显示
弱引用:"" 变量会替换,会显示变量中所存储的值
命令引用:`` 建议使用$()
bash的基础特性:快捷键
ctrl+a:跳转至命令行首
ctrl+e:跳转至命令行尾
ctrl+u:删除行首到光标所在处之间的所有字符
ctrl+k:删除光标所在处到行尾的所有字符
ctrl+l:清屏,相当于clear(目前不能用)
linux文件查看及管理
文本查看类命令:cat,tac,head,tail,more,less
分屏查看命令:more和less
cat /etc/rc.d/init.d/functions 记住这个路径
more命令:
more FILE
特点:翻屏至文件尾部后自动退出;
less命令:
less FILE
head命令:
查看文件的前n行:
head [options] FILE
-n #
-#
tail命令:
查看文件的后n行:
tail [options] FILE
-n #
-#
-f:查看文件尾部内容结束后不退出,跟随显示新增的行;
stat命令:
stat - display file or file system status
stat FILE...
文件:两类数据
元数据:metadata
数据:data
区别意思:一本书前面有索引,索引帮助快速检索,索引也需要占用空间,目录就是元数据,正文才叫数据;
时间戳:
访问时间Access: 2016-07-29 13:12:46.140365682 +0800
更改时间Modify: 2016-07-29 13:12:43.255365765 +0800
最近改动Change: 2016-07-29 13:12:43.255365765 +0800
stat看到的是元数据,cat看到的是数据
touch命令:
change file timestamps
touch [OPTION]... FILE...
-c:指定的文件路径不存在时不予创建;
-a:仅修改access time
-m:仅修改modify time
-t STAMP
[[CC]]YY]MMDDhhmm[.ss]
文件管理类命令及变量基础
文件管理工具:cp,mv,rm
cp命令:copy
源文件;目标文件;
文件复制,新建一个文件,复制文件的数据,不是
元数据
单源复制:cp [OPTION]... [-T] SOURCE DEST(目标目录) 单个文件(文件或目录)
多远复制:cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...
targe目标之一
单源复制:
如果DEST不存在:则事先创建此文件,并复制源文件的数据流至DEST中;
如果DEST存在:
如果DEST是非目录文件:则会覆盖目标文件;
如果DEST是目录文件:则现在DEST目录下创建一个与源文件同名的文件,并复制其数据流至目标文件
cp只能复制文件,不能复制目录
多源复制:cp [OPTION]... SOURCE... DIRECTORY
cp [OPTION]... -t DIRECTORY SOURCE...
如果DEST不存在:错误;
如果DEXT存在:
如果DEST是非目标文件:错误;
如果DEST是目录文件:分别复制每个文件至目标目录中,并保持原名;
-i :-interactive,交互式复制,覆盖之前提醒用户确认
-f:强制覆盖目标文件;
-r:递归复制目录;
-d:复制符号链接文件本身,而非其指向的源文件;
-a:archice,用于实现归档(备份)
--preserv=
mode:权限
ownership:属主和属组
timestamps:时间戳
context:安全标签
xattr:扩展属性
links:符号链接
all:上述所有属性
mv命令 :move
mv 文件 文件
常用选项:
-i:交互式
-f:force
rm 命令:remore
rm [option] file
常用选项:
-i:interactive
-f:force
-r:recursive
删除目录:rm -rf /PATH/TO/DIR
rm -rf / 非常危险,删除根目录
注意:所有不用的文件建议不要直接删除,而是移动至某个专用目录:(模拟回收站)
变量:
命名的内存空间;
变量类型:
字符型
数值型
精确数值型
近似数值型
存储格式、数据范围、参与运算;
8:1000 ,计算机0000 1000
16:10000 0001 0000
ASCII码:
变量的赋值操作:
name=tom 左侧是名字,右侧是值,把值存储名字所指定的内存空间
标签:google keyword manual linux
原文地址:http://11541229.blog.51cto.com/11531229/1831863