学习Linux前必备专业知识

学习Linux前必备专业知识

glibc库文件

应用程序

内核

硬件

GNU提供程序/Linux内核

POS库兼容 Portable Operating System

POSIX Linux 遵循POSIX

API规范  Application ProgramInterface

ABI:Application Binary Interface

CPU

Redhat 针对特定平台将Linux内核+GNU+安装程序 

      靠服务赚钱

      Redhat 6.0

      补丁

      桌面版 redhat 6.0 8.0 9.0 2003年不见了给了这个组织 Fedora 最新版本17 支持新功能 支持新设备为目的

      企业版 Redhat Enterprise Linux 3  稳定压倒一切

              RHEL3

      

CentOS 社区企业级操作系统 Community Enterprise OS  延迟RedHat一个月

Debian 稳定社区维护 Ubuntu在Debian基础上二次研发 Mint

SUSE 属于Novel公司 欧洲统治地位

LFS Linux From Scratch 从0安装linux

Linux内核版本 https://www.kernel.org/

Redhat版本

Linux 程序版本

  ALpha内测版

  Beta版

   RC:release candidate

  3.5.4  重大变化 分支功能变化 修复bug

         

 1994年 1.0

        2.0

        2.2 大众

        2.4

        2.6  支持对称多处理器

        3.0

RHEL 5

RHEL 6

基本法则

1.一切皆文件

2.体积短小且目的单一的程序

3.组合小程序完成复杂任务

4.尽可能避免捕获用户的接口

5.配置数据保存至文本文件

发行商 发行版

文件存放路径 名称 语法格式

软件包管理 有所不同

默认工具有所不同

http://mirrors.163.com/

http://mirrors.sohu.com/

VMWareWorkstation

虚拟机只能支持32位 要想在虚拟机中运行64位虚拟机需要CPU支持虚拟化 物理机可以是32位的

Linux起始课程--引导终端和Shell

物理终端

虚拟终端

Ctrl+Alt+F#(1-6)  RHEL mintetty程序生产虚拟终端 TTY

Shell(应用程序)两大类

   GUI

         Linux是真正可替换的图形界面

         Gnome Linux默认 使用C语言

         KDE   Linux默认 使用C++

         Xface 轻量级的图形界面

   CLI 

      sh

      bash

      ksh

      tcsh

      zsh  

 除了提供命令输入 还能进行编程 将命令组合起来 形成脚本

内核--库--应用程序(服务)

         Linux叫守护进程

         用户进程

shell和输入输出相关用户登录后就是shell 登录前就是终端

严格区分大小写

查看当前启用的终端

echo $SHELL

查看bin下的shell

/bin/csh

能够看到终端

#tty

模拟终端

远程连接过来的 图形界面

Windows的图形界面固化到内核更改界面只是显示风格

第一次在红帽启用图形界面 startx $

工作在虚拟机终端在第七个虚拟终端 Ctrl+Alt+F7

再启动一个图形界面 startx -- :1 $

                   startx -- :2 $

使用ssh 连接就是模拟终端

物理终端  /dev/console

虚拟终端 /dev/tty(1-6)

模拟终端 /dev/pts

图形终端

一切接文件 /dev/keyboard

提示符 #   root用户管理员

      $   普通用户登录

shell为每一个用户提供工作环境

    靠环境变量

    变量是内存空间 命名的空间 echo $SHELL

    可以改变的都在配置文件中 配置文件的值 会存储在变量中

Name=Tom

echo $Name

Name=Jerry

echo $Name

查看变量

printenv

命令

内部命令 shell程序自带的命令

外部命令 在系统的某个路径下 有一个与命令同名的可执行程序

使用type查看命令是内部还是外部命令

type cd

type builtin

type type

文件路径

绝对路径

相对路径

工作目录 当前目录

pwd 显示当前目录  print working directory

Linux文件名称命名方式 除了回车都可以不建议使用空白 / ? * 不要超过255个字符

不考扩展名区分类型

文件和文件夹不能重名

命令 选项

command [options] [arguments]

选项

   短选项 -h -l -s 选项之间使用空格隔开

   短选项命令可以组合 -l -h -lh

   有些命令的短选项可以不带-  通常称作BSD风格的选项 ps aux ,tar xf

   有些短选项需要带参数 -L 512M

  

ls -lh

ls -l -h

ls --help 可以看到长参数和段参数

长选项 --help  , --list

    长选项不能组合

    如果需要参数 长选项的参数通常需要=号  --size=1G

参数:命令的作用对象

   ls /root

   -L 512M

   

如何获取命令帮助信息

  内部命令

    help COMMAND

  外部命令

     COMMAND --help

绝大多数命令都有实验手册

manual使用手册

     man COMMAND

man 手册分章节

1.用户命令

2.系统调用    man 2 read     更改系统语言 export LANG=en

3.和库调用相关

4.特殊文件 /dev/tty1

5.文件格式(命令的配置文件的语法)

man 5 passwd能够看到配置文件

6.游戏相关

7.杂项

8.管理员命令

翻屏操作

向后翻:SPACE键

向前翻:b键

一行

向后:Enter键   或 向下键

向前:k键 或 向上键

退出

q键

搜索

/KEYWORD          从文件首部向尾部搜索

?KEYWORD          从文件尾部向首部搜索

n:next

N:previos   

man fdisk 查看帮助的语法格式

[]可选内容

<>必须指定的内容

|  多选一  a|b|c

… 可以有多个

{}

man date 查看date帮助

设定系统时间 07月10日10点56  2014年

Linux有两个时钟从主板读取时间后 操作系统安排时间

使用date看到的是系统时间

使用hwclock查看主板BIOS上的时间

将硬件时间更改为系统时间

man hwclock

显示日历

Cal 2014

Cal –y

显示2014年3月份日历

清屏 clear

info command

有超链接的文档 是man的补充

Ls /use/share/doc/

Readme  INSTALLATION

最好是找官方网站

关机重启

Poweroff

Reboot 重启系统

Halt 切断电源

man halt

man shutdown

立即关机

shutdown –h now

30秒后关机

shutdown –h 30

在其他终端可以shutdown –c取消 关机

Shutdow  -r 12:00 & 到12点就关机

6分钟后关机

Shutdown –h +6

cd 命令使用

change directory

ls

直接cd

回到用户的home目录

cd ~

cd ~student 可以切换到其他用户的home目录

相对目录

.  当前路径

..

cd ../.. 上级目录的上级目录

cd student/相对路径

cd /student 绝对路径

cd –

当前路径和上一路经来回切换

Echo $PWD两个环境变量会保存上一个路径和当前路径

cd 自己写的脚本必须 ./home/student

cd ./home/student

cd home/stduent

mkdir

rm

ls

   升序

   降序

   显示隐藏文件

Linux所有.开始的文件为隐藏文件

磁盘格式化

格式化的过程 就是将磁盘划分为簇

路径

严格区分大小写

可以使用任意字符除了回车和/

.开头隐藏文件

最长255字符

Linux文件类型

1.普通文件    标识为- f

2.目录文件     标识为 d

3.链接文件 

   软连接 符号连接 快捷方式 标识为l

   硬链接  标识为-

4.特殊文件用于作为硬件设备访问的文件

  块设备 随机 按块进行存取 标识为 b

  字符设备 有前后顺序的 线性的按字符逐个存取的字符设备  标识为c

5.套接字文件 socket 让两个进程进行通信使用软件模拟的设备 标识为s

6.命名管道 pipe  标识为p

查看dev下面的文件

ls :list

-a

-l 长格式

-r 逆序

-R 递归显示

-I 节点号

文件类型 权限 文件硬链接的个数文件的属主 属组文件大小 文件最后一次被修改的时间文件名

文件夹 不大于4K 和文件夹中文件数量和目录数量有关系

想查看目录本身属性

ls –dl /dev

显示子目录中的内容

ls –lR /dev 递归显示

Linux文件结构标准

/bin 二进制,为所有用户使用的可执行程序

/sbin system binaries 系统二进制程序 为管理所用

/boot static files of the boot loader 和系统启动相关的内核和bootloader的存放位置,系统必须能够访问boot目录

/dev 设备文件的存放位置

/etc Host-specific system configuration 主机相关的系统配置

  /etc/X11   X Windows专门为图形界面存放配置的文件的目录

/home 用户主目录(可选的)在home中存放用户名同名的目录

/lib 基本共享库和内核模块 Essential

/media Mount Point for removeable media 为移动设备提供挂载点 光盘和U盘默认挂载点

/mnt 挂载点  第二个硬盘一般挂载到mnt

/opt add-on application softwarepackage   可选的软件安装路径 Oracle默认安装到此

/root 管理员的主目录

/srv data for service provided by this system 服务使用的数据

/tem 临时文件公共场所

/usr 最后一个r read only 不允许更改的目录存放诸系统运行相关的目录   这个目录非常大

/usr/share

/usr/bin     

/usr/sbin

/usr/lib   用户为了某个服务

   第三方应用程序

/usr/local/bin

/usr/local/sbin

/usr/local/lib

/usr/include 包含头文件的路径 应用开发相关的头文件的路径

/usr/src  源程序

/var 变量存放经常变化的文件

/var/spool/  Application spooldata 打印缓冲邮件缓冲

/var/log     系统日志

/var/run  而且往往新安装的程序在运行后也会在/var/run目录下面产生自己的pid文件。

pid文件的内容:pid文件为文本文件,内容只有一行, 记录了该进程的ID。

/var/lock  锁 资源争用都要加 防止多用户同时修改文件  那些进程锁那些文件记录在此

/var/cache  缓存 application cache data 缓存数据

/var/lib  Variable stateinformation 软件的变化状态

/var/mail  存放用户的邮件

伪文件系统关机后这两个文件时空的

/proc存放内核信息已经启动起来的内核信息  定义内核软件功能 TCP/IP协议也在内核中 是否ping 是否启用路由

/sys 内核信息  跟硬件设备相关 磁盘 总线 配置磁盘的调度队列

每一个分区都有

Lost+found

Selinux 红帽常见的两个目录配置Linux安全

文件管理类命令

目录管理

mkdir  

mkdir /tmp/media

mkdir –p /tmp/m/n  先创建m再在m中创建n 参数可以放到前 也可以放到后

mkdir /tmp/m1/n1 –pv 显示创建详细过程

如何实现以下功能

mkdir /tmp/p/a/b

     /tmp/q/a/b

mkdir /tmp/{h,w}/zz/bb

bash: 支持多项式展开 a*(b+c)=ab+ac

mkdir {}

思考:

使用一个命令在 /tmp下创建

etc/init.d  etc/sysconfig  usr/lib  usr/bin  usr/sbin   usr/include var/spool  var/run  proc sys  bin  lib media  mnt

mkdir /tem/{etc/{init.d,sysconfig},usr/{lib,bin,sbin,include},var/{spool,run},proc,sys,bin,lib,media,mnt}

rmdir   只能用于删除空目录

rmdir –p/tmp/m/n/p/q  先删除q 再删除p 再删除n

tree 用来查看目录结构 我的Linux不能用

文件

cp   拷贝文件

cp a b c d 将a b c拷贝到d目录

cp /etc/passwd /tmp/abc

如果abc不存在则将文件passwd拷贝成abc abc父路径存在

如果abc是文件现有abc被覆盖

如果abc是目录将passwd文件将被复制到abc文件夹保留原来的文件名

       cp –r /etc/sysconfig /tmp/  复制目录

man cp

可以看到 –i参数  覆盖时是否提示覆盖

输入alias可以看到默认添加了-i参数

如果打算使用命令本身而不是别名

\cp

Cp命令默认不提示是否覆盖直接覆盖

下面的命令实际上是别名带了-i参数

-r -R 递归复制目录

-p拷贝文件保留文件的原有的权限 属主和时间戳只有管理员可以 普通用户不能保留

创建用户useradd han

修改密码 passwd han

-d 保留文件链接属性

-a 保留所有属性  相当于-dr

mv 移动 文件或 目录

mv /tmp/abc /tmp/abc3

将多个文件移动到一个目录下

目录不能覆盖文件

-i

rm 只能删除文件  remove

rm /tmp/a.txt

rm –r /tmp/d/* 删除d目录下的全部文件和文件夹  不删除d目录

rm –r /tmp/d   删除d文件夹和里面的文件

 

只有管理员能够有别名 

Rm –rf /tmp/* 强制删除tmp目录下的全部文件不提示

\rm –r /tmp/* 直接删除不需确认

Touch 改变时间戳

每一个文件都有三个时间

最近一次访问时间

最近一次修改时间               modify 文件内容变化 内容变了 属性肯定变

最近一次改变时间       元数据 文件属性的改版

文件数据

   数据

   元数据 文件名 大小 权限 属主属组 时间戳

查看文件的元数据 touch一下所有时间戳 都跟着变化

Stat查看文件的元数据

只更改更改时间

更改访问时间

更改访问时间为指定时间–t CCYYMMHH

如果touch的命令不存在会自动创建

-c 如果文件不存在不创建

nano 编辑器

file

用来显示文件类型

查看文件类型

文本查看命令

cat可以显示文本文件内容也可以同时显示多个文本文件内容

Shift+pageup向上翻页

看显卡缓存大小 决定了翻页

cat –n 显示行数

显示非打印字符 换行符

-E

tac

 按行号逆向显示文本内容

More

分屏显示文本内容从前往后翻

More  b键往前翻 到尾部后 不能向前翻

Less

Space

B

Enter

K

/

?

N

N

head  默认显示文件前10行

tail

-n 显示行数

只有tail 有下面的参数

tail –f     follow一直跟踪不再退出 在另一个tty登陆编辑nano name 增加两行 ctrl+O保存 可以看到这个增加两行

Ctrl+C退出tail –f name

文本操作命令

Cut 显示文件中的某些列

:分隔列

创建一个记事本文件student.txt,空格分割,一定是单个空格

显示第1列和第3列

只显示第3列

使用k字符做分隔符

tr

translate 不能带文件  能够把文件中指定字符进行替换

将dv.txt中的内容k替换成空格

替换的字符个数最好一样h替换成A     a替换成A

把小写全部转成大写

删除文本中的a

wc

文本统计命令 

4行 12个单词 63个字符

-l  行数

-w 单词数

-c  字符数

Sort

将行进行排序

降序排序

创建记事本

默认按字符排序

按数值排序  -n指定数值排序

按第3列数值排序 –t 做指定分割符  -k指定按第几个字段排序

Linux下shell环境配置和命令技巧

全局配置

个人配置

BASH

   配置文件

      全局配置文件/etc目录下

        Profile 将配置文件换分为多个 profile.d/*  bashrc

      用户配置文件

        ~目录下   ~/.bash_profile  ~/.bashrc

SHELL 外壳也就是和用户交互面

    bsh   Borne这个人7几年研发的功能很弱 为Unux提供shell

    sh  最安全和稳定

        BSRG,伯克利大学Bill  Joy这个人 研发了csh  和C语言接近 Csh功能比sh功能强大

  ksh 商业版本的 ksh改进了csh 没有流行开来-->GNU组织开发了免费的ksh 比ksh商业版功能少

  GNU:融合了Ksh csh 和sh特性重新开发 bash 学会bash可以操作Linux和Unix

bash

功能 

文件名通配符

命令补全  路径补全

命令历史

命令行编辑

命令行展开 {} 多项式

管道和重定向

命令别名

命令行编辑

光标快速移动

Ctrl+A 快速跳到行首

Ctrl+e 跳转到命令行尾

Ctrl+-->一个一个单词跳转

Ctrl+u快速删光标到行首的字符

Ctrl+k 快速删除光盘到行尾的字符

   Ctrl+l  clear清屏的  Windows下cls

   Ctrl+c取消命令不再执行

命令补全

 内部命令:shell自带的

外部命令:位于某路径下有于命令名相同的可执行程序 /bin  /sbin   /usr/bin  /usr/sbin  /usr/local/bin   /usr/local/sbin

打印当前用户的环境  printenv 显示外部命令

正常执行命令 应该执行下面的命令

查看$PATH命令

命令补全

搜索$PATH变量定义的命令

第一次执行会搜索命令

以后直接从哈希表中搜索  可以看到命令执行了几次hits

移动命令后 再次执行 将会报告找不到文件

查看hash命令 内部命令

查看hash帮助

把WC从hash表中删除

命令加速搜索功能是bash内置功能

-r删除所有缓存

 路径补全

 搜索目录 根据你给出的打头路径进行搜索

cd /etc/

命令历史

  bash 执行的命令 缓存至内存中 正常退出bash  重启后也能看到以前执行过的所有命令

   环境变量 规定命令历史数量

保存在用户的配置文件中

查看历史大小

执行!+行数 标识执行第几条命令

执行!!就执行上一条命令

调用上一条命令的最后一个参数

ESC松开. 

Alt 不松开按. 使用上一个命令最后一个参数 补齐命令

!$可以补齐上一个命令的最后一个参数

环境变量$HISTCONTROL

控制history

 Ignorespace

Ignoredups

ignoreboth

重复的命令 连续重复的命令 只让出现一次

输入history只出现一次

空白字符打头的命令不想记录在

下图 命令前面有空格

输入history也记录下来

将这个参数设置为忽略以空格开始的命令

history不记录以空格开始的命令  但记录重复的命令了

忽略空格开头的命令消除重复的命令

history前面空格不记录在历史记录中 重复命令只记录一个

以下命令清除全部历史记录

 helphistory

-c 清空历史记录

-w 保存缓存中的历史命令保存到历史文件

-a 附加历史命令–w覆盖历史文件

-d 4 删除第4条

将缓存的命令写入历史文件

文件通配符

glob通配符

特殊字符,元字符不表示字符的表面意义 而是能够匹配符合指定特征的字符串

*  任意长度字符 a

? 匹配任意单个字符

[]指定范围内的任意单个字符

 

匹配a-z之间任意一个字符

中间是1-9的数字文件名

文件名中间有空格

有专门的方法标识特定字符

man 7 glob

[[:alpha:]] = [a-zA-z]

[[:digit:]] == [0-9]

[[:lower:]] == [a-z]

[[:upper:]] == [A-Z]

[[:alnum:]] == [a-zA-Z0-9]

[[:space:]] ==  空格

[^a-b] 除了a到b 之外的任意单个字符

[^a-z] = [^[:lower:]]

猜你喜欢

转载自blog.csdn.net/qq_39507327/article/details/80919197
今日推荐