Linux基础

计算机组成和功能

按照Von Neumann的理解 [1],计算机分为以下几部分:

    输入 (Input Device, 用于提供给计算机待处理的数据)

        e.g. 键盘,…

    CPU (Central Processing Unit, 用于处理输入数据)

        控制单元 (Control Unit, IR+PC, 存放当前系统状态)

        运算逻辑单元 (Arithmetic/Logic Unit, 算数)

    记忆 (存1和0的)

        e.g. 硬盘,RAM, …

    输出 (输出系统状态或运算结果等)

        显示器,纸带, …

 

实际上的计算机需要其他辅助硬件组件,如供电模块,主板等。具体可参见Wikipedia [2]

 

[1] Von Neumann architecture, https://en.wikipedia.org/wiki/Von_Neumann_architecture

[2] Computer hardware, https://en.wikipedia.org/wiki/Computer_hardware

Linux发行版

debian

    Knoppix

        便携式OS, 提供较广的硬件支持

    ubuntu (African word, "humanity to others", 更好的语言支持)

        Mint 更注重用户体验,提供多媒体解码支持,等

Gentoo

    有叫 Portage 的软件包管理系统

slackware (Goal: 方便使用,稳定)

    openSUSE (Software und System-Entwicklung, 提供更好的开发者体验)

    Arch

        pacman 软件包管理系统

        ABS, arch build system

Fedora

    RHEL

    CentOS (免费版,国内用得多

 

各发行版详细信息: http://distrowatch.com/

Linux发行版大图: https://en.wikipedia.org/wiki/Linux_distribution

Linux哲学思想并描述

  • 一切皆文件

    IO设备有对应文件,RAM有对应文件,就连进程都有对应文件(夹)。一切皆文件意味着OS运行更透明,定制更灵活

  • 由众多功能单一程序组成

    高复用性

    减少重复开发

  • 尽量避免与用户交互(自动化)

    程序设计时避免用户交互,以后需要交互可再加。但若是开始就搞成需要用户交互,之后想自动化往往会变得很丑陋

  • 使用文本文件保存配置信息

    方便用简单脚本读写

    高可读性

Linux系统上命令的使用格式, 常用指令

使用格式:

    [path]command [parameters]

        e.g. /bin/ls -l

    [path]为命令所在路径名,若command在$PATH (echo "$PATH") 中可省略

ifconfig

    查看本机网络接口信息(ip, MAC, etc)

[root@CentOS68 1]# ifconfig
    eth0      Link encap:Ethernet  HWaddr 00:0C:29:71:B3:79 
              inet addr:192.168.153.128  Bcast:192.168.153.255  Mask:255.255.255.0
              inet6 addr: fe80::20c:29ff:fe71:b379/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:52659 errors:0 dropped:0 overruns:0 frame:0
              TX packets:101141 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:1000
              RX bytes:11545520 (11.0 MiB)  TX bytes:9622411 (9.1 MiB)
     
    lo        Link encap:Local Loopback 
              inet addr:127.0.0.1  Mask:255.0.0.0
              inet6 addr: ::1/128 Scope:Host
              UP LOOPBACK RUNNING  MTU:65536  Metric:1
              RX packets:10 errors:0 dropped:0 overruns:0 frame:0
              TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0
              RX bytes:512 (512.0 b)  TX bytes:512 (512.0 b)

echo

    输出参数到标准输出

[root@CentOS68 1]# echo "PATH=$PATH"
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

tty

    输出当前terminal

[root@CentOS68 1]# tty
/dev/pts/0

startx

    打开图形界面

    [root@CentOS68 1]# startx & 就不试了

export

    管理环境变量

[root@CentOS68 1]# export some_var=123
[root@CentOS68 1]# export -p | grep some_var #-p 显示所有
declare -x some_var="123"
[root@CentOS68 1]# export -n some_var #-n 删除
[root@CentOS68 1]# export -p | grep some_var
[root@CentOS68 1]#

pwd

    显示当前路径

[root@CentOS68 ~]# pwd
/root
[root@CentOS68 ~]# cd ..
[root@CentOS68 /]# pwd
/

history

    管理最近运行过的指令历史

[root@CentOS68 /]# history
    1  help history
    2  history
[root@CentOS68 /]# history -d 1 #删除第一条历史记录
[root@CentOS68 /]# history
    1  history
    2  history -d 1
    3  history
[root@CentOS68 /]# history -c #清空加载的历史记录
[root@CentOS68 /]# history
    1  history

shutdown

    关机 重启等

[root@CentOS68 /]# shutdown -r 5 'System will shut down after 5min'& #五分钟后重启机器
[1] 4600
[root@CentOS68 /]#
Broadcast message from root@CentOS68
        (/dev/pts/0) at 10:33 ...
 
The system is going down for reboot in 5 minutes!
System will shut down after 5min
 
[root@CentOS68 /]# shutdown -c
shutdown: Shutdown cancelled
[1]+  Done                    shutdown -r 5 'System will shut down after 5min'
[root@CentOS68 /]# shutdown -r 5 'System will shut down after 5min'&
[1] 4605
[root@CentOS68 /]#
Broadcast message from root@CentOS68
        (/dev/pts/0) at 10:34 ...
 
The system is going down for reboot in 5 minutes!
System will shut down after 5min
 
[root@CentOS68 /]# shutdown -c 'no way' #取消
shutdown: Shutdown cancelled
[1]+  Done                    shutdown -r 5 'System will shut down after 5min'
[root@CentOS68 /]#
Broadcast message from root@CentOS68
        (/dev/pts/0) at 10:34 ...
 
no way
[root@CentOS68 /]#

poweroff / reboot

    关机/重启

hwclock 管理硬件时钟
date 管理系统时钟
[root@CentOS68 /]# date
Sun Sep 25 10:40:22 PDT 2016
[root@CentOS68 /]# date 09260940 #改系统时间
Mon Sep 26 09:40:00 PDT 2016
[root@CentOS68 /]# hwclock #不影响硬件时钟
Sun 25 Sep 2016 10:42:35 AM PDT  -0.173872 seconds
[root@CentOS68 /]# hwclock -s #设置系统时间为硬件时钟
[root@CentOS68 /]# date #变回来了
Sun Sep 25 10:42:47 PDT 2016
[root@CentOS68 /]# hwclock --set --date="9/22/16 09:00:00" #改硬件时钟
[root@CentOS68 /]# hwclock #硬件时钟变了
Thu 22 Sep 2016 09:00:05 AM PDT  -0.094523 seconds
[root@CentOS68 /]# date #不影响系统时间
Sun Sep 25 10:44:49 PDT 2016
[root@CentOS68 /]# hwclock -w #设置硬件时钟为系统时间
[root@CentOS68 /]# hwclock #变回来了
Sun 25 Sep 2016 10:44:59 AM PDT  -0.266375 seconds

Linux帮助信息

内置命令: help <command>

外部命令:

    <command> –help

    man <command>

        文档储存在/usr/share/man

        压缩格式的文件,有章节之分

        /usr/shared/man/man1, man2, …

            1: 用户命令 (ls

            2: 系统调用 (open, read

            3: C库调用 (exec

            4: 设备文件及特殊文件 (mouse, console

            5: 文件格式 (/etc/crontab

            6: 游戏使用帮助

            7: 杂项 (ISO…

            8: 管理工具 (arp

    info <command>

    在线文档

    /usr/share/doc/command-version/

    有时存有些许文档

Linux发行版基础目录命名法和功能规定

/
├── bin #一般命令
├── boot #开机相关
├── dev #设备
├── etc #配置
├── home #一般用户home folder
├── lib #库
├── lib64 #64位库
├── media #挂载的移动存储
├── mnt #其他挂载点
├── opt #Optional软件
├── proc #系统进程相关 基于内存的文件系统
├── root #root用户home folder
├── sbin #系统命令
├── srv #服务数据
├── sys #设备相关 基于内存的文件系统
├── tmp #临时文件
├── usr #全局共享只读文件
│   ├── local #一般用于安装本地第三方文件
└── var #可变文件
    ├── log #日志
    ├── www #本地静态页面

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