基本的一些变量 :
将变量内保存的字符内容表示出来用$符号(也可以加上花括号${###})
注意它和命令优先级符号$()(同反向单引号)的区别:一个内容是变量,一个内容是语句。
SHELL: 用的shell类型
PS1:命令提示符格式
LANG:语言格式
PATH:命令搜索路径
HISTSIZE:内存中输出的历史命令行记录数量(最后的多少行) 保存在/etc/profile
HISTTIMEFORMAT:历史命令的时间格式
HISTFILE:历史命令记录的文件路径,默认为~/.bash_history
HISTFILESIZE:历史文件中历史命令行记录数量
HISTINGORE:不记录入历史中的变量
HISTCONTROL:控制记录历史的格式
基本的一些目录,文件等等的位置还有用法:
/proc/meminfo :内存信息位置 可用cat /proc/meminfo
/proc/cpuinfo:CPU信息
/proc/partitions:分区信息
/etc/shells :本机所装的shells 可用cat /etc/shells查看
/etc/profile.d/###.sh:开机存入内存,控制环境变量
> 写在这里可以更改系统提示符PS1
> 还可以更改历史命令的格式HISTTIMEFORMAT,
> 还有就是不记录历史的忽略变量HISTIGNORE
> 以及HISTCONTROL,HISTFILESIZE
> > 注意:这个###.sh是自己建立的文件,环境参数也可以写在/etc/profile 或者 ~/.bash_profile中,但有可能影响其他内容,所以最好自己建一个。/etc/bashrc:整机配置文件,可以存入alias别名信息,整机有效
~/.bashrc:当前用户家目录下的配置文件,可以存入alias别名信息,只对当前用户有效(~代表当前用户家目录)
/etc/motd :命令行界面登陆后欢迎界面提示字符保存文件
/etc/issue:命令行界面预登陆(登陆前)显示的字符
/etc/profile:可以修改历史命令行记录数量 HISTSIZE
~/.bash_history:存储当前保存的历史命令行记录默认文件
/usr/share/man :man帮助文件目录
/etc/os-release:linux发行版本的信息
/etc/centos-release:centos发行版本信息
Linux的哲学思想:
- 一切都是一个文件(包括硬件)
- 小型,单一用途的程序
- 链接程序,共同完成复杂的任务
- 避免令人困惑的用户界面
- 配置数据存储在文本中
Linux的目录解释:
/根分区
/home 家目录:
多个账号的目录就放在这里面,比如/home/zhang(有些环境中建议将家目录也独立一个分区)
/dev 硬件目录:
/dev/sda /dev/sdb .... 多个硬盘的表示
/dev/sda1 /dev/sda2 .... 一个硬盘的分区
注意:
主分区:一个硬盘,最多有四个主分区(MBR格式),不能再划分为更小的分区了 编号:1--4
扩展分区:可有可无,一块硬盘最多一个,但是如果有了它,和主分区加起来也不能超过4个
主分区+扩展<=4,可以划分更小分区(逻辑分区)编号1--4
逻辑分区:编号5以上,其中扩展分区包含着逻辑分区
/etc 配置文件:
相当于windows下的注册表,不能和根分开,不能独立分区
/data:
自己规划的一个文件目录,希望独立出来一个分区用来存放用户的数据
swap:
它是一个用分区方式来模拟出来一个虚拟内存,像windows里面的页面文件,它并不是一个文件目录,一般分物理内存的2倍左右。
kdump:
这个其实不算分区,主要是为了崩溃的时候存储错误信息用的,看情况自己需要不需要。
更多待更新补充中...
挂载的概念:
mount:就是说把一个分区挂载到一个目录(或者说目标文件夹)上, 比如说把硬盘 sda1分区挂载到 /boot 启动目录上 ,windows上也有挂载的概念。
/boot <== /dev/sda1
但不是所有的目录都可以当做挂载点,比如说 /etc 目录,它不能独立作为一个分区出来,必须和根目录/ 在一起,但是 根分区/ 必须独立挂载一个分区。
/ <== /dev/sda2
这样的话根分区/就挂载到一块硬盘的第二个分区,文件就会放在这里面,但是/boot已经挂载到1分区上,所以启动文件会在1分区上面。
装机部分注意事项:
- 装机分区的时候至少要把 /boot 根/ /data swap 这4块部分给挂载独立分区
其他的看情况而定,分块格式老板ext4,新版用xfs - 装机后快照一下,最好直接考盘备份也行。
- Ubantu装机别忘了装openssh sever,不然无法远程控制。用空格别用回车。
一些零碎基本知识点:
- 命令提示符 root用户为#,普通用户为$ ,root账号家目录为 ~ . 命令提示符格式可以更改 ,存储在变量PS1(大写)中.
echo $PS1
PS1="\[\033[01;35m\]\A[\u@\h \w]\\$\[\033[00m\] "
紫色高亮显示时间,如果只在PS1修改,仅仅是内存中存入,开机无法存入,必须写入文件中,后缀必须sh,文件名可以自己写。
/etc/profile.d/####.sh
- 切换图形接口界面和命令行接口界面 ctrl+alt+F1,F2,F3,F4
相当于增加了多个终端,且每个终端都可以登录同一个账号或者不同账号,linux天生支持多用户登陆。
但是要注意它并没有关闭图形界面或者任何界面,他仅仅是增加了一个终端。 - 图形界面的右下角有4个工作区域(centos7),centos6有俩。
- linux里面的root和user的权限不是看名字决定的,而是看编号名决定,管理员id都是0,user不是0. 可以用 id -u (id -u zhang) 来查看用户ID.
- 终端:不论用什么界面登陆都需要一个终端。远程基本是虚拟终端/dev/pts/# ,机上基本是/dev/tty#. 可以用tty指令来查看
whoami 可以查看当前账户
who am i可以查看当前账户和终端号等详细信息
who 可以查看当前所有终端和账户信息
w 则还可以查看当前各个终端用户的操作
- shell:也被称为系统编译器(计算机中均为二进制0101存储数据,必须用编译器将人类能理解的字符翻译为机器用的0101底层指令)
它是linux下的一种交互式接口,也可以用来编程脚本。
因为开源,所以有很多种shell。linux主要用bash shell, 在sh上的升级版。
可以用 echo ${SHELL} 来查询本机所用的shell 。(shell大写,花括号可以不敲入)可以用 cat /etc/shells查看本机所装的所有shells.
不同的shell命令有些不一样,shell集成的命令都是内部命令。
- 内部命令和外部命令,外部命令的速度很快是因为有搜索路径,存储在PATH变量中,可以用echo $PATH 查看。
优先级:别名》内部命令》外部命令》直接写地址
内部命令速度快,优先级高,如果有一个外部命令和它重名,也是先执行内部命令。 enable 或者 help可查看内部命令
外部命令第一次执行是按照PATH来寻找,如果找到了,第一次执行后就把位置存在内存中了(缓存),之后就不再寻找了,这个缓存便存储在hash表中,一但注销便清空hash表,hash本身也是一个命令 - 别名 alias ~/.bashrc(只对当前用户) /etc/bashrc(所有用户)
- 硬件时间和系统时间,时区
- 切换工作模式init: init 3:字符界面 init 5:图形界面 init 0 :关机 init 6:重启
- screen多用户共同连接工作,远程操作防掉线(这个功能在工作中很常用)或者多用户相互帮助操作。 需要先安装 找到光盘挂载点 然后用 rpm -ivh ........Packages/screen
注意:必须是连接的同一台电脑,同一个用户账户 - TAB按键用来补全,一级命令补全,子命令补全(centos7),路径和文件名补全。
- 命令的格式:
原文地址:https://blog.51cto.com/14228129/2360323