计算机基础及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

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

(0)
oranixoranix
上一篇 2016-12-04 18:21
下一篇 2016-12-04 18:56

相关推荐

  • Hadoop集群配置(最全面总结)

    通常,集群里的一台机器被指定为 NameNode,另一台不同的机器被指定为JobTracker。这些机器是masters。余下的机器即作为DataNode也作为TaskTracker。这些机器是slaves\ 官方地址:(http://hadoop.apache.org/common/docs/r0.19.2/cn/cluster_setup.ht…

    Linux干货 2015-04-13
  • Linux-Basic—shell如何解释命令的运行

    附件下载: Linux Basics-shell.pdf

    Linux干货 2016-11-21
  • 正则表达式***(Regular Experssion)

    正则表达式 正则表达式缩写为regex、regexp、RE等。他是文本处理极为重要的技术,其应用非常广泛,shell中处理文本的命令、各种高级编程语言都支持正则表达式,用它可以对字符串按照某种规则进行检索和替换, 分类 BRE:基本正则,grep、sed、vi等软件支持。vim支持扩展正则 ERE:扩展正则,egrep(grep -E)、sed -r等。 P…

    Linux干货 2017-11-05
  • 五种开源协议的比较(BSD,Apache,GPL,LGPL,MIT)

    BSD开源协议(original BSD license、FreeBSD license、Original BSD license) BSD开源协议是一个给于使用者很大自由的协议。基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。 但”为所欲为”的前提当你发布使用了BSD协议的代码,或则以BSD协议代码…

    Linux干货 2017-01-30
  • 关于until循环在shell脚本中的实际应用

    Until循环在shell脚本中的实际应用 1、每隔3秒钟到系统上获取已经登录的用户的信息;如果发现用户hacker登录,则将登录时间和主机记录于日志/var/log/login.log中,并提示该用户退出系统 2、随机生成10以内的数字,实现猜字游戏,提示比较大或小,相等则退出 3、编写脚本,求100以内所有正整数之和 4、编写脚本,通过ping命令探测1…

    Linux干货 2016-08-18
  • Linux用户和组管理整理

    本节介绍Linux用户和组相关的配置文件,用户账号管理、查询用户信息以及切换用户的相关命令,将会让我们更了解各配置文件中各个字段的含义,以及各相关命令的使用方法,方便Linux运维人员管理Linux系统中的用户和组。 背景: Linux是个多用户、多任务的系统,考虑到每个人的隐私权、每个人喜好的工作环境以及每个用户所使用的权限等方面的不同,所以设定了“用户”…

    Linux干货 2015-06-15