cundeng 发表于 2018-5-22 09:35:01

【linux基础】03、linux使用入门

目录

一、linux基础
1、linux的哲学思想
2、开源协议,自由软件
3、控制台和终端
4、用户登录
       PS1,
二、linux文件系统
1、linux的文件基础
2、路径
       相对路径、绝对路径
3、文件名
三、命令
1、命令分类
2、命令使用格式

3、获取命令使用帮助
      help,man,info


一、linux基础
1、linux的哲学思想

      一切皆文件(包括硬件)
   由众多目地单一的小程序组成;
   组合小程序完成复杂任务
   尽量避免跟用户交互:为了方便脚本编程实现自动化运行
   使用文本文件保存程序的配置数据
  

程序设计法则:
       K.I.S.S:Keep It Simple.Stupid
  

2、开源协议
GPL,LGPL,Apache,BSD
自由软件:GNU,GPL (free)
       自由获取,自由学习,自由修改,自由分发源代码,自由创建衍生版
       靠服务赚钱,



3、控制台和终端
         终端和控制台都不是个人电脑的概念,而是多人共用的小型中型大型计算机上的概念。
一台主机,连很多终端,终端为主机提供了人机接口,每个人都通过终端使用主机的资源. 终端有命令行终端和图形终端两种.
      控制台是另一种人机接口, 不通过终端与主机相连, 而是通过显示卡-显示器和键盘接口分别与主机相连,这是人控制主机的第一人机接口(就像个人pc电脑一样,显示,键盘,鼠标都接上,此时就可以叫控制台)。
   话回到个人计算机上,个人计算机只有控制台,没有终端. 当然愿意的话, 可以在串口上连一两台命令行终端。但是linux保留了以前的习惯按POSIX标准把个人计算机当成小型机来用,,通过getty软件虚拟了六个字符终端(终端tty1-tty6)(数量可以在/etc/inittab里自己调)和一个图型终端, 在虚拟图形终端中又可以通过软件(如rxvt)再虚拟无限多个虚拟命令行终端(pts/0....). 记住,这全是虚拟的,用起来一样,但实际上并不是。



控制台:/dev/console            #如果是虚拟机安装的linux,那么都没有连接这个控制台
虚拟终端:/dev/tty1# (1-7)      #其中有一个是虚拟图形终端                        
      如果没有安装图形界面或者没有启动图形桌面那么只能通过Alt+F(1-6)在六个命令行终端之间切换,如果启动了图形界面就可以通过Alt+F7切换到图形终端,从图形终端切换到虚拟终端要使用Ctrl+Alt+F(1-6),
伪终端:/dev/pts/#          #ssh或telnet远程连接打开的终端
串行终端:/dev/ttyS#       #没有显卡用串行终端也可以
  

注意:
       在使用 Alt+F#进行终端切换时,tty#并不会发生变化,tty#和Alt+F#并没有对应关系,tty#和pts#是通过终端登录的时间编号的   


在命令行终端中启动图形桌面服务:
# startx &
# startx & -- :1 &    #启动第二个图形界面 进入第二个图形界面Alt+F8查看自己使用的终端的命令:
# tty
/dev/pts/0
# who
root   tty1         2016-11-12 23:02
root   pts/0      2016-11-27 15:38 (192.168.10.10)
root   pts/2      2016-11-27 11:42 (192.168.10.10)
# w
15:41:38 up 8 days, 11:10,3 users,load average: 0.00, 0.04, 0.09
USER   TTY      FROM            LOGIN@   IDLE   JCPU   PCPU WHAT
root   tty1   -                12Nov16 23:27   0.07s0.07s -bash
root   pts/0    192.168.10.10    15:38    0.00s0.01s0.00s w
root   pts/2    192.168.10.10    11:42    3:26   0.04s0.04s -bash
# who am i
root   pts/0      2016-11-27 15:38 (192.168.10.10)
# whoami
root

4、用户登录
认证,授权
      用户使用帐号和密码登录
用户登录后进入用户工作环境:               #可以自定义
       CLI:提供命令提示符   
            管理员:#
            普通用户:$
      GUI:提供桌面环境

用户:
      管理员:有管理员权限    root
      普通用户:仅有系统资源使用权限
  

PS1:定义命令提示符                              #环境变量PS1
   \u:自动替换为当前用户的用户名
   \h:当前主机的主机名
   \H:当前主机的完整主机名,FQDN、
   \w:当前工作路径,绝对路径
   \W:当前工作路径的基名
   \$:指定命令提示符
定义方法:
# echo $PS1
[\u@\h \W]\$
# PS1='(\U0\HSB\w)\% '
(\U0Node3SB~)\% cd /etc/sysconfig
(\U0Node3SB/etc/sysconfig)\%

二、Linux文件系统
1、Linux的文件系统基础
linux一切皆文件,那么linux怎么找到某个文件呢?
a、遍历      
         效率低,
b、层级结构


文件系统中的数据分为两类数:
元数据(metadata):索引,
数据(data):文件内容
  

        1个新的硬盘格式化后分成元数据区和数据区,数据区再分成存储块(block,最小存储单元),每个数据块都有编号,例如1号块2号块, 1个存储块只能属于一个文件,小于1个存储块的文件仍然占用1个存储块,这整个就是文件系统   
  

对于计算机来说,文件是什么?
      所有数据存在硬盘上都是二进制流,
  

2、路径
怎么标记一个文件?
      使用路径,
路径怎么表示层级结构?
      路径分隔符:/
             /usr/local:最左边的/不是路径分隔符而是根,是linux文件系统的起点,
绝对路径:从根开始定位的路径表示形式
相对路径:从当前位置开始定位的路径表示形式
  

  目录是什么?
  路径映射
  

       用户登录系统后当前的路径是自己的家目录,使用pwd命令可以查看当前目录(工作目录),cd命令切换当前的目录
$ pwd
/root
$ cd /tmp
$ cd          #cd后面不加路径就默认回到家目录
$ pwd
/root
特殊目录:
.    表示当前目录(或工作目录)
..   表示当前的上一级目录
~   表示家目录
~USERNAME   切换到指定用户的家目录    需要有权限才可以
-回到上次所在目录

$ pwd
/root
$ cd .
$ cd ..
$ pwd
/
$ cd ~
$ pwd
/root
# cd ~xj      
# pwd
/home/xj
# cd /tmp/src
# cd -
/root
# cd -
/tmp/src  

3、文件名

每个文件都有两类标识符:

名字:文件名:
                     linux的文件名严格区分大小写字符
                     文件名可以使用除了/以外的任意字符,,建议不使用特殊符号
                     以.开头的文件是隐藏文件
                     文件名最长255个字符
数字:indoei节点
  

basename NAME 获取文件的路径基名

dirname NAME 获取文件的路径目录名
$ basename /etc/sysconfig/network-scripts/
network-scripts
$ dirname /etc/sysconfig/network-scripts/
/etc/sysconfig
$ dirname etc/sysconfig/network-scripts/   #这两个命令不会检查该路径存不存在,路径对还是不对
etc/sysconfig
$ dirname etc/sysconfig/network-scripts
etc/sysconfig
$ dirname./etc/sysconfig/network/sb/nia
./etc/sysconfig/network/sb
$ basename ./etc/sysconfig/network/sb/nia
nia  

三、命令

      对主机执行的操作,是通过执行程序(发起进程)完成

1、命令分类
      内建命令:builtin#bash自带的基本命令
      外部命令:独立于shell程序之外的,有着可执行程序文件的命令
可以用内建命令type命令来查看命令的类型:
$ type cd          #内建命令是shell自带的,没有可执行程序文件
cd is a shell builtin
$ type ifconfig
ifconfig is /sbin/ifconfig
$ type type
type is a shell builtin如何运行命令:在命令提示符下键入命令,然后敲回车(把命令提交给内核运行,把输出结果打印出来)
         shell会先从环境变量PATH定义的目录顺序依次查找这个命令,找到的后就执行
$ echo $PATH
/usr/lib64/qt-3.3/bin:/root/.pyenv/plugins/pyenv-virtualenv/shims:/root/.pyenv/shims:~/.pyenv/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin  

2、命令使用格式

COMMANDOPTION...   ARGUMENTS...
选项:多个选项可以同时使用,可省略
       形式:
            -CHAR             短选项
                     多个短选项可以合并
            --WORD          长选项
                     功用:定义命令的运行行为
参数:指明命令的作用对象,可省略                                    
注意:有些选项也可以带参数,用于指定选项的作用对象      
$ cd /tmp/src
$ ls
test1.txttest.sh
$ ls -l
总用量 8
-rw-r--r-- 1 root root9 11月 26 16:45 test1.txt
-rw-r--r-- 1 root root 28 11月 26 18:32 test.sh
$ ls -lh
总用量 8.0K
-rw-r--r-- 1 root root9 11月 26 16:45 test1.txt
-rw-r--r-- 1 root root 28 11月 26 18:32 test.sh
-rw-r--r-- 1 root root 28 11月 26 18:32 test.sh
$ ls -lh test.sh
-rw-r--r-- 1 root root 28 11月 26 18:32 test.sh
$ ls test1.txt test.sh
test1.txttest.sh3、获取命令使用帮助
   1)help
  内置命令:
        help COMMAND
                 内置命令只有这一种方法获取帮助
  外部命令:
         COMMAND   --help(更通用)或者-h    获取简要命令使用帮助
  

                                --help 显示的帮助信息是命令自带的,通常比较简洁

   2)命令手册:manual
  manCOMMAND
         通常是由程序作者提供,按照一定格式组织成文本文件,并压缩后存放在系统上的某位置
  manual文档存放位置:/usr/share/man   
# ls /usr/share/man/
bgdeeshritman0pman1xman3   man4   man5xman7   man8xmannpt   rusv   zh_TW
cselfihujaman1   man2   man3pman4xman6   man7xman9   nl    pt_BRsktr
daenfridkoman1pman2xman3xman5   man6xman8   man9xpl    ro   slzh_CN  man命令的执行 ,通常即为找到此文件打开并显示

  

  命令手册有章节之分:1-9
  1、用户命令#普通用户
  2、系统调用system call
  3、库调用library call
  4、设备文件
  5、配置文件
  6、游戏
  7、杂项
  8、管理命令
  9、内核相关的文件
  n、new新文档   新的,尚未归入上述1-9章节的帮助文件
  o、old   老文档   可能 会在一段期限内保留
     l、local 本地文档    与本特定系统有关的


  man COMMAND         指定特定章节#N为数字,不加数字时,按顺序显示第一次出现的章节
  whatisCOMMAND         显示指定关键字存在帮助手册的章节相关信息及简要说明   #精确匹配
  man -k COMMAND      显示指定关键字存在帮助手册的章节相关信息及简要说明   #模糊匹配
  man -f   COMMAND         相当于whatis
  man -a command             打开符合命令的所有章节的手册
  man -w command            显示指定命令手册所在的路径
  man -aw command          结合-a参数显示所有章节的手册路径
$ whatis passwd
passwd               (1)- update user's authentication tokens
passwd               (5)- password file
passwd    (1ssl)- compute password hashes
$ man -f passwd
passwd               (1)- update user's authentication tokens
passwd               (5)- password file
passwd    (1ssl)- compute password hashes
$ man -k passwd
chpasswd             (8)- update passwords in batch mode
fgetpwent_r (3)- get passwd file entry reentrantly
getpwent_r         (3)- get passwd file entry reentrantly
gpasswd            (1)- administer /etc/group and /etc/gshadow
lpasswd            (1)- Change group or user password
lppasswd             (1)- add, change, or delete digest passwords
pam_localuser      (8)- require users to be listed in /etc/passwd
passwd               (1)- update user's authentication tokens
.
.
.  当系统中没有安装man时,如何手动安装man呢?

yum install man man-pages(man的补充?)  whatis资料库包含了所有系统指令的简单描述 , 而 whatis 指令会在此资料库中搜寻符合 keyword的 指令 , 并把结果显示出来
  whatis 资料库是使用 makewhatis 这 个 指 令 所 建 立 的 。


  man命令调用less命令查看文件内容,使用机制和less一样
  翻屏
  空间键:向文件尾部翻一屏
  ctrl+b:向文件首部翻一屏
  ctrl+d:向文件尾部翻半屏
  ctrl+u:向文件首部翻半屏
  回车键或j:向文件尾部翻一行
            k:向文件首部翻一行
           q:退出
  行定位
        G:跳转至文件尾部
     Ng|G:跳转至文件第N行
  关键字搜索
      /KEYWORD:搜索指定关键字,从文件首部向尾部搜索,关键字搜索可以使用正则表达式
  ?KEYWORD:搜索指定关键字,从文件尾部向首部搜索
              n:与搜索方向相同
              N:与搜索方向相反
  man手册段落:

           NAME:命令的名称及简要说明
           SYSNOPSIS:使用格式
           DESCRIPTION:命令功能的详细描述
           OPTIONS:所有选项的相关说明
           EXAMPLES:使用示例
           FILES:相关的配置文件
           SEE ALSO: 相关参考
  帮助格式中的字符串:
  [ ]:可选内容
  <>:必选内容
  |:或者 二选一
  ...:同类内容可以有多个
  

  man命令的配置文件:/etc/man.config

  配置man查找文档的路径的选项:
MANPATH /usr/man      
MANPATH /usr/share/man
MANPATH /usr/local/man
MANPATH /usr/local/share/man
MANPATH /usr/X11R6/man  man -M PATH COMMAND   
         指定该命令帮助文档的查找路径
  

   3)info   命令    获取在线文档
  infoCOMMAND
        仅在man手册无法提供足够的可用帮助信息时才使用
   4)许多应用程序都自带帮助文档:
  rpm安装的软件自带帮助文档的路径:/usr/share/doc
      ChangeLog:更新日志
      INSTALL:安装说明
      README:程序说明信息
$ cd /usr/share/doc
$ cd passwd-0.77/
$ ls
AUTHORSChangeLogCOPYING
$ cd ../zip-3.0/
$ ls
algorith.txtCHANGESLICENSEREADMEREADME.CRTODOWHATSNEWWHERE  
   5)主流发行版官方文档   
   6)google   
           一定要学会使用搜素工具
  使用技巧:
         ls的用法 site:51cto.com      #只会显示该域名下服务器网站上搜索到的内容
   7)各应用程序官方会提供
页: [1]
查看完整版本: 【linux基础】03、linux使用入门