linux系统方面的知识
Posted N!CE波
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux系统方面的知识相关的知识,希望对你有一定的参考价值。
1、什么是Linux?
组成部分:硬件、内核、lib库、应用程序
硬件:工作中真正工作的组成部分是硬件
linux内核(kernel):管理硬件
Linux团队管理的版本
lib库:封装内核接口,提供系统调用
应用程序:和用户交互,提供某项特定的服务
GNU:在linux内核之上研发了很多常见的应用程序,并且把这些应用程序开源了
2、Linux发行版?
RedHat:按照特定的格式将linux内核、lib库、应用程序,组成一个操作系统,redhat发行版
CentOs:6.6
Ubuntu:
3、Linux哲学思想:
1、Linux中一切皆文件
2、Linux将一个大型需求,分解成非常多的的小需求,有专门的小程序去完成每个小需求,一个小程序只干一件事情
4、什么是shell?
可以简单理解为shell是命令解析器,将你输入的命令解析并传达给内核
shell是用户接口(用户和操作系统之间的接口,)
shell是应用程序,shell是个特殊的应用程序,所有运行在内核之上的程序都称之为应用程序
shell是一个特殊的交互式实用程序。它为用户提供了一种启动程序、管理文件系统中的文件和管理运行在Linux系统上的进程的方式。
shell包含一组内部命令,此命令可以用来控制文件复制、文件移动、文件重命名,以及显示当前运行在系统上的程序等操作。除了内部命令外,shell还允许命令在命令提示符处输出程序的名称shell可以将程序名称传递到内核以启动该程序.
命令分类:
内部命令:
外部命令:
命令提示符:
[\[email protected]\h \W]\$
配置命令提示行的样式:PS1 =
\d 显示日期,格式为"日 月 年"
\h 本地主机名
\H 完整的域名
\t 显示时间;为24小时制,格式为"小时:分钟:秒"
\T 显示时间;为12小时制,格式为"小时:分钟:秒"
\u 当前用户名
\w 当前工作目录
\W 当前工作目录的绝对路径
路径:
根目录:/
/root/test
/etc/text
/bin/text
cd test
cd /root/test
相对路径:从当前路径开始查找
绝对路径:从根路径开始查找
命令格式:
命令 命令选项 命令参数
命令:程序
命令选项:指定怎么来运行这个命令
长选项:--
短选项:-
命令参数:指定这个程序作用再那个对象上
如何获取命令帮助:
内部命令的帮助:help 命令
外部命令的帮助:1、命令 --help
2、man 命令
帮助手册:
NAME
SYNOPSIS
DESCRIPTION
OPTIONS
EXAMPLES
AUTHOR
BUGS
SEE ALSO
SYNOPSIS:
[]: 可选内容
<>:必选内容
a|b: 从中选一;
...: 同类的内容可出现多个
使用手册:是压缩格式文件的,且有章节之分
1:用户命令;
2:系统调用;
3:C库函数;
4:设备文件及特殊文件;
5:文件格式;
6:游戏;
7:杂项;
8:管理工具及守护进程;
man手册的存放位置:/usr/share/man
man命令自己有配置文件:/etc/man.config
MANPATH /path/to/somewhere: 定义man手册查找路径;
-M /path/to/somewhere: 指定查找帮助手册的路径列表
man命令操作方法:
翻屏:
空格键:向文件尾部翻屏;
b: 向文件首部翻屏;
回车键:向文件尾部翻一行;
k: 向文件首部翻一行;
Ctrl+d:向文件尾部翻半屏;
Ctrl+u: 首部
G:跳转至文件尾部
1G:跳转至第一行;
#G:跳转至第#行;
文本搜索:
/keyword: 搜索指定字串;不区分字符大小写;从文件首部向文件尾部方向进行查找;
n: 下一个
N:前一个
?keyword: 搜索指定字串;不区分字符大小写;从文件尾部向文件首部方向进行查找;
n: 下一个
N:前一个
退出:q
Linux的文件系统:
/bin: 存储基本的用户命令
/boot: boot loader相关的静态文件,内核以及ramdisk文件
/dev: 设备相关的文件
/etc: 主机特有的系统配置文件
/home: 用户的家目录(可选)
/lib: 基本的共享库文件,以及内核模块文件
.so, .ko
/lib64: 64bits系统的基本共享库文件
/media:可移除设备的挂载点
/mnt:可挂载文件系统的临时使用的挂载点
/opt:第三方应用程序的安装位置
/root: 管理员root用户的家目录
/sbin: 系统管理相关的二进制程序
注意:执行设定操作时,此目录下的命令仅具有管理权限的用户可执行
/srv: 当前系统的服务相关的数据
/tmp: 临时文件目录,具有特殊权限设定
/usr:可被共享的、只读数据的存放位置
bin: 二进制程序
include: C程序用到的头文件
lib: 库文件
lib64: 库文件
local: 本地程序目录结构
share: 独立于平台架构的数据
sbin: 管理程序
src: 源代码目录
/var:可变文件目录
cache: 应用程序的缓存数据
lib: 可变的状态信息数据
local: 为/usr/local下的程序准备的可变数据目录
lock: 锁文件目录
log: 日志文件
run: 运行进程时相关的数据,如守护进程的PID文件
tmp: 系统重启之后需要留存的临时文件目录
/proc: 内核及进程相关信息的虚拟文件系统接口
伪文件系统:本身不是文件系统,但输出为文件系统
/sys: 伪文件系统,硬件设备相关信息的虚拟文件系统接口
Linux下应用程序的组成部分:
二进制程序:bin, sbin
库文件:lib, lib64
配置文件:etc
帮助文件:/usr/share/man, /usr/local/share/man
Linux下的文件类型:
-:普通文件
d: 目录文件
b: block,块设备文件
随机访问设备
c:character, 字符设备文件
线性访问设备
l: 软链接文件
p: pipe, 命名管道
s: socket,套接字文件
环境变量:
PS1:定义命令提示符格式:
命令:
type:判断一个程序是内部命令还是外部命令
cd:切换工作路径
pwd:显示当前工作路径
ls:显示当前或指定目录的下的文件及目录
-a:显示所有文件,包括影藏文件
-A
-l: 长格式列表,显示文件属性信息
-rw-r--r-- 1 root root 1619 Nov 9 22:55 /etc/passwd
-: 文件类型
rw-r--r--:文件访问权限
1:文件被硬链接的次数
root root: 文件的属主(owner),文件属组(group)
1619:文件大小,默认单位为Bytes
Nov 9 22:55 文件最近一次被修改的时间;
/etc/passwd 文件名
-d:显示目录本身的信息
-h: human-readable,对文件大小做单位换算以实现易读
-R: 递归
-i:显示文件inode号
cat:显示文件内容
cat [FILE]...
-n: 给输出的内容加上行号;
-e: 显示非打印字符及行结束符$
文件内容类型查看命令:
file [FILE]...
判断文件内容的类型
回显命令:echo
echo [options] [argus]
-n: 不进行换行;
-e: 让控制符生效;
\n: 换行
echo ${VAR_NAME}:显示变量的值
8、bash基础特性之globbing:
文件名通配:元字符
*: 匹配任意长度的任意字符
pa*, *pa*, *pa, p*a, *p*a
?:匹配任意单个字符
p?
思考:
pad: p?d, p*d
pd: p?d, p*d
paad: p?d, p*d
[]:匹配指定集合内的任意单个字符
[0-9]:任意数字
[a-z]:任意小写字符
[A-Z]:
[0-9a-zA-Z]
p[mn]*
[^]:匹配指定集合外的任意单个字符
p[^m-z]*
字符集合:
[:space:] 所有的空白字符, [[:space:]]
[:punct:] 所有标点符号
[:lower:] 所有小写字母
[:upper:] 大
[:digit:] 所有数字
[:alpha:] 所有字母
[:alnum:] 所有字母和数字
练习1:显示/var目录下所有l开头,以一个小写字母结尾,且中间出现一位数字的文件或目录;
# ls -d /var/l*[0-9]*[a-z]
# ls -d /var/l*[[:digit:]]*[[:lower:]]
练习2:显示/etc/目录下,以任意一位数字开头,且以非数字结尾的文件或目录;
# ls -d /etc/[0-9]*[^0-9]
练习3: 显示/etc/目录下,以非字母开头,后面跟了一个字母及其它任意长度任意字符的文件或目录;
# ls -d /etc/[^[:alpha:]][[:alpha:]]*
练习4:复制/etc/下,所有以m开头,以非数字结尾的文件或目录至/tmp/mageedu目录中;
#cp -r /etc/m*[^0-9] /tmp/mageedu
练习5:复制/etc目录下,所有以.d结尾的文件或目录至/tmp/mageedu2目录中;
#cp -r /etc/*.d /tmp/mageedu2
练习6:复制/etc目录下,所有以.conf结尾,以m,n,r,p开头的文件或目录至/tmp/mageedu3目录中;
#cp -r /etc/[mnrp]*.conf /tmp/mageedu3
9、目录管理类命令:cd, pwd, ls
mkdir, rmdir
mkdir:
mkdir [options] DIRECTORY ...
-v: verbose,详细信息
-p: parent,级联创建目录,指定的目标目录的父目录如果不存在,则先创建之;
aa/bb
rmdir: 删除空目录
rmdir [options] DIRECTOTRY ...
-v
-p:
问题1:如何创建/tmp/x/y1, /tmp/x/y2, /tmp/x/y1/a, /tmp/x/y1/b, /tmp/x/y2/a, /tmp/x/y2/b
mkdir -pv x/{y1,y2}/{a,b}
mkdir -pv x/y1/a
mkdir -pv x/y1/b
mkdir -pv x/y2/a
mkdir -pv x/y2/b
问题2:如何创建a_d, a_c, b_d, b_c四个目录?
# mkdir a_d a_c b_d b_c
10、 文件管理工具:cp, mv, rm
cp 选项 源文件 目标位置
cp 源文件 目标文件
cp file1 file2
存在
不存在
cp 源文件 目录
cp 源目录 目录
cp的常用选项:
-r: 复制目录时实现递归复制
-d: 不跟随符号链接文件指向的源文件,即复制链接文件本身而非其指向的文件
-a: 相当于-dr
-i: interactive, 目标文件存时,提醒用户是否执行覆盖(y/n);
-f: force,强行覆盖;
注意:如果源文件是符号链接文件,则复制时会拷贝链接指向的源文件的内容;
文件移动:mv
mv [OPTION] SRC DEST
mv [OPTION] SRC... DIRECTORY
mv 源文件 目标文件
源文件 目录
源目录 目标目录
-i:interactive
-f: force
文件删除:rm
rm [OPTION] FILE...
-r: 递归删除目录及其内部的所有文件;
-f: 强制删除
注意:建议先移动至某专用的目录下;过一段时间再清理;
以上是关于linux系统方面的知识的主要内容,如果未能解决你的问题,请参考以下文章