Linux发行版介绍Linux系统基础使用入门Linux命令帮助Linux基础命令

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux发行版介绍Linux系统基础使用入门Linux命令帮助Linux基础命令相关的知识,希望对你有一定的参考价值。

计算机打的基础知识:
CPU(运算器、控制器)、memory、I/O(输入设备、输出设备)

程序运行模式:
    用户空间:user space,us (可执行普通指令)
    内核空间:system space (可执行特权指令)

POS:Postable Operating System 可移植操作系统
    POSIX 可移植操作系统规范

运行程序格式:
Windows:EXE,库文件dll(dynamic link library 动态链接库)
Linux:ELF,库文件so(shared object 共享对象)

程序:指令+数据
    指令:只读
    数据:读写

程序:算法+数据结构

库调用,系统调用:允许被调用的程序;

malloc() 申请内存空间;free() 释放内存空间;

编程语言
    汇编语言:微码编程(系统级程序员)
        系统中某些于硬件相关的特有代码、驱动程序开发;
    高级语言:C、C++
        系统级应用、驱动程序
    高级应用:java、python、php
        应用程序

Linux的发行版:
    slackware:
        suse:
            sles suse企业版
            opensuse
    debian:
        ubuntu
        mint
    redhat:
        rhel:redhat enterprise linux 企业版 每18个月发行一个新版本
        CentOS:兼容rhel的格式
        fedora:个人桌面版 测试新软件程序 每6个月发行一个新版本

    ArchLinux
    Gentoo
    LFS:Linux From scratch

    android:kernel+busybox+java虚拟机

    GNU:GPLv2、GPLv3、LGPL(lesser宽松的GPL)
        Apache:apache
        BSD:bsd

程序包管理器:
rpm:
RHEL、Fedora、suse、CentOS
dpt:
Debian、Ubuntu

自由软件:
自由使用、自由学习和修改、自由分发、自由创建衍生版

Linux的哲学思想:
1、一切皆文件;把几乎所有资源,包括硬件设备都组织为文件格式;
2、由众多单一目的的小程序组成;一个程序只实现一个功能,而且做好,组合小程序完成复杂任务;
3、尽量避免跟用户交互;目标:实现脚本编程,以自动完成某些功能;
4、使用纯文本文件保存配置信息;目标:一款使用的文本编辑器即能完成系统配置功能;

如何获取CentOS的发行版:
http://mirrors.aliyun.com
http://mirrors.sohu.com
http://mirrors.163.com

终端:
用户与主机交互,必然用到的设备,终端设备

物理终端:直接接入本机的显示器和键盘:/dev/console

虚拟终端:附加在物理终端之上的以软件方式虚拟实现的终端,CentOS 6默认启动的6个虚拟终端
    Crtl+Alt+F#:[1-6]
    图形终端:附加在物理终端之上的以软件方式虚拟实现的终端,但额外会提供桌面环境;
    设备文件路径:/dev/tty#

模拟终端:图形界面下打开的命令行接口,基于ssh协议或telnet协议等远程打开的界面
    设备文件:/dev/pts/# [0,oo) 零-正无穷

查看当前的终端设备:tty
命令示例如下:
[[email protected] ~]# tty
/dev/pts/2

交互式接口:启动终端后,在终端设备附加一个交互式应用程序
GUI:
X protocol、windows manager、desktop

    Desktop:
        GNOME(C,gtk图形开发库)
        KDE(C++,qt图形开发库)
        XFCE(轻量级桌面)

CLI:
    shell程序:
        sh(bourn)
        csh
        tcsh
        ksh
        bash(bourn again shell)遵循GPL协定
        zsh

 显示当前使用的shell:
 #echo $SHELL
 [[email protected] ~]# echo $SHELL
    /bin/bash

    显示当前系统使用的所有shell:
    #cat /etc/shells
    [[email protected] ~]# cat /etc/shells
    /bin/sh
    /bin/bash
    /sbin/nologin
    /bin/tcsh
    /bin/csh
    /bin/ksh

命令提示符:prompt
    [[email protected] ~]#
            [[email protected] ~]:PS1
            prompt:
                管理员:#
                普通用户:$

[[email protected] ~]# echo $PS1
[\[email protected]\h \W]\$
u:表示用户
h:表示主机名
W:表示工作目录

命令:
输入命令,回车
提请shell程序找到键入命令所对应的可执行程序或代码,并由其分析或提交给内核分配资源将其运行起来;
表现为一个或多个进程;

在shell中可执行的命令有两类:
    內建命令:由shell自带的,而且通过某命令形式停工;
    外部命令:在当前系统的某文件系统系统路径下有对应的可执行程序文件
        which、whereis
    [[email protected] ~]# which tty
    /usr/bin/tty

    [[email protected] ~]# which cat
    /bin/cat

    [[email protected] ~]# whereis tty
    tty: /usr/bin/tty /usr/share/man/man4/tty.4.gz /usr/share/man/man1/tty.1.gz /usr/share/man/man1p/tty.1p.gz

    [[email protected] ~]# whereis cat
    cat: /bin/cat /usr/share/man/man1/cat.1.gz /usr/share/man/man1p/cat.1p.gz

区别內建或外部命令:
    #type command

內建命令:
[[email protected] ~]# type cd
cd is a shell builtin

外部命令:
[[email protected] ~]# type tty
tty is hashed (/usr/bin/tty)

运行命令:
命令格式:
commmand [options选项...] [arguments参数...]
选项:用户启用或关闭命令的某个或某些功能
短选项:-c,例如:-l、-h
多个短选项可合并使用,例如:-l、-h,可写作:-lh
[[email protected] ~]# ls -l -h
total 72K
-rw------- 1 root root 1.3K Mar 15 16:47 anaconda-ks.cfg
drwxr-xr-x 2 root root 4.0K Mar 15 16:53 Desktop
-rw-r--r-- 1 root root 37K Mar 15 16:47 install.log
-rw-r--r-- 1 root root 3.6K Mar 15 16:47 install.log.syslog
-rw-r--r-- 1 root root 195 Mar 15 16:51 scsrun.log

            [[email protected] ~]# ls -lh
            total 72K
            -rw------- 1 root root 1.3K Mar 15 16:47 anaconda-ks.cfg
            drwxr-xr-x 2 root root 4.0K Mar 15 16:53 Desktop
            -rw-r--r-- 1 root root  37K Mar 15 16:47 install.log
            -rw-r--r-- 1 root root 3.6K Mar 15 16:47 install.log.syslog
            -rw-r--r-- 1 root root  195 Mar 15 16:51 scsrun.log

            长选项:--word,例如:--long,--human-readable
                长选项一般不能合并使用
            [[email protected] ~]# ls --human-readable
            anaconda-ks.cfg  Desktop  install.log  install.log.syslog  scsrun.log

            参数:命令的作用对象;向命令提供数据;

            注意:
                1、多选项、以及多参数和命令之间都应该使用空白字符分隔;
                2、取消命令执行,Ctrl+c;

文件系统:
Windows C:\Program files\office1\word\word.exe
Linux /etc/sysconfig/network-scripts/ifcfg-eth0

文件有两类数据:
    元数据:metadata 数据属性信息、存放在索引中
    数据:data

1、文件名严格区分字符大小写:file1、File1、FILE1是不同的部件;
2、文件名可使用除/以外的任意字符,不建议使用特殊字符;/是根目录,路径分隔符;
3、文件名长度最长不能超过255个字符;
4、所有以.开头的文件,均为隐藏文件;

路径:
    绝对路径,从根目录起始的路径:
    [[email protected] ~]# cd /etc/sysconfig/network-scripts/
    [[email protected] network-scripts]# pwd
    /etc/sysconfig/network-scripts

    相对路径,从当前目录起始的路径:
    [[email protected] ~]# cd /etc
    [[email protected] etc]# pwd
    /etc
    [[email protected] etc]# cd sysconfig/network-scripts/
    [[email protected] network-scripts]# pwd
    /etc/sysconfig/network-scripts

    .:表示当前目录
    ..:表示当前目录的上一级目录、父目录

    当前目录:current directory,也称作working directory;工作目录
    pwd:print working directory 显示工作目录

    LSB:linux standard base linux标准库

Linux命令帮助的获取

外部命令:都有一个可执行程序,位于文件系统某目录下:
    which、whereis

    shell程序搜寻可执行程序文件的路径定义在PATH环境变量中
        # echo $PATH
        [[email protected] ~]# echo $PATH
        /usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

        注意:自左向右的搜寻

格式:command [options...] [arguments...] (命令 选项... 参数...)

內建命令: # help command
外部命令:
    1、# command --help # command -h
    2、使用手册(manual) # man command
    3、信息页 # info command
    4、程序自身的帮助文档 readme、install、changelog
    5、程序官方文档、官方站点的Documentation
    6、发行版的官方文档
    7、Google

    内部命令帮助
        # help command
        [[email protected] ~]# help cd
        cd: cd [-L|-P] [dir]

        shell搜寻到的外部命令的路径结果会缓存到kv(key-value键值)存储中

history命令:
    作用是什么?相关的环境变量是什么?有用的选项?

    管理命令历史,会读取命令历史文件中记录的命令:~/.bash_history
    [[email protected] ~]# cat .bash_history

    cat .bash_history
    echo "" > .bash_history
    cat .bash_history 
    history -a

    登录进shell后新执行的命令只会记录在缓存中:这些命令会在用户退出时“追加”到命令历史文件中:

    history:
        -a:追加本次会话新执行的命令历史列表到历史文件中;
        [[email protected] ~]# history -a
        [[email protected] ~]# cat .bash_history
        echo "" > .bash_history
        history -a
        cat .bash_history
        init 6
        history -a

        -d # :删除历史中指定的命令;

        -c:清空命令历史;
        [[email protected] ~]# history -c
        [[email protected] ~]# history
            1  history

        快捷操作:
        !#:调用历史中第#条命令;
        [[email protected] ~]# history
        1  history
        2  ls
        3  history
        [[email protected] ~]# !2
        ls
        anaconda-ks.cfg  install.log         scsrun.log
        Desktop          install.log.syslog

        !string:调用历史中最近一个以string开头的命令;
        [[email protected] ~]# history
        1  history
        2  cd
        3  ls
        4  history
        [[email protected] ~]# !c
        cd

    !!:执行上一条命令
    [[email protected] ~]# history
1  history
2  ls
3  cd
4  history
    [[email protected] ~]# !!
    history
1  history
2  ls
3  cd
4  history
5  history

    外部命令获取帮助:
    man command
    手册页:/usr/share/man
    man1...man8
        man1:用户命令
        man2:系统调用
        man3:C库调用
        man4:设备文件及特殊文件
        man5:配置文件格式
        man6:游戏
        man7:杂项
        man8:管理类的命令

    注意:有些命令在不止一个章节中存在帮助手册
    要查看指定章节中的手册:man # command;whatis command该命令可以帮助查询敏玲在哪些章节中存在帮助手册;
    [[email protected] ~]# whatis passwd
    passwd               (1)  - update user‘s authentication tokens
    passwd               (5)  - password file
    passwd              (rpm) - The passwd utility for setting/changing passwords using PAM
    passwd [sslpasswd]   (1ssl)  - compute password hashes
    [[email protected] ~]# man 1 passwd
    [[email protected] ~]# man 5 passwd

    man命令的配置文件:/etc/man.config
    manpath /path/to/somewhere:指定新的手册文件搜索位置
    MANPATH_MAP /bin            /usr/share/man
    MANPATH_MAP /sbin           /usr/share/man
    MANPATH_MAP /usr/bin        /usr/share/man
    MANPATH_MAP /usr/sbin       /usr/share/man
    MANPATH_MAP /usr/local/bin      /usr/local/share/man
    MANPATH_MAP /usr/local/sbin     /usr/local/share/man
    MANPATH_MAP /usr/X11R6/bin      /usr/X11R6/man
    MANPATH_MAP /usr/bin/X11        /usr/X11R6/man
    MANPATH_MAP /usr/bin/mh     /usr/share/man

    man -M /path/to/somewhere command:到指定位置下搜索comand命令的手册页并显示之;
    [[email protected] ~]# man -M /usr/share/man passwd

    帮助手册中的段落说明:
    NAME 命令名称、基本功能
    SYNOPSIS 使用简要帮助
    DESCRIPTION 描述详细功能
    OPTIONS 选项
    EXAMPLE 使用示例
    AUTHOR 作者
    REPORTING BUGS 报告BUGS的文职
    SEE ALSO 参考

    SYNOPSIS:
    []:可选内容
    <>:必选内容
    a|b:二选一、或者多选一
    ...:同一内容可出现多次

    man命令的操作方法:
    space空格键、ctrl+V、ctrl+f、ctrl+F:向文件尾部翻屏
    b、ctrl+B:向文件首部翻屏
    d、ctrl+D:向文件尾部翻半屏
    u、ctrl+U:向文件首部翻半屏
    RETURN回车键、ctrl+N、ectrl+E、j、ctrl+J:向文件尾部翻一行
    y、ctrl+Y、ctrl+P、k、ctrl+K:向文件尾部翻一行
    q:退出

    #:跳转到第#行;
    1G:回到文件首部
    G:翻到文件尾部

    文件搜索:
    /keyword:以keyword指定的字符串为关键字,从当前位置向文件尾部搜索;不区分字符大小写;
        n:下一个
        N:上一个
?keyword:以keyword指定的字符串为关键字,从当前位置向文件首部搜索;不分区字符大小写;
    n:跟搜索命令同方向,下一个
    N:跟搜索命令反方向,上一个

    info命令
        info command

程序自身的帮助文档
    /usr/share/doc/command-version
    [[email protected] ~]# cd /usr/share/doc
    [[email protected] doc]# ll
    total 3864
    drwxr-xr-x  2 root root 4096 Mar 15 16:45 a2ps-4.13b
    drwxr-xr-x  2 root root 4096 Mar 15 16:44 acl-2.2.39
    drwxr-xr-x  2 root root 4096 Mar 15 16:47 alacarte-0.10.0
    drwxr-xr-x  2 root root 4096 Mar 15 16:45 alchemist-1.0.36
    drwxr-xr-x  2 root root 4096 Mar 15 16:45 alsa-lib-1.0.17

基础命令:
date:
date [option]...[+format]:显示
format:显示符号
%y 两位的年份
[[email protected] doc]# date +%y
18

    %Y 四位的年份
    [[email protected] doc]# date +%Y
    2018

    %m 月份
    [[email protected] doc]# date +%m
    03

    %h 月份英文缩写
    [[email protected] doc]# date +%h
    Mar

    %d 当月的几号
    [[email protected] doc]# date +%d
    19

    %H 小时
    [[email protected] doc]# date +%H
    11

    %M 分钟
    [[email protected] doc]# date +%M
    03

    %S 秒钟
    [[email protected] doc]# date +%S
    28

    %s unix元年到现在的秒数
    [[email protected] doc]# date +%s
    1521428720

    %D 日期
    [[email protected] doc]# date +%D
    03/19/18

    %F 日期
    [[email protected] doc]# date +%F
    2018-03-19

    %T 时间
    [[email protected] doc]# date +%T
    11:07:57

    date [MMDDhhmm[[cc]yy][.ss]] :设置日期时间
    MM:月份
    DD:几号
    hh:小时
    mm:分钟
    yy:两位年份
    ccyy:四位年份
    .ss:秒钟

    [[email protected] doc]# date 0319112018.00
    Mon Mar 19 11:20:00 CST 2018

    [[email protected] doc]# date 031911202018.00
    Mon Mar 19 11:20:00 CST 2018

Linux的两种时钟:
系统时钟:由Linux内核CPU的工作频率进行的计时:date
硬件时钟:hwclock

[[email protected] doc]# date;hwclock
Mon Mar 19 11:22:51 CST 2018
Mon 19 Mar 2018 11:23:12 AM CST  -0.812703 seconds

hwclock:显示硬件时钟
-s,--hctosys 以硬件时钟为准设置系统时钟
[[email protected] doc]# hwclock -s
[[email protected] doc]# date;hwclock
Mon Mar 19 11:24:59 CST 2018
Mon 19 Mar 2018 11:25:00 AM CST -0.634669 seconds

-w,--systohc 以系统始终为准设置硬件时钟
[[email protected] doc]# hwclock -w
[[email protected] doc]# date;hwclock
Mon Mar 19 11:26:14 CST 2018
Mon 19 Mar 2018 11:26:16 AM CST  -0.537715 seconds

cal:显示日历
[[email protected] doc]# cal
March 2018
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

目录相关的命令
当前目录或工作目录
主目录,家目录;HOME
root:/root
普通用户:/home/username、/home/tom

    ~:表示用户的家目录

cd
    cd或cd~:表示切换到当前用户的主目录
    [[email protected] ~]# cd
    [[email protected] ~]# pwd
    /root

    [[email protected] tom]# cd ~
    [[email protected] ~]# pwd
    /root

    cd ~username:表示切换到指定用户的家目录
    [[email protected] ~]# cd ~tom
    [[email protected] tom]# pwd
    /home/tom

    cd - :在上一个目录和当前目录之间来回切换
    [[email protected] home]# cd -
    /root
    [[email protected] ~]# cd -
    /home

    .:表示当前目录
    ..:表示当前目录的父目录

    相关的环境变量
    PWD:保存了当前目录路径
    OLDPWD:上一次所在目录路径
    [[email protected] home]# echo $PWD
    /home
    [[email protected] home]# echo $OLDPWD
    /root

    pwd:显示当前工作目录
    ls:list 显示指定路径下的文件列表

ls [option]...[dir]...
-a,--all:显示所有文件,包括隐藏文件
[[email protected] home]# ls -a
.  ..  tom
[[email protected] home]# ls --all
.  ..  tom

-l:长格式
-rw-r--r-- 1 root root 37412 Mar 15 16:47 install.log
    -rw-r--r--
    最左侧的第一位:文件类型
    -:普通文件
    d:目录文件
    l:链接文件
    b:块设备
    c:字符设备
    p:管道文件
    s:套接字文件

    后面的9位,访问权限,perm

    数字1:文件被硬链接的次数;
    左root:文件的owner,文件的属主
    右root:文件的group,文件的属组
    37412:文件的size
    Mar 15 16:47:文件的最近一次被修改的时间
    install.log:文件名

    -h,--human-readable:单位换算,以人类易读的格式显示文件大小,通常与选项-l一起使用
    [[email protected] ~]# ls -lh
    total 72K
    -rw------- 1 root root 1.3K Mar 15 16:47 anaconda-ks.cfg
    drwxr-xr-x 2 root root 4.0K Mar 15 16:53 Desktop
    -rw-r--r-- 1 root root  37K Mar 15 16:47 install.log
    -rw-r--r-- 1 root root 3.6K Mar 15 16:47 install.log.syslog
    -rw-r--r-- 1 root root  195 Mar 15 16:51 scsrun.log

    -d:显示目录自身的相关属性;通常要与-l一起使用;
    [[email protected] ~]# ls -ld
    drwxr-x--- 14 root root 4096 Mar 16 08:30 .

    -r,--reverse:逆序显示
    [[email protected] ~]# ls -lr
    total 72
    -rw-r--r-- 1 root root   195 Mar 15 16:51 scsrun.log
    -rw-r--r-- 1 root root  3672 Mar 15 16:47 install.log.syslog
    -rw-r--r-- 1 root root 37412 Mar 15 16:47 install.log
    drwxr-xr-x 2 root root  4096 Mar 15 16:53 Desktop
    -rw------- 1 root root  1264 Mar 15 16:47 anaconda-ks.cfg

    -R,--recurisve:递归显示

    [[email protected] ~]# ls -R /root
    /root:
    anaconda-ks.cfg  Desktop  install.log  install.log.syslog  scsrun.log

    /root/Desktop:

stat /path/to/somefile:获取指定文件的元数据属性信息:
[[email protected] ~]# stat /etc/fstab
File: `/etc/fstab‘
Size: 534 Blocks: 16 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 652169 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2018-03-19 09:01:14.000000000 +0800
Modify: 2018-03-15 16:44:22.000000000 +0800
Change: 2018-03-15 16:47:52.000000000 +0800

文件查看命令:cat、tac
cat [option]...[file]...
[[email protected] ~]# cat /etc/fstab /etc/issue
/dev/VolGroup00/LogVol00 / ext3 defaults 1 1
LABEL=/boot /boot ext3 defaults 1 2
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/dev/VolGroup00/LogVol01 swap swap defaults 0 0
Red Hat Enterprise Linux Server release 5.7 (Tikanga)
Kernel \r on an \m

[[email protected] ~]# tac /etc/fstab /etc/issue
/dev/VolGroup00/LogVol01 swap swap defaults 0 0
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
tmpfs /dev/shm tmpfs defaults 0 0
LABEL=/boot /boot ext3 defaults 1 2
/dev/VolGroup00/LogVol00 / ext3 defaults 1 1

Kernel \r on an \m
Red Hat Enterprise Linux Server release 5.7 (Tikanga)

-E:显示行结束符$
[[email protected] ~]# cat -E /etc/issue
Red Hat Enterprise Linux Server release 5.7 (Tikanga)$
Kernel \r on an \m$
$

-n:对显示出的每一行进行编号
[[email protected] ~]# cat -n /etc/issue
1 Red Hat Enterprise Linux Server release 5.7 (Tikanga)
2 Kernel \r on an \m
3

文件内容类型查看命令:file
file /path/to/somewhere
[[email protected] ~]# file /etc/issue
/etc/issue: ASCII text
[[email protected] ~]# file /bin/ls
/bin/ls: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, stripped
[[email protected] ~]# file /dev/console
/dev/console: character special (5/1)

回显命令:echo
-n:禁止自动添加换行符号
[[email protected] ~]# echo "how are you?"
how are you?
[[email protected] ~]# echo -n "how are you?"
how are you?[[email protected] ~]#

-e:允许使用转义符
\n 换行

[[email protected] ~]# echo -e "how \nare you?"
how
are you?

\b 退格

[[email protected] ~]# echo -e "how\b are you?"
ho are you?

\t 制表符 Tab键

[[email protected] ~]# echo -e "how\t are you?"
how are you?

echo "$VAR_NAME":变量会替换,双引号表示弱引用
[[email protected] ~]# echo "$PS1"
[\[email protected]\h \W]\$

echo ‘$VAR_NAME‘ :变量不会替换,单引号表示强引用
[[email protected] ~]# echo ‘$PS1‘
$PS1

which:显示命令对应的程序文件路径
which [option] command
[[email protected] ~]# which ls
alias ls=‘ls --color=tty‘
/bin/ls
[[email protected] ~]# which cat
/bin/cat

--skip-alias:禁止显示别名
[[email protected] ~]# which ls
alias ls=‘ls --color=tty‘
    /bin/ls
[[email protected] ~]# which --skip-alias ls
/bin/ls

whatis:whatis命令显示手册部分的页眉行。然后可以发出man命令以获取附加的信息
[[email protected] ~]# whatis cd
cd (1p) - change the working directory
cd [builtins] (1) - bash built-in commands, see bash(1)
[[email protected] ~]# whatis mkdir
mkdir (1) - make directories
mkdir (1p) - make directories
mkdir (2) - create a directory
mkdir (3p) - make a directory
[[email protected] ~]# whatis useradd
useradd (8) - create a new user or update default new user information

使用makewathis命令可将当前系统上所有的帮助手册及与之对应的关键字创建为一个数据库。

以上是关于Linux发行版介绍Linux系统基础使用入门Linux命令帮助Linux基础命令的主要内容,如果未能解决你的问题,请参考以下文章

Linux之小白入门二

Linux基础篇

国内的用户一般用啥Linux发行版?

Linux发行版的系统目录名称命名规则以及用途

黑马程序员C语言基础第一天

第一周博客--计算机操作系统及Linux基础介绍