Linux基础入门

Linux基础入门

1Linux发行版及哲学思想

1.1 Linux发行版

         Linux发行版(Linux Distribution,也被叫做GUN/Linux发行版),为一般用户预先集成好的Linux操作系统及各种应用软件。Linux发行版通常包含了包括桌面环境、办公包、媒体播放器、数据库等应用软件。这些操作系统通常由Linux内核、以及来自GUN计划的大量的函数库,和基于X Window的图形界面。有些发行版考虑到容量大小而没有预装X Window,而使用更加轻量级的软件。

       目前有超过300Linux发行版,大部分正处于活跃的开发中,不断的改进。

                                              基于打包方式.jpg

    1.2 linux哲学思想

      1.2.1 一切皆文件

               把几乎所有资源,包括硬件设备都组织为文件格式;

      1.2.2 由众多单一目的小程序组成;一个程序只实现一个功能,而且要做好

               组合小程序完成复杂任务;

      1.2.3 尽量避免跟用户交互

               目标:实现脚本编程,以自动完成某些功能;

      1.2.4 使用纯文本文件保存配置信息

               目标:一款使用的文本编辑器即能完成系统配置工作;

2Linux获取命令帮助详解

2.1 Linux命令的分类(Shell的内部命令和外部命令)

     Linux命令的执行必须依赖于Shell命令解释器。Shell实际上是在Linux系统中运行的一种特殊程序,它位于操作系统内核与用户之间,负责接受用户输入的命令并进行解释,将需要执行的操作传递给系统内核执行,Shell在用户和内核之间充当了一个“翻译官”的角色。当用户登陆到Linux系统时,会自动加载一个Shell程序,以便给用户提供可以输入命令的操作环境。

Bash是Linux系统中默认使用的Shell程序,文件位于/bin/bash。根据Linux命令与Shell程序的关系,一般分为以下两种类型:

内部命令:指的是集成于Shell解释器程序(如Bash)内部的一些特殊指令,也成为内建(Built-IN)指令。内部命令属于Shell的一部分,所以并没有单独对应的系统文件,只要Shell解释器被运行,内部指令也就自动载入内存了,用户可以直接使用。内部命令无需从硬盘中重新读取文件,因此执行效率更高。

外部命令:指的是Linux系统中能够完成特定功能的脚本文件或二进制程序,每个外部命令对应了系统中的一个文件,是属于Shell解释器程序之外的命令,所以称为外部命令。Linux系统必须知道外部命令对应的文件位置,才能够由Shell加载并执行。

 

 

区别外部命令内部命令的方法:

1、使用 type 命令

$ type cd

cd is a shell builtin

$ type cat

cat is /bin/cat

2、使用whereis或者which

    2.2 内部命令获取帮助

     # help  COMMAND

    2.3 外部命令获取帮助

2.3.1 # COMMAND –help

2.3.2 使用手册(manual)

                      # man COMMAND

2.3.3 信息页

                      #info COMMAND

2.3.4 程序自身的帮助文档

                      程序自身的帮助文档一般位于/usr/share/doc/COMMAND-VERSION

2.3.5 程序官方文档

2.3.6 发行版的官方文档

                      以redhat为例,其发行版的官方文档:http://www.redhat.com/docs

2.3.7 Google

3Linux常用的系统基础命令

3.1目录相关的命令

             cd: 切换目录

~:用户的主目录

                     cd cd ~: 回当前用户的主目录

                     cd ~USERNAME: 切换至指定用户的主目录

                     cd -: 在上一个目录和当前目录之间来回切换

                     .

                     ..

                     相关的环境变量:

                            PWD:保存了当前目录路径;

                            OLDPWD:上一次所在目录路径;

             pwd: 显示当前目录

             ls: list显示指定路径下的文件列表;

                            ls [OPTION]… [DIR]…

                            -a, –all: 显示所有文件,包括隐藏文件;

                            -l: 长格式

                                   -rw-r–r– 1 root root 44800 Aug 14 14:32 install.log

                                          -rw-r–r–:

                                                 最左侧的第一位:文件类型

                                                        -, d, l, b, c, p, s

                                                 后面的9位:访问权限,perm

                                          1:文件被硬链接的次数;

                                          root: 文件的owner

                                          root: 文件的group

                                          44800:文件的size

                                          Aug 14 14:32 : 文件的最近一次被修改的时间

                                          install.log 文件名

                            -h, –human-readable:单位换算

                            -d: 显示目录自身的相关属性;通常要与-l一起使用;

                            -r, –reverse: 逆序显示

                            -R, –recursive: 递归

              stat /PATH/TO/SOMEFILE:获取指定文件的元数据

3.2文件查看命令:cat, tac

                            cat [OPTION]… [FILE]…

                            -E: 显示行结束符$

                            -n: 对显示出的每一行进行编号

3.3文件内容类型查看命令:file

                            file  /PATH/TO/SOMEWHERE

3.4系统管理类命令:

                   关机:

                     halt, poweroff, shutdown, init 0

              重启:

                     reboot, shutdown, init 6

              跟用户登录相关:

                     who, whoami, w

3.5回显命令:echo

                            -n: 禁止自动添加换行符号;

                     -e: 允许使用转义符;

                            \n: 换行

                            \t: 制表符

                     echo "$VAR_NAME": 变量会替换,双引号表弱引用

                     echo '$VAR_NAME': 变量不会替换,强引用

3.6 which:显示命令对应的程序文件路径

                            which [OPTION] COMMAND

                            –skip-alias:禁止显示别名

                     whatis: whatis数据库中搜索单词

4Linux 文件系统基础

4.1 首相来了解下什么是文件系统

          计算机的文件系统是一种存储和组织计算机数据的方法。从系统角度来啦吗,文件系统对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。

        文件系统不仅包含着文件中的数据而且还有文件系统的结构,所有Linux用户和程序看到的文件、目录、软连接及文件保护信息等都存储在其中。

        不同Linux发行版之间的文件系统差别很少,主要表现在系统管理的特色工具以及软件包管理方式的不同,文件目录的基本结构都是一样的。

 

文件系统有多种类型:

Ÿ   ext2 : 早期Linux中常用的文件系统。

Ÿ   ext3 : ext2的升级版,带日志功能。

Ÿ   RAMFS : 内存文件系统,速度很快。

Ÿ   Iso9660 : 光盘或光盘镜像。

Ÿ   NFS : 网络文件系统,由SUN发明,主要用于远程文件共享。

Ÿ   MS-DOS : MS-DOS文件系统。

Ÿ   FAT : Windows XP操作系统采用的文件系统。

Ÿ   NTFS : Windows NT/XP操作系统采用的文件系统。

4.2 Linux发行版的常见目录

目录

功能

/

根目录,只能包含目录,不能包含具体文件。

/bin

供所有用户使用的基本命令;不能关联至独立分区,OS启动即会用到的程序

/sbin

管理类的基本命令,不能关联之独立分区,OS启动即会用到的程序

/lib

基本共享库文件,以及内核模块文件(/lib/modules)

/lib64

专用于x86_64系统上的辅助共享文件存放位置

/etc

配置文件目录(纯文本文件)

/home/username

普通用户家目录

/root

管理员的家目录

/media

便携式移动设备挂载点(cdrom|usb)

/mnt

临时文件系统挂载点

/dev

设备文件及特殊文件存储位置(b: block device随机访问)(c:character   device线性访问)

/opt

第三方应用程序的安装位置

/srv

系统上运行的服务用到的数据

/tmp

临时文件存储位置

/usr

Universal shared, read-only data

/usr/bin

保证系统拥有完整功能而提供的应用程序

/usr/sbin

非必要的二进制标准系统文件

/usr/lib

用于编程和包的库

/usr/lib64

/usr/include

C程序的头文件(header files)

/usr/share

结构化独立的数据,例如docman

/user/local

第三方应用程序的安装位置

/var

Variable data files

/var/cache

应用程序缓存数据目录

/var/lib

应用程序状态信息数据

/var/local

专用于为/usr/local下的应用程序存储可变数据

/var/lock

锁文件

/var/log

日志目录及文件

/var/opt

专用于为/opt下的应用程序存储可变数据

/var/run

运行中的进程相关的数据;通常用于存储进程的pid文件

/var/tmp

保存系统两次重启之间产生的临时数据

/proc

用于输出内核与进程信息相关的虚拟文件系统

/sys

用于输出当前系统上硬件设备相关信息的虚拟文件系统

/selinux

Security enhanced linuxselinux相关的安全策列等信息存储位置0

 

4.3 Linux应用程序的常见组成部分

Ÿ   二进制程序:/bin, /sbin, /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin

Ÿ   库文件:/lib, /lib64, /usr/lib, /usr/lib64, /usr/local/lib, /usr/local/lib64

Ÿ   配置文件:/etc, /etc/DIRECTORY, /usr/local/etc

Ÿ   帮助文件:/usr/share/man, /usr/share/doc, /usr/local/share/man, /usr/local/share/doc

4.4 Linux下的文件类型

Ÿ   – (f):普通文件;

Ÿ   d: 目录文件;

Ÿ   b: 块设备;

Ÿ   c: 字符设备;

Ÿ   l: 符号链接文件;

Ÿ   p: 管道文件;

Ÿ   s: 套接字文件;socket;

原创文章,作者:Daniel-W,如若转载,请注明出处:http://www.178linux.com/11695

(1)
上一篇 2016-02-28 12:03
下一篇 2016-02-28 12:08

相关推荐

  • Linux中设置磁盘配额和RAID

    第一篇:设置磁盘配额 综述     •在内核中执行     •以文件系统为单位启用     •对不同组或者用户的策略不同       根据块或者节点进行限制         •执行软限制(soft limit)   &n…

    Linux干货 2016-09-05
  • DHCP使用帮助

    bootp 想要通过tcp/ip模型进行网络通信需要有一个ip地址,IP地址是属于操作系统的,所以没有操作系统就没有ip 为了解决这种问题,有一种网卡可以不需要操作系统就能获取到ip bootp:只有第一次是动态获得,以后ip地址就是和mac地址绑定的,不能分配给其他主机 DHCP:DHCP是bootp的改进版,主要引入了租约的定义 DHCP也可以根据mac…

    Linux干货 2016-11-11
  • N22+北京+张zhangzhang+第三周作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 who | cut -d" " -f1 | sort -u 2、取出最后登录到当前系统的用户的相关信息。 id `who | cut -d" " -f1 | tail -1` 3、取出当前系统上被用户当作其默认shell的最多的…

    Linux干货 2016-09-05
  • Linux初探

    1.计算机组成: CPU:运算器(指令集)、控制器、寄存器、缓存; 存储器:内存,RAM; Input:下指令,提供数据; Ouput:输出数据加工的结果 一般来说,从磁盘中读取程序和数据放到内存中排队,由cpu从内存中读取执行。由于cpu处理速度远大于磁盘的I/O速度,因此引入缓存。在计算机中有缓存为王这个说法。 2.操作系统的背景: 1.统一规范 2.由…

    Linux干货 2016-10-30
  • linux中用ACL实现灵活的权限管理

    ACL是什么?? ACL英文原意是Access Control List(访问控制列表).它能够实现灵活的权限管理,除了文件的所有者,所属组和其他人,设置相应的权限外,ACL允许你给任何用户或是用户组设置任何文件/目录的访问权限(注意的是有些不支持数字模式的权限给定) ACL有什么用?? 作为UGO权限管理的补充,acl有GUO办不到或者是难以办到的功能 &…

    Linux干货 2016-08-05
  • shell脚本编写规范

    1 脚本名以.sh结尾,名称尽量见名之意,比如ClearLog.sh Clear_Log.sh clearlog.sh SerRestart.sh Ser_Restart.sh;2 尽量使用UTF-8编码,注释及输出尽量使用英文;3 一般给到执行权限,但一些关于变量的配置文件不用加执行权限;4 执行的时候可以使用bash 执行,或者使用bash -x执行,可…

    Linux干货 2017-04-16

评论列表(2条)

  • stanley
    stanley 2016-02-28 12:06

    文章写的不错。仍有提升空间,可参考置顶推荐的文章

    • Daniel-W
      Daniel-W 2016-02-28 15:52

      @stanleythanks~