Linux入门攻坚——1、入门基础知识初识

两个接口:
        ABI:Application Binary Interface  (不可跨平台,针对特定平台生成的二进制)
        API:Application Programming Interface  (跨平台可移植,源代码)

linux内核:The Linux Kernel Archives 

指令运行的模式:
        用户空间:user space,us
        内核空间:system space

CPU指令:有普通指令和特权指令,特权指令只能由内核空间使用

计算机结构:硬件——>操作系统(内核)——>库文件——>应用程序

硬件之上,是操作系统,linux中一般叫内核,内核对硬件进行抽象,对上层提供使用接口,这个接口叫做系统调用(system call),这个调用还是太底层,即使用还是不太方便,便有了对系统调用的再次封装,形成库,应用程序可以基于库文件进行编程,也可以直接基于系统调用编程。应用程序对特权指令的使用,只能通过调用系统调用接口,由内核执行。

运行程序格式:
        Windows: EXE,dll(dynamic link library)
        linux: ELF,so(shared object)   Executable and Linkable Format

编程语言:
        汇编语言:微码编程,系统中与硬件相关的特有代码、驱动程序开发等
        高级语言C/C++:系统级应用,如操作系统、驱动程序、大型数据库等
        高级语言Java、python等:应用程序

Linux的发行版:
        slackware:——>suse ——>opensuse
        debian:——>ubuntu ——>mint
        redhat:
                ——>rhel:redhat enterprise linux
                ——>fedora:
                ——>centos:
        ArchLinux:
        Gentoo:
        LFS:linux From scratch

程序包管理器:
        rpm:RHEL,Fedora、S.u.S.E,CentOS
        dpt:Debian,Ubuntu

Linux哲学思想:
        1、一切皆文件:几乎所有资源,包括硬件设备都组织为文件格式
        2、由众多单一目的小程序组成,一个程序只实现一个功能,而且要做好。组合小程序完成复杂任务。
        3、尽量避免跟用户交互;目标:实现脚本编程,以自动完成某些功能
        4、使用纯文本文件保存配置信息;目标:使用一款文本编辑器即能完成系统配置工作

获取CentOS发行版:
        http://mirrors.163.com/  网易开源镜像站
        https://developer.aliyun.com/mirror/    阿里巴巴开源镜像站
        http://mirrors.sohu.com/   搜狐开源镜像站

登录Linux:
        root/passwd
        # startx &       启动图形界面

终端:用户与主机交互,必然用到的设备。
        历史渊源:大型机时,主机很贵,不可能人手一台,所以主机提供了分屏器,有很多接口,一个接口可以连接上显示器和键盘,这个就像一个人完全独占主机一样。这就是终端。

        物理终端:直接接入本机的显示器和键盘设备,也叫:console,控制台。/dev/console
        虚拟终端:附加在物理终端之上的以软件方式虚拟实现的终端,CentOS 6默认启动6个虚拟终端。使用:Ctrl+Alt+F1~F6,默认系统启动后使用1号虚拟终端。设备文件路径:/dev/tty# [1,6]
        图形终端:Ctrl+Alt+F7
        模拟终端:在图形终端中打开的命令行接口(终端),基于ssh协议或telnet协议等远程打开的界面。设备文件:/dev/pts/# [0,无穷大]

查看当前的终端设备:tty

交互式接口:启动终端后,在终端设备附加一个交互式应用程序:
        GUI:X Protocol,window manager,desktop
                Desktop:GNOME(C,gtk);KDE(C++,qt);XFCE(轻量级桌面)
        CLI:shell程序:sh(bourn)、bash(bourn again shell)、csh、ksh(Korn)、tcsh、zsh

查看shell:echo $SHELL
显示当前系统使用的所有hell:cat /etc/shells
命令提示符:echo $PS1
        prompt :管理员:#  ; 普通用户:$

命令:输入命令,回车 —— 提请shell程序找到键入命令所对应的可执行程序或代码,并由其分析后提交给内核分配资源将其运行起来;表现为一个进程。

查找命令对应的程序:which CMD,如which ls,或者whereis CMD,如whereis ls

当which cd时:

在shell中可执行的命令有两类:
        内建命令:由shell自带的,而且通过某命令形式提供;
        外部命令:在当前系统的某文件系统路径下有对应的可执行程序文件;
        区别内部或外部命令使用:# type CMD

运行命令:命令格式:COMMAND [OPTIONS...] [ARGUMENTS...]
        选项:用于启动或关闭命令的某个或某些功能;
                短选项: -c ,如-l ,-h   可以合并,如-lh; 
                 长选项: --word  ,如: --long, --human-readable
        参数:命令的作用对象,向命令提供数据
        注意:多选项,以及多参数和命令之间都应该使用空白字符分隔;取消命令执行:Ctrl+C

文件系统:
        c:\program files\office11\word\word.exe  ,Windows系统的文件路径,
        /etc/sysconfig/networl-scripts/ifcfg-eth0,Linux系统的文件路径,

        文件有两类数据:
                元数据:metadata,如文件的大小,位置,属主,创建时间等
                数据:data,具体文件中的内容

        1、文件名严格区分字符大小写;
        2、文件名可以使用除/以外的任意字符,不建议使用特殊字符;  / :根目录,路径分隔符
        3、文件名长度最长不能超过255个字符;
        4、所有以点(.)开头的文件,均为隐藏文件;

        路径:
                绝对路径:从根目录起始的路径,Linux是从/,即根开始的路径,windows是从c:\或d:\等开始的路径,所以Linux的根只有一个,而windows有很多。
                相对路径:从当前位置起始的路径。登录系统必定有一个工作的目录(working directory)即当前的目录(current directory),使用pwd(printing working directory)查看。
                当前位置的表示方式:
                        (1)./ :   ./sysconfig/network-scripts 
                        (2)省略./符号:sysconfig/network-scripts
                        .. :两个点,表示当前目录的上级目录,即父目录

        LSB : Linux Standard Base

命令:        ls 、cd、type、tty、cat、which、whereis、pwd、echo

        (1)文件系统相关:目录管理、文件管理、 文件查看、 文件编辑
        (2)系统管理相关:

Linux命令帮助的获取

        格式:COMMAND [OPTIONS...] [ARGUMENTS...]

        外部命令:都有一个可执行程序,位于文件系统某目录下,使用which,whereis看这个路径
                命令是如何运行的呢?shell程序搜索这个可执行程序,搜索是按照$PATH环境变量中的路径,从左至右依次查找的,找到第一个则停止:  echo $PATH

        内部命令:help COMMAND
        外部命令:
                (1)# COMMAND --help    ;      #  COMMAND -h
                (2)使用手册(manual):# man COMMAND
                (3)信息页: # info COMMAND
                (4)程序自身的帮助文档:README、INSTALL、ChangeLog
                (5)程序官方文档
                (6)发行版的官方文档
                (7)搜索

        内部命令帮助:
                help COMMAND

                hash :内部命令,查看其帮助:help hash,内部命令不要使用man,因为man列出的是bash的帮助。

                关于hash:Remember or display program locations.
                shell搜寻到的外部命令的路径结果会缓存至kv(key-value)存储中;
        

        副作用,如果命令对应的文件被移到其他位置,缓存中还有的话,再运行会出错。此时需要清缓存。
                history命令:管理和显示命令的历史
                当前home目录有.bash_history隐藏文件,即~/.bash_history,登录进shell后新执行的命令只会记录在缓存中,当登出时,所有命令历史会追加保存在此文件;
                选项:
                        -a:追加本次会话新执行的命令历史列表至历史文件中;
                        -d:删除历史中指定的命令;
                        -c:清空命令历史
                快捷操作:
                        !#(#为历史中的编号);
                        !string:调用历史中最近一个以string开头的命令,
                        !!:重复执行上一次命令

        外部命令帮助获取:
                (1)COMMAND --help
                (2)man COMMAND
                        /usr/share/man目录下保存帮助手册,有man1..man8,这是文档的章节
                        使用whatis,可查看命令有几个章节帮助,可以使用man # CMD来指定看第几章节
                        man1:用户命令;man2:系统调用;man3:C库调用;man4:设备文件及特殊文件; man5:配置文件格式; man6:游戏; man7:杂项; man8:管理类的命令;

        man命令的配置文件:/etc/man.config
                MANPATH /PATH/TO/SOMEWHERE:指明新的手册文件搜索位置
                # man -M /PATH/TO/SOMEWHERE COMMAND : 到指定位置下搜索COMMAND的帮助手册。
        man命令的操作方法:
                Space、^f、^V、^F:向文件尾翻屏;
                b、^B:向文件首部翻屏;
                d、^D:向文件尾翻半屏;
                u、^U:向文件首部翻半屏;
                RETURN、^N、e、^E、j、^J:向文件尾部翻一行;
                y、^Y、^P、k、^K:向文件首部翻一行;
                p、<、%、1g:直接到文件首部;
                G、>、:直接到文件尾部;
                #:跳转至本屏第#行,即从本屏第一行向下#行;
                q:退出
                文本搜索:  /KEWYWORD  :
                        以KEYWORD指定的字符串为关键字,从当前位置向文件首部搜索,不区分大小写; n :跟搜索命令同方向,下一个;N:跟搜索方向反方向,上一个;

程序的自身帮助文档:/usr/share/doc/COMMAND-VERSION

命令小结汇总:

  • startx &  :启动图形界面
  • Ctrl+Alt+F1~F6 :属于快捷键,切换虚拟终端1~6
  • Ctrl+Alt+F7 :快捷键,切换到图形终端
  • tty : 查看当前终端名
  • echo : 显示一行文本
  • echo $SHELL : 显示当前使用的shell,显示环境变量的值
  • cat : 连接并显示文件到标准输出
  • cat /etc/shells :显示系统提供的shell,显示配置文件信息
  • echo $PS1 :显示命令提示符,也是一个环境变量
  • which command :显示命令对应程序的全路径
  • whereis command :定位一个命令的二进制、源码、帮助等的位置,即路径
  • type command :显示命令的类型,区分是内部还是外部命令
  • pwd : 显示当前目录,即工作目录
  • cd :改变当前路径
  • ls :列出目录下的文件
  • help command : 获取内部命令帮助
  • hash :记住或显示程序(命令)的位置,内存缓存中
  • history : 管理和显示命令的历史
  • man command : 显示命令帮助手册
  • whatis command : 显示命令有几个章节帮助,搜索数据库

一些重要的位置、文件及环境变量:

  • /dev/tty# [1,6] :虚拟终端设备文件
  • /dev/pts/# [0,无穷大] :模拟终端设备文件
  • $SHELL : 环境变量,保存当前使用shell的程序信息
  • /etc/shells : 当前系统提供的各种shell
  • $PS1 : 环境变量,保存使用的命令提示符格式
  • ~/.bash_history : 当前用户的命令历史保存文件
  • /usr/share/man : man帮助手册的通常保存路径

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值