基本的一些变量 :

将变量内保存的字符内容表示出来用$符号(也可以加上花括号${###})
注意它和命令优先级符号$()(同反向单引号)的区别:一个内容是变量,一个内容是语句。

  • SHELL: 用的shell类型    
  • PS1:命令提示符格式
  • LANG:语言格式 
  • PATH:命令搜索路径 
  • HISTSIZE:内存中输出的历史命令行记录数量(最后的多少行) 保存在/etc/profile
  • HISTTIMEFORMAT:历史命令的时间格式  
  • HISTFILE:历史命令记录的文件路径,默认为~/.bash_history  
  • HISTFILESIZE:历史文件中历史命令行记录数量
  • HISTINGORE:不记录入历史中的变量
  • HISTCONTROL:控制记录历史的格式
  • PWD OLDPWD:当前和上一个目录

基本的一些目录,文件等等的位置还有用法:

  • /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:命令行界面预登陆(登陆前)显示的字符,可以用man agetty查询格式
  • /etc/profile:可以修改历史命令行记录数量 HISTSIZE  
  • ~/.bash_history:存储当前保存的历史命令行记录默认文件
  • /usr/share/man:man帮助文件目录
  • /usr/share/doc:安装的软件的说明文档目录
  • /etc/os-release:linux发行版本的信息
  • /etc/centos-release:centos发行版本信息
  • /etc/DIR_COLORS:文件颜色设置

    触发对系统设备的扫描,可以发现新装的硬盘,无需要重启机器,最好定义别

echo '- - -' > //sys/class/scsi_host/host0/scan
echo '- - -' > //sys/class/scsi_host/host1/scan
echo '- - -' > //sys/class/scsi_host/host2/scan

Linux的哲学思想:

  1. 一切都是一个文件(包括硬件)
  2. 小型,单一用途的程序
  3. 链接程序,共同完成复杂的任务
  4. 避免令人困惑的用户界面
  5. 配置数据存储在文本中

Linux的目录解释:

/根分区

/boot:引导目录(给它单独分一个区最好),linux内核就在里面

/home 家目录:

多个账号的目录就放在这里面,比如/home/zhang(有些环境中建议将家目录也独立一个分区)

/root:是root的家目录

它不在/home里面,直接在根下面

/run:运行时生成的文件

/usr:类似根目录,二级根目录

/bin:二进制可执行程序,普通用户用

注意:centos7里/bin和 /usr/bin已经是同一个目录了,只不过是一个链接

/sbin:二进制可执行程序,管理员用

/lib:各种程序的库目录

/lib64

上面四项在centos7中,根目录下 /### -->/usr/### 中,相当于同一个,只是一个软链接

/var:变化的数据

比如缓存数据,数据库数据,网页文件等

/media:媒体,主要用于外围设备

比如光盘就挂载在这下面

/proc:内存中和进程相关的数据和信息

/sys:内存中和硬件相关的数据和信息

因为它俩都在内存中,是个虚拟的目录,不在硬件上,所以里面的数据关机就会丢失

/dev 硬件目录:

/dev/sda /dev/sdb .... 多个硬盘的表示

/dev/sda1 /dev/sda2 .... 一个硬盘的分区

注意:

主分区:一个硬盘,最多有四个主分区(MBR格式),不能再划分为更小的分区了 编号:1--4

扩展分区:可有可无,一块硬盘最多一个,但是如果有了它,和主分区加起来也不能超过4个
主分区+扩展<=4,可以划分更小分区(逻辑分区)编号1--4

逻辑分区:编号5以上,其中扩展分区包含着逻辑分区

/dev/zero:零,它是个逻辑上的分区
/dev/null:空,同上,可以看做黑洞,回收处
/dev/sr0:光盘

18:57[root@centos7 /etc/profile.d]# ls /dev/sda*
/dev/sda  /dev/sda1  /dev/sda2  /dev/sda3  /dev/sda4  /dev/sda5
19:08[root@centos7 /etc/profile.d]# ls /dev/zero
/dev/zero
19:08[root@centos7 /etc/profile.d]# ls /dev/null
/dev/null
19:08[root@centos7 /etc/profile.d]# ls /dev/sr0
/dev/sr0

/etc 配置文件:

相当于windows下的注册表,不能和根分开,不能独立分区

/data:

自己规划的一个文件目录,希望独立出来一个分区用来存放用户的数据

swap:

它是一个用分区方式来模拟出来一个虚拟内存,像windows里面的页面文件,它并不是一个文件目录,一般分物理内存的2倍左右。

kdump:

这个其实不算分区,主要是为了崩溃的时候存储错误信息用的,看情况自己需要不需要。

更多待更新补充中...

挂载的概念:

mount:就是说把一个分区挂载到一个目录(或者说目标文件夹)上, 比如说把硬盘 sda1分区挂载到 /boot 启动目录上 ,windows上也有挂载的概念。

 /boot  <==  /dev/sda1

但不是所有的目录都可以当做挂载点,比如说 /etc 目录,它不能独立作为一个分区出来,必须和根目录/ 在一起,但是 根分区/ 必须独立挂载一个分区。

 /   <==  /dev/sda2

这样的话根分区/就挂载到一块硬盘的第二个分区,文件就会放在这里面,但是/boot已经挂载到1分区上,所以启动文件会在1分区上面。

装机部分注意事项:

  1. 装机分区的时候至少要把 /boot 根/ /data swap 这4块部分给挂载独立分区
    其他的看情况而定,分块格式老板ext4,新版用xfs
  2. 装机后快照一下,最好直接考盘备份也行。
  3. 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 则还可以查看当前各个终端用户的操作

image

  • shell:也被称为系统编译器(计算机中均为二进制0101存储数据,必须用编译器将人类能理解的字符翻译为机器用的0101底层指令)
    它是linux下的一种交互式接口,也可以用来编程脚本。
    因为开源,所以有很多种shell。linux主要用bash shell, 在sh上的升级版。
    可以用 echo ${SHELL} 来查询本机所用的shell 。(shell大写,花括号可以不敲入)可以用 cat /etc/shells查看本机所装的所有shells.
    不同的shell命令有些不一样,shell集成的命令都是内部命令。

image

  • 内部命令和外部命令,外部命令的速度很快是因为有搜索路径,存储在PATH变量中,可以用echo $PATH 查看。
     优先级:别名》内部命令》hash表存储》外部命令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),路径和文件名补全。

image

  • 命令的格式:

image