一、linux的基础常识-阿里云开发者社区

开发者社区> 技术小阿哥> 正文

一、linux的基础常识

简介:
+关注继续查看

1、 一切皆文件;
    把几乎所有资源, 包括硬件设备都组织为文件格式;
2、 由众多单一目的小程序组成; 

    一个程序只实现一个功能, 而且要做好;组合小程序完成复杂任务;

3、 尽量避免跟用户交互;
    目标: 实现脚本编程, 以自动完成某些功能;
4、 使用纯文本文件保存配置信息;
    目标: 一款使用的文本编程器即能完成系统配置工作;
5、 提供机制, 而非策略
    策略相对短寿, 只有机制才能长存。 大部分的编程问题都可以被切割成两个部分:“需要提供什么功能”(机制)和“怎样实现这些功能”(策略)。

一、linux的终端类型

    所谓终端,是用户与主机交互, 必然用到的设备。在linux中存在众多的终端类型,主要有以下几类:
    物理终端
(pty): 直接接入本机的显示器和键盘设备; /dev/console
    虚拟终端(tty#):附加在物理终端之上的以软件方式虚拟实现的终端,CentOS6默认启动6个虚拟终端。使用命令:Ctrl+Alt+F[1-6]可以在各个终端之间进行切换。
    图形终端:附加在物理终端之上的以软件方式虚拟实现的终端,但额外会提供桌面环境;设备文件路径: /dev/tty# 切换命令: Ctrl+Alt+F7
    模拟终端(pts):也称作伪终端,图形界面下打开的命令行接口,基于ssh协议或telnet协议等远程打开的界面, 设备文件: /dev/pts/# [0,oo)
    查看当前的终端设备命令: tty

1
2
[root@mylinux ~]# tty
/dev/pts/0                #模拟终端

    查看当前系统上登录的所有用户及其信息:who

1
2
3
[root@promote ~]# who
root     tty1         2017-03-04 00:03
root     pts/0        2017-03-04 00:19 (192.168.191.2)

二、交互接口(shell)
    所谓交互接口,指的是启动终端后, 在终端设备附加一个交互式应用程序。交互接口有图形化接口与命令行模式的接口。这两种接口的代表应用软件有:

GUI(Graphical User Interface)

图形用户界面

X protocol, window manager, desktop

Desktop:GNOME (C, gtk)、 KDE (C++, qt)、 

XFCE (轻量级桌面)

CLI(command-line interface)

命令行界面

sh (bourn)、 csh、 tcsh、 ksh (korn)、 bash (bourn again shell)遵循GPL协议、 zsh

查看shell的命令:

1
2
3
4
5
6
7
8
9
[root@mylinux ~]# echo ${SHELL}        #查看当前使用的shell
/bin/bash    
[root@mylinux ~]# cat /etc/shells      #查看当前系统所有的shell
/bin/sh
/bin/bash
/sbin/nologin
/bin/dash
/bin/tcsh
/bin/csh

三、命令帮助的使用
在Bash中,命令分为两大类型,即内置命令与外部命令:
    内置命令:在 
shell程序中实现的命令即为内建命令;
    外部命令:在文件系统上的某位置有一个与命令名称对应的可执行文件;
命令类型可以使用
type命令进行判断。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@mylinux ~]# type -a cd
cd is a shell builtin
[root@mylinux ~]# type cat
cat is hashed (/bin/cat)
[root@mylinux ~]# man builtin    #查看所有内置命令
BASH_BUILTINS(1)                                              BASH_BUILTINS(1)
 
NAME
       bash, :, ., [, aliasbg, bind, breakbuiltin, caller, cdcommand, compgen, com-
       plete, compopt, continuedeclaredirs, disown, echoenableevalexecexit,
       export,false, fc,fggetoptshash, help, history, jobs, killletlocallogout,
       mapfile, popdprintfpushd,  pwd,  read,  readonly,  returnsetshiftshopt,
       source, suspend, testtimestraptrue,type, typeset, ulimitumaskunalias,
       unset, wait - bash built-in commands, see bash(1)
...

    查看可执行文件的路径: which、whereis。其中which命令是查找命令是否存在,以及命令的存放位置在哪儿。whereis命令只能用于搜索程序名,而且只搜索二进制文件、man说明文件和源代码文件。

1
2
3
4
5
6
[root@mylinux ~]# which vim
/usr/bin/vim
[root@mylinux ~]# which cat
/bin/cat
[root@mylinux ~]# whereis vim
vim: /usr/bin/vim /usr/share/vim /usr/share/man/man1/vim.1.gz

在shell中,获取内部命令帮助的方法有:#help COMMAND

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
[root@mylinux ~]# type cd
cd is a shell builtin        #cd为内置命令
[root@mylinux ~]# help cd    #可使用此方法获取
cdcd [-L|-P] [dir]
    Change the shell working directory.
     
    Change the current directory to DIR.  The default DIR is the value of the
    HOME shell variable.
     
    The variable CDPATH defines the search path for the directory containing
    DIR.  Alternative directory names in CDPATH are separated by a colon (:).
    A null directory name is the same as the current directory.  If DIR begins
    with a slash (/), then CDPATH is not used.
     
    If the directory is not found, and the shell option `cdable_vars' is set,
    the word is assumed to be  a variable name.  If that variable has a value,
    its value is used for DIR.
     
    Options:
        -L      force symbolic links to be followed
        -P      use the physical directory structure without following symbolic
        links
     
    The default is to follow symbolic links, as if `-L' were specified.
     
    Exit Status:
    Returns 0 if the directory is changed; non-zero otherwise.
[root@mylinux ~]# type vim
vim is /usr/bin/vim            #vim不是内置命令
[root@mylinux ~]
[root@mylinux ~]# help vim     #使用此方法获取帮助时报错
-bash: help: no help topics match `vim'.  Try `help help' or `man -k vim' or `info vim'.

获取外部命令帮助的方法有很多,其中常用的方法有:
(1) # COMMAND --help 

(2) 使用手册(manual) # man COMMAND
(3) 
信息页 # info COMMAND 

(4) 程序自身的帮助文档 README、 INSTALL
(5) 程序官方文档: Documentation
(6) 
发行版的官方文档 

四、帮助手册manual

    在linux内置的帮助手册功能非常丰富其主要可以分为八个章节。每一章节的主要功能是:

1   User Commands     

用户命令(/bin, /usr/bin, /usr/local/bin)
2   System Calls 系统调用
3   C Library Functions 库用户
4   Devices and Special Files 特殊文件(设备文件)
5   File Formats and Conventions 文件格式(配置文件的语法)
6   Games et. Al. 游戏
7   Miscellanea 杂项
8   System Administration tools and Deamons 管理命令(/sbin, /usr/sbin, /usr/local/sbin)

当使用man命令时,命令选项是可能有不同的字符如<>、[]等,其代表的含义分别是:
    <>:必选   []:可选   ...:可以出现多次   |:多选一   {}:分组

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
IP(8)                                Linux                               IP(8)
NAME
       ip - show / manipulate routing, devices, policy routing and tunnels
SYNOPSIS
       ip [ OPTIONS ] OBJECT { COMMAND | help }
       OBJECT := { link | addr | addrlabel | route | rule | neigh | tunnel | maddr | mroute
               | monitor }
       OPTIONS := { -V[ersion] | -s[tatistics] | -r[esolve] | -f[amily] { inet | inet6 |
               ipx | dnet | link } | -o[neline] }
       ip link set DEVICE { up | down | arp { on | off } |
               promisc { on | off } |
               allmulticast { on | off } |
               dynamic { on | off } |
               multicast { on | off } |
               txqueuelen PACKETS |
               name NEWNAME |
               address LLADDR | broadcast LLADDR |
               mtu MTU |
               netns PID |
               alias NAME |
               vf NUM [ mac LLADDR ] [ vlan VLANID [ qos VLAN-QOS ] ] [ rate TXRATE ] [
               spoofchk { on | off } ] |  }

MAN命令每一段开头所代表的意义:

    NAME: 命令名称及功能简要说明 

    SYNOPSIS: 用法说明, 包括可用的选项
    DESCRIPTION: 命令功能的详尽说明, 可能包括每一个选项的意义
    OPTIONS: 说明每一个选项的意义 

    FILES: 此命令相关的配置文件

    EXAMPLES: 使用示例 

    SEE ALSO: 另外参照

man命令获取帮助后翻屏方法:

    向后翻一屏: SPACE 向前翻一屏: b
    向后翻一行: ENTER 向前翻一行: k
    查找: /KEYWORD:向后 n: 下一个 N: 前一个
    ?KEYWORD:向前 n: 下一个 N: 前一个
    man 命令的配置文件: /etc/man.config
       MANPATH /PATH/TO/SOMEWHERE: 指明新的手册文件搜索位置
    man -M /PATH/TO/SOMEWHERE COMMAND: 到指定位置下搜索 COMMAND 命令的手册页并显示

五、文件系统标准 FHS
    当登录linux时,查看其根目录下的文件,其目录设计遵循一定的设计标准FHS (FileSystem Heirache Standard),各个目录的主要功能是:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/bin: 可执行文件, 用户命令, 单用户下还能操作
/sbin: 管理命令, 设置系统环境, 开机过程所需要
/usr/bin /usr/sbin 一般系统命令
/usr/local/bin /usr/local/sbin 一般第三方安装
/boot: 系统启动相关的文件, 如内核、 initrd, 以及 grub(bootloader)
/dev: 设备文件:
/etc: 配置文件存放目录
/ect/sysconfig:系统级别应用配置 /etc/init.d:系统服务脚本
/home: 用户的家目录, 每一个用户的家目录通常默认为/home/USERNAME
/root: 管理员的家目录;
/lib: 库文件 静态库: .a 动态库: .dll , .so (shared object)
/lib/modules: 内核模块文件
/media: 挂载点目录, 通常用来挂载移动设备
/mnt: 挂载点目录, 挂载额外的存储设备
/opt: 可选目录, 第三方程序的安装目录
/proc: 伪文件系统, 内核映射文件
/sys: 伪文件系统, 跟硬件设备相关的属性映射文件
/srv: 为服务提供数据存放位置
/usr: shareable, read-only data
/tmp: 临时文件, /var/tmp
/var: 可变化的文件

六、文件属性与类型

    使用命令'ls -l '查看某目录或文件时,可以显示该目录或文件的详细信息。该信息各字段所代表的意义是:

1
2
3
4
[root@mylinux home]# ls -ld samba
drw-r--r-x 2 500 500 4096 4月  29 2016 samba
[root@mylinux day01]# ls -l info.txt 
-rw-r--r-- 1 root root 48 2月  24 18:54 info.txt

第一个字符代表的是元数据信息,表示文件的类型,文件的主要类型有:(-)

    -: 普通文件 (f) 

    d: 目录文件
    l: 符号链接文件(symbolic link file) 

    p: 命令管道文件(pipe)
    c: 字符设备文件(character) 

    b: 块设备文件(block)
    s: 套接字文件(socket)

第二个字符到第十个字符,这九个字符代表的是文件的权限信息   (rw-r--r--)

    每3位一组,每一组: rwx(读,写,执行) -代表无权限

数字代表的是文件硬链接的次数    (1)

文件的属主(owner)               (root)
文件的属组(group)               (root)
文件大小(size), 单位是字节     (24)
时间戳(timestamp): 默认显示最近一次被修改时间  

    访问:access 

    修改:modify, 文件内容发生了改变
    改变:change, 元数据发生改变



本文转自 梦想成大牛 51CTO博客,原文链接:http://blog.51cto.com/yinsuifeng/1903050,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,大概有三种登录方式:
2541 0
阿里云服务器ECS远程登录用户名密码查询方法
阿里云服务器ECS远程连接登录输入用户名和密码,阿里云没有默认密码,如果购买时没设置需要先重置实例密码,Windows用户名是administrator,Linux账号是root,阿小云来详细说下阿里云服务器远程登录连接用户名和密码查询方法
9714 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
9140 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
11226 0
windows server 2008阿里云ECS服务器安全设置
最近我们Sinesafe安全公司在为客户使用阿里云ecs服务器做安全的过程中,发现服务器基础安全性都没有做。为了为站长们提供更加有效的安全基础解决方案,我们Sinesafe将对阿里云服务器win2008 系统进行基础安全部署实战过程! 比较重要的几部分 1.
8133 0
如何设置阿里云服务器安全组?阿里云安全组规则详细解说
阿里云安全组设置详细图文教程(收藏起来) 阿里云服务器安全组设置规则分享,阿里云服务器安全组如何放行端口设置教程。阿里云会要求客户设置安全组,如果不设置,阿里云会指定默认的安全组。那么,这个安全组是什么呢?顾名思义,就是为了服务器安全设置的。安全组其实就是一个虚拟的防火墙,可以让用户从端口、IP的维度来筛选对应服务器的访问者,从而形成一个云上的安全域。
6192 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,云吞铺子总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系统盘、创建快照、配置安全组等操作如何登录ECS云服务器控制台? 1、先登录到阿里云ECS服务器控制台 2、点击顶部的“控制台” 3、通过左侧栏,切换到“云服务器ECS”即可,如下图所示 通过ECS控制台的远程连接来登录到云服务器 阿里云ECS云服务器自带远程连接功能,使用该功能可以登录到云服务器,简单且方便,如下图:点击“远程连接”,第一次连接会自动生成6位数字密码,输入密码即可登录到云服务器上。
20984 0
13694
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《Nacos架构&原理》
立即下载
《看见新力量:二》电子书
立即下载
云上自动化运维(CloudOps)白皮书
立即下载