Linux的学习之旅
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux的学习之旅相关的知识,希望对你有一定的参考价值。
Linux的文件系统层级结构标准FHS
- /etc=====和主机相关的系统配置文件 edit the configure
- /home===== 用户家目录
- /usr======二层分层的目录。默认是最大的。
- /dev=====设备文件
- /media======挂载点和可移动的设备,
- /mnt=====临时挂载点
- /var=======可变化的数据,
- /lib=====基本共享库和内核模块
- /lib64======
- /boot======静态文件,启动加载器,引导计算机的相关文件
- /root=====root用户的家目录
- /bin/binary======基本二进制命令工具
- /sbin=====基本系统二进制命令工具
- /opt======第三方软件包
- /tmp======临时文件
- /srv======被你的系统服务提供的数据存放在这
- /run======7在/下,6在/var下 是系统运行中的一些数据
- /sys=====存放硬件相关信息
- /proc======= 存放 的是进程信息,对应的是内存数据。内存中的壮态信息。是一个虚拟内存。
Centos7和Centos6的一级目录的区别
centos 7:/run
centos 6:/var/run /lost-found /misc /net /selinux
lost-found=======在6里面,只要是分区下都有这个目录
有点像收容所,比如说系统运行过程中,忽然断电,有些文件因为断电的原因导致它无法识别原来是在哪个目录下,找不着了,不知道自己在哪了。就会回到这个目录
/misc /net=======在7上要装软件包,并不是没有。
systemctl start autofs======只是临时启动,手工启动
systemctl enable autofs======开机时自动启动
/misc下的cd目录也可以挂光盘。
/selinux========在7上没有这个目录而已,但功能有
Linux哲学思想
- 一切皆文件
- 小型单一用途的程序
- 组合小程序完成复杂任务
- 尽量避免捕获用户接口
- 配置文件保存成纯文本格式
终端Terminal
- 物理终端:系统出故障,单用户壮态, 物理控制台console表示为/dev/console
- 伪终端:用CRT连,Xshell。 /dev/pts/#
- 虚拟终端:一个主机模拟多个终端。默认是1-6. /dev/tty#
- 串行终端:通过串行线连接自己的电脑。(像思科华为连在自己的上机上) /dev/ttyS#
- ……
终端相关命令
tty:显示当前的终端
Whoami命令
whoami: 显示当前登录有效用户
who: 系统当前所有的登录会话
w: 系统当前所有的登录会话及所做的操作
命令帮助
Whatis 显示命令的简短描述
使用数据库
刚安装后不可立即使用
makewhatis | mandb制作数据库
whatis cal 或 man -f cal
如果刚装好系统和刚运行,敲whatis这个命令是不会显示的。要依赖数据库
whatis cmd=======告诉你这个命令是干什么的
数字后带P的和开发相关,运维不用管
whatis要显示命令的简单说明要依赖数据库
内部命令:help COMMAND
man bash
外部命令:
(1) COMMAND --help
COMMAND -h
(2) 使用手册(manual)
man COMMAND
(3) 信息页
info COMMAND
(4) 程序自身的帮助文档
README
INSTALL
ChangeLog
(5) 程序官方文档
官方站点:Documentation
(6) 发行版的官方文档
(7) Google
示例
date--help
Usage:date[OPTION]...[+FORMAT]or: date[-u|--utc|--universal][MMDDhhmm[[CC]YY][.ss]]
- []表示可选项
- CAPS或<>表示变化的数据
- ...表示一个列表
- x |y| z的意思是“x或y或z“
- -abc的意思是-a -b –c
- { } 表示分组
man命令
man命令帮助的文件手册页放在/usr/share/man
几乎每个命令都有man的“页面”
man页面分组为不同的”章节“统称为Linux手册
man命令的配置文件:/etc/man.config | man_db.conf
MANPATH /PATH/TO/SOMEWHERE: 指明man文件搜索位置
man -M/PATH/TO/SOMEWHERE COMMAND: 到指定位置下搜索COMMAND命令的手册页并显示
中文man需安装包man-pages-zh-CN
whereis cmd=======查出命令所在的路径以及man帮助相关文档的路径(是在man的配置文件里查看)
查出的文档是压缩的文件,不能直接打开。用man命令打开时,自动帮你解压缩以文档的形式展现出来。
为什么一敲man就能把帮助打开呢???实际上它打开的是对应的man帮助文档。从一个路径里去搜。
这有一个潜在的问题:将来我们自己手工去装一个三方软件,结果把man帮助放在了自己编写的一个目录下,man帮助就打不开了,自己需要手工的添加一条路径到man的配置文件里去。
man帮助一般查外部命令
外部命令它是磁盘上的一个文件
安装这个外部命令的时候,还会自动安装一些man帮助的文档
当我们man外部命令的时候,是从文档里列出的信息。
man章节
1:用户命令
2:系统调用
3:C库调用
4:设备文件及特殊文件
5:配置文件格式
6:游戏
7:杂项
8:管理类命令
9:Linux内核API
帮助手册中的段落说明:
NAME 名称及简要说明
SYNOPSIS 用法格式说明]
[] 可选内容
<> 必选内容
a | b二选一
{ }分组
...同一内容可出现多次
DESCRIPTION 详细说明
OPTIONS 选项说明
EXAMPLES 示例
FILES 相关文件
AUTHOR 作者
COPYRIGHT版本信息
REPORTING BUGS bug信息
SEE ALSO 其它帮助参考
man 帮助
查看man手册页 man [章节] keyword
列出所有帮助 man -a keyword
搜索man手册 man -k keyword 列出所有匹配的页面
使用whatis数据库
相当于whatis man -f keyword
打印man帮助文件的路径 man –w [章节] keyword
man帮助 /string向下搜索 ?string向上搜索 n同向 N反向
info帮助 n下p上 u向上移一层
命令的历史
命令历史文件保存你输入的命令历史。可以用它来重复执行命令
登录shell时,会读取命令历史文件中记录下的命令~/.bash_history
登录进shell后新执行的命令只会记录在缓存中;这些命令会用户退出时“追加”至命令历史文件中
重复前一个命令有4种方法
!! Ctrl+p !! !-1
语法格式
history [-c] [-d offset] [n]
history -anrw [filename]
history -ps arg [arg...]
- -c 清内存,
- -d n 清除第n个命令
- n 显示最近n条历史
- -a 追加本次 会话新执行的命令到历史文件
- -r 历史文件附加到历史列表,是累加,
- -w 保存历史列表到指定历史文件中
- -n 历史文件未读的行 读到时历史列表中
- -p cmd 内存不记,后面的命令加上单引号命令才执行
- -s cmd 可以做假
命令历史的$环境变量
HISTSIZE:命令历史记录的条数
HISTFILE:指定历史文件,默认为~/.bash_history
HISTFILESIZE:命令历史文件记录历史的条数HISTTIMEFORMAT=“%F %T “ 显示时间
*HISTIGNORE=“str1:str2:…“** 忽略str1命令,str2开头的历史
控制命令历史的记录方式:
环境变量:HISTCONTROL
ignoredups默认,忽略重复的命令,连续且相同为“重复”
ignorespace忽略所有以空白开头的命令
ignoreboth相当于ignoredups, ignorespace的组合
erasedups删除重复命令
export 变量名=“值”
存放在/etc/profile或~/.bash_profile
以上是关于Linux的学习之旅的主要内容,如果未能解决你的问题,请参考以下文章
我的C语言学习进阶之旅解决 Visual Studio 2019 报错:错误 C4996 ‘fscanf‘: This function or variable may be unsafe.(代码片段
我的OpenGL学习进阶之旅NDK开发中find_library查找的系统动态库在哪里?
我的OpenGL学习进阶之旅NDK开发中find_library查找的系统动态库在哪里?
Unity Shader入门精要学习笔记 - 第5章 开始 Unity Shader 学习之旅
我的Android进阶之旅NDK开发之在C++代码中使用Android Log打印日志,打印出C++的函数耗时以及代码片段耗时详情