计算机基础及Linux基础

计算机基础与Linux入门

  • 计算机组成及功能

  • Linux常见发行版

  • Linux重要哲学思想

  • Linux文件系统层级结构及文件命名规则

  • 如何获取Linux命令的使用帮助

  • Linux常用命令及示例

1.1 计算机组成及功能

1.1.1 计算机的五大部件

计算机的主要组成部分有:

  • 1、CPU:运算器

  • 2、控制器、寄存器(内部存储)、缓存;

  • 3、存储器:内存,RAM;

  • 4、INPUT:下达指令,提供数据等;

  • 5、OUTPUT:输出数据加工后的结果;

其中:1和2都属于CPU的内部组件

1.2 Linux常见发型版本

  • 1、CentOS:从RedHat发展而来的发行版,由志愿者维护与RedHat完全兼容,目前已经被RedHat收购。

  • 2、Debian:一个强烈信奉自由软件,并由志愿者维护的系统。

  • 3、Fedora:是RedHat的社区版,会经常引入新特性测试。

  • 4、RedHat:有Redhat公司发行并维护。

  • 5、Ubuntu:一个非常流行的桌面发行版。

  • 6、SUSE:SUSE Linux原是以Slackware Linux为基础,并提供完整德文使用界面的产品。

1.3 Linux重要哲学思想

  • 1、一切皆文件(硬件设备也是通过文件表示)

    物理终端:  /dev/console

    虚拟终端: /dev/tty[1-6]

    串行终端: /dev/ttyS#

    伪终端: /dev/pts/#

  • 2、由众多目的单一的小程序组成,一个程序只做一件事,并且做好;

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

  • 4、尽可能避免跟用户交互;

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

  • 6、提供机制,而非策略。

1.4 Linux文件系统层级结构及文件命名规则

文件是什么?众多文件如何有效组织起来?

  • 目录:目录是路径的映射

  • 文件:存储空间的一段流式数据,对数据可以做到按名存取;

  • Linux的文件系统:层级结构;有索引;

    Linux的文件系统成倒置的树状结构,如下:

/
|-- bin -> usr/bin
|-- boot
|-- data
|-- dev
|-- etc
|-- home
|-- lib -> usr/lib
|-- lib64 -> usr/lib64
|-- media
|-- mnt
|-- opt
|-- proc
|-- root
|-- run
|-- sbin -> usr/sbin
|-- srv
|-- sys
|-- tmp
|-- usr
`-- var

1.4.1 文件的路径表示

  • 绝对路径: 从根开始表示出的路径;

 [root@bj-1-140-node1 ~]# cd /etc/
  • 相对路径: 从当前位置开始表示出的路径;

 [root@bj-1-140-node1 etc]# cd sysconfig/

1.4.2 文件名使用法则

  • 1、严格区分字符大小写;

  • 2、目录也是文件,在同一个目录下,两个文件不能同名;

  • 3、支持使用除/以外的任意字符;

  • 4、最长不能超过255个字符;

1.4.3 用户家目录

用户的起始目录: 普通用户管理文件的位置;

普通用户Jerry的家目录就是/home/Jerry

1.5 如何获取Linux命令的使用帮助

Linux系统的命令分为外部命令与内部命令两大类

1.5.1 内部命令的使用帮助

内部命令使用help查看命令的使用方法;查看命令是内部还是外部命令通过type查看;

 [root@bj-1-140-node1 ~]# help cd

1.5.2 外部命令的使用帮助

外部命令的使用帮助可以有两种方式。

  • 1、命令自带简要格式的使用帮助

 [root@bj-1-140-node1 ~]# tree --help
  • 2、使用man手册获取命令帮助

命令格式:

 man [1-8] COMMAND

常用选项:

  -M /PATH/TO/SOMEDIR  到指定目录下查找手册并打开

man命令可以指定查看某个具体章节

SECTION:
    NAME: 功能性说明
    SYNOPSIS:语法格式
    DESCRIPTION: 描述
    OPTIONS:选项
    EXAMPLES: 使用示例
    AUTHOR: 作者
    BUGS:报告程序bug的方式
    SEE ALSE: 参考
    
SYNOPSIS:
    []:可选内容
    <>:必须提供的内容
    a|b|c:多选一
    ...:同类内容可出现多个

使用手册:压缩格式的文件,有章节之分

/usr/share/man 
    man1, man2, man3, ...
    man1:用户命令;
    man2:系统调用
    man3:C库调用
    man4:设备文件及特殊文件
    man5:文件格式(配置文件格式)
    man6:游戏使用帮助
    man7:杂项
    man8:管理工具及守护进程;

man命令打开手册以后的操作方法

翻屏:空格键,向文件尾部翻一屏;
b:向文件首部翻一屏;
Ctrl+d:向文件尾部翻半屏;
Ctrl+u:向文件首部翻半屏;
回车键:一次向文件尾部翻一行;
k:向文件首部翻一行;
G:跳转最后一行
#G:跳转至指定行,#号代表数字
文本搜索功能:
/关键词搜索指定字符串不区分大小写,从文件首部向尾部依次查找
或
    ?关键词从文件尾部向首部部依次查找
    n:与查找命令方向相同
    N:与查找命令方向相反
退出:
    q

1.5.3 应用程序自带的帮助文档

  • REDEME: 应用程序的相关信息

  • INSTALL: 安装帮助

  • CHANGES: 版本迭代时的改动信息

1.5.4 通过程序的官方文档获取帮助

通过查看获取官方站点上的"Document"

1.5.5 用好搜索引擎

Google搜索关键词:

如搜索某一类型文档可以在后面加上filetype:pdf 例如:centos7 filetype:pdf

也可以在指定站点搜索指定内容,例如:centos7  site:51cto.com

1.6 Linux常用命令使用

1.6.1 help

获取内部命令帮助

 [root@bj-1-140-node1 ~]# help cd

1.6.2 pwd

获取当前工作目录

 [root@bj-1-140-node1 ~]# pwd/root

1.6.3 file

查看文件类型

[root@bj-1-140-node1 ~]# file /etc/issue
/etc/issue: ASCII text
[root@bj-1-140-node1 ~]# file /bin/ls
/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), 
for GNU/Linux 2.6.32, BuildID[sha1]=aa7ff68f13de25936a098016243ce57c3c982e06, stripped

1.6.4 basename

指定一个文件路径获取文件的基名

 [root@bj-1-140-node1 ~]# basename /etc/sysconfig/selinux 
 selinux

1.6.5 dirname

获取文件所在的目录名

 [root@bj-1-140-node1 ~]# dirname /etc/sysconfig/selinux 
 /etc/sysconfig

1.6.6 type

查看命令的类型是内部命令还是外部命令

 [root@bj-1-140-node1 ~]# type cd
 cd is a shell builtin
 [root@bj-1-140-node1 ~]# type tree
 tree is hashed (/usr/bin/tree)

1.6.7 cd

切换目录

命令格式

 cd  /PATH/TO/SOMEDIR

cd 不加任何参数时切换回家目录;bash中~表示家目录;

 cd ~  :切换回自己的家目录cd ~USERNAME :切换到指定用户家目录cd - :切换至上一次所在目录

cd相关的环境变量

 $PWD 当前工作目录$OLDPWD 上一次的工作目录

1.6.8 ls

list 列出指定目录下的内容

命令使用格式:
  ls [OPTION]... [FILE]...
    -a:显示所有文件,包括隐藏文件;
    -A:显示除.和..之外的所有文件;
    -l:显示文件的详细属性信息;
    -rw-------. 1 root root 1182 Dec  2 04:27 anaconda-ks.cfg
    -:文件类型
    rw-------:文件的权限分为三组
    rw-:文件属主的权限;
    ---:文件的属组的权限;
    ---:其它用户的权限(非属主、属组);
    1:数字表示文件被硬链接的次数;
    root:文件的属主;
    root:文件的属组;
    1182:文件的大小,单位是字节;
    Dec  2 04:27:文件最近一次被修改的时间
    anaconda-ks.cfg:文件名
    -h:将文件大小换算成人类可读的形式
    -d:查看目录自身的详细信息,并非目录中内容;
    -r:以逆序的方式显示文件;
    -R:递归显示;

示例

[root@bj-1-140-node1 ~]# ls
anaconda-ks.cfg
[root@bj-1-140-node1 ~]# ls -l
total 4
-rw-------. 1 root root 1182 Dec  2 04:27 anaconda-ks.cfg
[root@bj-1-140-node1 ~]# ls -lr /etc/sysconfig/
total 92
-rw-r--r--. 1 root root  644 Jun 16  2015 wpa_supplicant
-rw-r--r--. 1 root root  138 Aug 13  2015 svnserve
-rw-r-----. 1 root root  506 Nov 20  2015 sshd
lrwxrwxrwx. 1 root root   17 Dec  2 04:22 selinux -> ../selinux/config
-rw-r--r--. 1 root root    0 Jun 10  2014 run-parts
-rw-r--r--. 1 root root  196 Sep  8  2015 rsyslog
-rw-r--r--. 1 root root   12 Nov 21  2015 rsyncd
-rw-r--r--. 1 root root  755 Nov 20  2015 readonly-root
-rw-r--r--. 1 root root   15 Nov 21  2015 rdisc
-rw-r--r--  1 root root  159 May 31  2016 ntpdate
drwxr-xr-x. 2 root root 4096 Dec  4  2016 network-scripts
-rw-r--r--. 1 root root   22 Dec  2 04:27 network
-rw-r--r--. 1 root root  634 Nov 20  2015 netconsole
drwxr-xr-x. 2 root root    6 Nov 20  2015 modules
-rw-r--r--. 1 root root  200 Mar 18  2014 man-db
-rw-r--r--. 1 root root  180 Dec  2 04:26 kernel
-rw-r--r--. 1 root root 1460 Nov 21  2015 kdump
-rw-r--r--. 1 root root  903 Jul 14  2015 irqbalance
-rw-------. 1 root root 1974 Nov 20  2015 iptables-config
-rw-------. 1 root root 1988 Nov 20  2015 ip6tables-config
-rw-r--r--. 1 root root  798 Nov 20  2015 init
lrwxrwxrwx. 1 root root   17 Dec  2 04:23 grub -> /etc/default/grub
-rw-r--r--. 1 root root   72 Nov 20  2015 firewalld
-rw-------. 1 root root 1390 Jun 10  2014 ebtables-config
-rw-------. 1 root root  110 Jul 27  2015 crond
-rw-r--r--. 1 root root  150 Nov 20  2015 cpupower
drwxr-xr-x. 2 root root    6 Nov 20  2015 console
drwxr-xr-x. 2 root root   41 Dec  2 04:22 cbq
-rw-r--r--. 1 root root  429 Dec  2 04:27 authconfig

1.6.9 cat

文本文件查看工具,查看文件中的内容

 命令格式:
 cat [OPTION]... [FILE]...  
     -n:显示行号;  
     -E:显示文件尾部行结束符$;

示例

[root@bj-1-140-node1 ~]# cat -n /etc/fstab 
     1
     2#
     3# /etc/fstab
     4# Created by anaconda on Fri Dec  2 04:20:15 2016
     5#
     6# Accessible filesystems, by reference, are maintained under '/dev/disk'
     7# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
     8#
     9UUID=d7c087de-36be-468d-aa08-b0d203c80db0 /                       xfs     defaults        0 0
    10UUID=3f4c9e32-d1bc-472b-ae1b-04eab1745d7e /boot                   xfs     defaults        0 0
    11UUID=a6ff9119-a960-4896-8060-15c0f68c993a swap                    swap    defaults        0 0
[root@bj-1-140-node1 ~]# cat -E /etc/fstab 
$
#$
# /etc/fstab$
# Created by anaconda on Fri Dec  2 04:20:15 2016$
#$
# Accessible filesystems, by reference, are maintained under '/dev/disk'$
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info$
#$
UUID=d7c087de-36be-468d-aa08-b0d203c80db0 /                       xfs     defaults        0 0$
UUID=3f4c9e32-d1bc-472b-ae1b-04eab1745d7e /boot                   xfs     defaults        0 0$
UUID=a6ff9119-a960-4896-8060-15c0f68c993a swap                    swap    defaults        0 0$

1.6.10 echo

回显命令

 echo [SHORT-OPTION]... [STRING]...    
     -n:不进行换行;    
     -e:让转义符生效;    
     \n:换行符    
     \t:制表符(Tab键) 
 颜色控制:   
     [root@bj-1-140-node1 ~]# echo -e "\033[32;1mHello,World\033[0m"STRING
 可以使用引号,单引号和双引号都可以; 
     单引号:强引用,变量引用不执行 
     双引号:弱引用,比那里应用会执行

示例

 [root@bj-1-140-node1 ~]# echo -e "Hello\nWorld"HelloWorld
 [root@bj-1-140-node1 ~]# echo -e "\033[32;1mHello,World\033[0m"Hello,World

1.6.11 shutdown

关机或重启命令

 命令格式:
 shutdown [OPTIONS...] [TIME] [WALL...]  
     -h:halt 关机  
     -r:reboot 重启  
     -c:cancel 取消  
 TIME:  
     now 立即执行  
     hh:mm # 指定一个具体的时间  
     +m :在几分钟以后关机  
 WALL:可以指定关机或者重启时要发送的信息

示例

1.6.12 日期相关的命令

  • date 显示系统时钟

 显示日期时间:
     date [OPTION]... [+FORMAT]  
     FORMAT:格式符  
     %F:显示年-月-日  
     %T:显示小时:分钟:秒钟  
     %Y:年  
     %m:月  
     %d:日  
     %M:分钟 
     %H:小时  
     %S:秒  
     %s:从1970-01-01到命令执行的那一刻所经历的秒钟(unix元年)
     设定日期时间:date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]  date 月日时分年.秒  date 120415492016.08
 [root@bj-1-140-node1 ~]# date
 Sun Dec  4 18:34:38 CST 2016
 [root@bj-1-140-node1 ~]# date +%F2016-12-04
 [root@bj-1-140-node1 ~]# date +%T18:34:45
 [root@bj-1-140-node1 ~]# date +"%F %T"2016-12-04 18:35:09
 # 设置系统时间
 [root@bj-1-140-node1 ~]# date 120418382016Sun Dec  4 18:38:00 CST 2016
  • hwclock 显示硬件时钟

 -c:把系统时钟设置为跟硬件时钟一样;-w:把硬件时钟设置为跟系统时间一样;
 [root@bj-1-140-node1 ~]# hwclock 
 Sun 04 Dec 2016 06:34:01 PM CST  -0.682422 seconds
  • cal 查看日历

[root@bj-1-140-node1 ~]# cal
    December 2016   
Su Mo Tu We Th Fr Sa
             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

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

联系我们

400-080-6560

在线咨询

工作时间:周一至周五,9:30-18:30,节假日同时也值班

QR code