设为首页 收藏本站
查看: 672|回复: 0

[经验分享] 【linux基础】03、linux使用入门

[复制链接]

尚未签到

发表于 2018-5-22 09:35:01 | 显示全部楼层 |阅读模式
目录

一、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#是通过终端登录的时间编号的   


在命令行终端中启动图形桌面服务:
[root@Node3 ~]# startx &
[root@Node3 ~]# startx & -- :1 &    #启动第二个图形界面 进入第二个图形界面Alt+F8查看自己使用的终端的命令:
[root@Node3 ~]# tty
/dev/pts/0
[root@Node3 ~]# 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)
[root@Node3 ~]# 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.07s  0.07s -bash
root     pts/0    192.168.10.10    15:38    0.00s  0.01s  0.00s w
root     pts/2    192.168.10.10    11:42    3:26   0.04s  0.04s -bash
[root@Node3 ~]# who am i
root     pts/0        2016-11-27 15:38 (192.168.10.10)
[root@Node3 ~]# whoami
root

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

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

PS1:定义命令提示符                              #环境变量PS1
     \u:自动替换为当前用户的用户名
     \h:当前主机的主机名
     \H:当前主机的完整主机名,FQDN、
     \w:当前工作路径,绝对路径
     \W:当前工作路径的基名
     \$:指定命令提示符
定义方法:
[root@Node3 ~]# echo $PS1
[\u@\h \W]\$
[root@Node3 ~]# 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命令切换当前的目录
[root@Node3 ~]$ pwd
/root
[root@Node3 ~]$ cd /tmp
[root@Node3 tmp]$ cd          #cd后面不加路径就默认回到家目录
[root@Node3 ~]$ pwd
/root
特殊目录:
.    表示当前目录(或工作目录)
..   表示当前的上一级目录
~   表示家目录
~USERNAME   切换到指定用户的家目录    需要有权限才可以
-  回到上次所在目录

[root@Node3 ~]$ pwd
/root
[root@Node3 ~]$ cd .
[root@Node3 ~]$ cd ..
[root@Node3 /]$ pwd
/
[root@Node3 /]$ cd ~
[root@Node3 ~]$ pwd
/root
[root@Node3 ~]# cd ~xj        
[root@Node3 xj]# pwd
/home/xj
[root@Node3 ~]# cd /tmp/src
[root@Node3 src]# cd -
/root
[root@Node3 ~]# cd -
/tmp/src  

3、文件名

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

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

basename NAME 获取文件的路径基名

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

三、命令

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

1、命令分类
      内建命令:builtin  #bash自带的基本命令
      外部命令:独立于shell程序之外的,有着可执行程序文件的命令
可以用内建命令type命令来查看命令的类型:
[root@Node3 ~]$ type cd          #内建命令是shell自带的,没有可执行程序文件
cd is a shell builtin
[root@Node3 ~]$ type ifconfig
ifconfig is /sbin/ifconfig
[root@Node3 ~]$ type type
type is a shell builtin如何运行命令:在命令提示符下键入命令,然后敲回车(把命令提交给内核运行,把输出结果打印出来)
           shell会先从环境变量PATH定义的目录顺序依次查找这个命令,找到的后就执行
[root@Node3 ~]$ 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、命令使用格式

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

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

   2)命令手册:manual
  man  COMMAND
         通常是由程序作者提供,按照一定格式组织成文本文件,并压缩后存放在系统上的某位置
  manual文档存放位置:/usr/share/man   
[root@Node3 ~]# ls /usr/share/man/
bg  de  es  hr  it  man0p  man1x  man3   man4   man5x  man7   man8x  mann  pt     ru  sv     zh_TW
cs  el  fi  hu  ja  man1   man2   man3p  man4x  man6   man7x  man9   nl    pt_BR  sk  tr
da  en  fr  id  ko  man1p  man2x  man3x  man5   man6x  man8   man9x  pl    ro     sl  zh_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 [N] COMMAND         指定特定章节  #N为数字,不加数字时,按顺序显示第一次出现的章节
  whatis  COMMAND           显示指定关键字存在帮助手册的章节相关信息及简要说明   #精确匹配
  man -k COMMAND      显示指定关键字存在帮助手册的章节相关信息及简要说明   #模糊匹配
  man -f   COMMAND         相当于whatis
  man -a command             打开符合命令的所有章节的手册
  man -w command            显示指定命令手册所在的路径
  man -aw command          结合-a参数显示所有章节的手册路径
[root@Node3 ~]$ whatis passwd
passwd               (1)  - update user's authentication tokens
passwd               (5)  - password file
passwd [sslpasswd]   (1ssl)  - compute password hashes
[root@Node3 ~]$ man -f passwd
passwd               (1)  - update user's authentication tokens
passwd               (5)  - password file
passwd [sslpasswd]   (1ssl)  - compute password hashes
[root@Node3 ~]$ man -k passwd
chpasswd             (8)  - update passwords in batch mode
fgetpwent_r [getpwent_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   命令    获取在线文档
  info  COMMAND
        仅在man手册无法提供足够的可用帮助信息时才使用
   4)许多应用程序都自带帮助文档:
  rpm安装的软件自带帮助文档的路径:/usr/share/doc
      ChangeLog:更新日志
      INSTALL:安装说明
      README:程序说明信息
[root@Node3 ~]$ cd /usr/share/doc
[root@Node3 doc]$ cd passwd-0.77/
[root@Node3 passwd-0.77]$ ls
AUTHORS  ChangeLog  COPYING
[root@Node3 passwd-0.77]$ cd ../zip-3.0/
[root@Node3 zip-3.0]$ ls
algorith.txt  CHANGES  LICENSE  README  README.CR  TODO  WHATSNEW  WHERE  
   5)主流发行版官方文档   
   6)google   
             一定要学会使用搜素工具
  使用技巧:
         ls的用法 site:51cto.com        #只会显示该域名下服务器网站上搜索到的内容
   7)各应用程序官方会提供

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-478968-1-1.html 上篇帖子: linux 随笔 下篇帖子: linux 多行操作
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表