Linux基础与命令解释

Linux基础与命令

Linux起源

     1984 年:Richard Stallman 发起GNU 项目和自由软件基金会

创建开源的UNIX 实用工具版本

创建通用公共许可证(GPL

开源软件许可实施原则

 1991 年:Linus Torvalds 发布Linux

创建开放源码,类Unix 的内核,在GPL 下发布

下载:www.kernel.org

 Linux 操作系统:

Linux 内核+ GNU 工具= 完整的类UNIX 操作系统

如:CentOS,Ubuntu,Android

Linux发行版

   slackware:SUSE Linux Enterprise Server (SLES)

opensuse 桌面

 debian: ubuntu mint

 redhat rhel: redhat enterprise linux

    每18 个月发行一个新版本

   CentOS :兼容rhel 的格式

   中标 麒麟:中标 软件

   fedora :每6 个月发行一个新版本

 ArchLinux :轻量简洁

Gentoo :极致性能, 不提供传统意义的安装程序

LFS: Linux From scratch  自制Linux

Android: kernel+busybox (工具集)+java 虚拟机、

 Linux 分支参考网站:http://futurist.se/gldt/

  世界上的开源许可证,大概有上百种

 GPLv2, GPLv3, LGPL(lesser) copyleftWordPress

 Apache: apache

 BSD: bsd

 Mozilla

 Apache

 MIT

Linux 哲学思想

  一切都是一个文件(包括硬件)

  小型,单一用途的程序

  链接程序,共同完成复杂的任务

  避免令人困惑的用户界面

  配置数据存储在文本中

 CentOS

https://wiki.centos.org/Download

http://mirrors.aliyun.com

http://mirrors.sohu.com

http://mirrors.163.com

   用户登录

 root  用户:

 一个特殊的管理帐户

 也被称为超级用户

 root 已接近完整的系统控制

 对系统损害几乎有无限的能力

 除非必要, 不要登录为 root

普通( 非特权  )用户

 权限有限

 造成损害的能力比较有限

            终端terminal

  设备终端

键盘 鼠标显示器

 ( 物理终端( /dev/console ) )

控制台console

  虚拟终端(tty :teletypewriters, , /dev/tty# # 为[1-6])

tty  可有n 个,Ctrl+Alt+F[1-6]

 ( 图形终端( /dev/tty7 ) ) startx, xwindows

CentOS 6: Ctrl + Alt + F7

CentOS 7:  在哪个终端启动,即位于哪个虚拟终端

 ( 串行终端( /dev/ttyS# ) )

ttyS

 ( 伪终端( pty :pseudo-tty , , /dev/pts/# ) )

pty, SSH 远程 连接

  查看 当前的 终端设备:#tty

     交互式接口:启动终端后,在终端设备附加一个交互式应用程序

    GUI :Graphic User Interface

X protocol, window manager, desktop

Desktop:

GNOME (C,  图形库gtk), ,

KDE (C++, 图形库qt)

XFCE ( 轻量级桌面)

    CLI :Command Line Interface

shell 程序:sh (bourn) csh tcsh ksh (korn)

            bash (bourn again shell)GPL zsh

 Shell  是Linux 系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。

 shell 也被称为LINUX 的命令解释器(command interpreter) )

 shell 是一种高级程序设计语言

               bash shell

 GNU Bourne-Again Shell(bash) 是GNU 计划中重要的工是 具软件之一,目前也是 Linux 标准的shell ,与sh 兼容

 CentOS 默认使用

  显示当前使用的shell

      #echo ${SHELL}

  显示当前系统使用的所有shell

      #cat /etc/shells

命令提示符: :prompt  

  显示提示符格式

    [root@localhost ~] :echo $PS1

  修改提示符格式

    PS1="\[\e[31m\][\u@\h \W]\\$\[\e[0m\]"

    \e \033 

    \u  当前用户

    \h  主机名简称 

    \H  主机名

    \w  当前工作 目录 

    \W  当前工作目录基名

    \t 24 小时时间格式 

    \T 12 小时时间格式

    \!  命令历史数 

    \#  开机后命令历史数

         在shell 中可执行的命令有两类:

    内部命令:由shell 自带的,而且通过某命令形式提供

    help  内部命令列表

    enable cmd  可以启用

    enable –n cmd  禁用 内部 命令

    enable –n  查看所有禁用的内部命令

    外部命令:在文件系统路径下有对应的可执行程序文件

    查看路径:which -a |–skip-alias ; whereis

    区别指定的命令是内部或外部命令:

        # type COMMAND

    Hash 缓存表:

        系统初始hash 表为空 ,当外部命令执行时,默认会 从ATH 路径下寻找该 命令,找到后会将这 条命令的 路径记录到

        hash 表中,当再次 使用该命令时,shell 解释器首先会查看hash表 ,存在将执行之,如果不存在,将会去 去PATH 路径下

        寻找 。利用hash 缓存表可大大提高命令的调用速率

    Hash 常见用法:

    hash 显示hash 缓存

    hash –l  显示hash 缓存,可作为输入使用

    hash –p path name  将命令全路径path起 起 别名为name

    hash –t name  打印缓存中name 的路径

    hash –d name  清除name 缓存

    hash –r 清除缓存

命令别名

        显示当前shell 进程所有可用的命令别名

       #alias

  定义别名NAME ,其相当于执行命令VALUE

#alias NAME='VALUE'

  在命令行中定义的别名,仅对当前shell 进程有效

  如果想永久有效,要定义在配置文件中

仅对当前用户:~/.bashrc

对所有用户有效:/etc/bashrc

         撤消别名:unalias

unalias [-a] name [name …]

-a取消所有别名

date  显示日期和时间

 Linux 两种 时钟

系统 时钟:由Linux 内核通过CPU 的工作频率进行

硬件 时钟:主板

hwclock clock:  显示硬件时钟

-s, –hctosys  以硬件时钟 准,校正系统时钟

-w, –systohc  以系统时钟为准 校正硬件时钟

时区: /etc/localtime

时间方面 :

% : 印出 %

%n : 下一行

%t : 跳格

%H :小时(0..23

%I : 小时(01..12

%k : 小时(0..23

%M : 分钟(0..59

%p : 显示本地时段上午下午

%r : 直接显示时间 12 小时制,格式为 hh:mm:ss [AP]M)

%s : 1970 1 1 00:00:00 UTC 到目前为止的秒数

%S : 秒(00..61

%T : 直接显示时间 24 小时制)

%X : 相当于 %H:%M:%S

%Z : 显示时区

日期方面 :

%a : 星期几 (Mon..Sun)

%A : 星期几 (Monday..Sunday)

%b : 月份 (Jan..Dec)

%B : 月份 (January..December)

%c : 直接显示日期与时间

%d : (01..31

%D : 直接显示日期 (mm/dd/yy)

%h : %b

%j : 一年中的第几天 (001..366

%m : 月份 (01..12

%U : 一年中的第几周 (00..53 (以 Sunday 为一周的第一天的情形)

%w : 周中的第几天 (0..6

%W : 一年中的第几周 (00..53 (以 Monday 为一周的第一天的情形)

%x : 直接显示日期 (mm/dd/yy)

%y : 年份的最后两位数字 (00.99

%Y : 完整年份 (0000..9999

若是不以加号作为开头,则表示要设定时间,而时间格式为 MMDDhhmm[[CC]YY][.ss],其中 MM 为月份,DD 为日,hh 为小时,mm 为分钟,CC 为年份前两位数字,YY 为年份后两位数字,ss 为秒数

把计 :

-d datestr : 显示 datestr 中所设定的时间 (非系统时间)

–help : 显示辅助讯息

-s datestr : 将系统时间设为 datestr 中所设定的时间

-u : 显示目前的格林威治时间

–version : 显示版本编号

例子 :

显示时间后跳行,再显示目前日期 :

date +%T%n%D

显示月份与日数 :

date +%B %d

显示日期与设定时间(12:34:56 :

date –date 12:34:56

     cal  显示日历

           cal –y

     nano  文本编辑

  关机:halt, poweroff

  重启:reboot

-f:  强制,不调用shutdown

-p:  切断电源

  关机或重启:shutdown

shutdown [OPTION]… TIME [MESSAGE]

-r: reboot

-h: halt

-c cancel

TIME:now:  立刻

+m: 相对时间表示法,多久之后;例如 +3

hh:mm:  绝对时间表示,指明具体时间

       用户登录信息查看命令:

whoami:  显示当前登录有效用户

who:  系统当前所有的登录会话

w:  系统当前所有的登录会话及所做的操作

screen 命令:

创建新screen 会话:

screen –S [SESSION]

加入screen 会话:

screen –x [SESSION]

退出并 关闭screen 会话:

exit

剥离 当前screen 会话:

Ctrl+a,d

显示所有已经打开的 screen 会话:

screen -ls

恢复某 screen 会话

screen -r [SESSION]

echo 命令

  功能:显示字符

-E (默认)不支持解释功能

-n 不自动换行

-e 启用字符的解释功能

启用命令 选项-e,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出

\a  发出警告声

\b  退格键

\c  最后不加上换行符号

\n  换行且光标移至行首

\r  回车,即光标移至行首,但不换行

\t  插入tab

\\  插入\ 字符

\0nnn  插入nnn (八进制)所代表的ASCII 字符

echo -e '\033[43;31;5mmagedu\033[0m'

\xHH 插入HH (十六进制)所代表的ASCII

122.png

  重复前一个命令,有4 种方法:

重复前一个命令 使用上方向键,并回车执行

!!  并回车执行

输入 !-1  并回车执行

Ctrl+p  并回车执行

 Ctrl + n :历史中的下一条命令

 !num: 按照history 命令输出中的序号重复对应命令

 !-n : 重复n

 !string  重复前一个以“string ”开头的命令

 !?string  重复前一个包含string 的命令

 !string:p  仅打印命令历史,而不执行

 !$:p 打印输出 !$  的内容

 !*:p 打印输出 !* (所有参数)  的内容

 ^string  删除上一条命令中的string

 ^string1^string2  将上一条命令中的string1 替换为string2

 !!:gs/string1/string2  将上一条命令中所有的string1 都替换为 string2

  使用up (向上)和down (向下)键来上下浏览从前输入的

命令

 ctrl-r 来在命令历史中搜索命令

reverse-i-search `’:

 Ctrl+g :从历史搜索模式退出

  要重新调用前一个命令中最后一个参数:

 !$ 表示

 Esc, . (点击Esc 键后松开,然后点击键)

 Alt+ . (按住Alt 键的同时点击键)

 command !^ :  利用上一个命令的第一个参数做cmd 的参数

 command !$ :  利用上一个命令的最后一个参数做cmd 的参数

 command !* :  利用上一个命令的全部参数做cmd 的参数

 command !:n :  利用上一个命令的第n 个参数做cmd

 command !n:^  调用第n 条命令的第一个 参数

 command !n:$  调用第n 条命令的最后一个 参数

 command !n:m  调用第n 条命令的第 m 参数

 command !n:*  调用第n 条命令的所有

-c:  清空命令历史

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

#:  显示最近的# 条历史

-a:  追加本次会话新执行的命令历史列表至历史文件

-n:  读历史文件中未读过的行到历史列表

-r:  读历史文件附加到历史列表

-w:  保存历史列表到指定的历史文件

-p:  展开 历史参数成多行 ,但不存在历史列表中

bash 的快捷键

 Ctrl + l 清屏,相当于clear 命令

 Ctrl + o 执行当前命令,并重新显示本命令

 Ctrl + s 阻止屏幕输出,锁定

 Ctrl + q 允许屏幕输出

 Ctrl + c 终止命令

 Ctrl + z 挂起命令

 Ctrl + a 移到命令行首

 Ctrl + e 移到命令行尾

 Ctrl + f 按字符前移(右向)

 Ctrl + b 按字符后移(左向)

 Alt + f 按单词前移(右向)

 Alt + b 按单词后移(左向)

 Ctrl + xx  在命令行首和光标之间移动

 Ctrl + u 从光标处删除至命令行首

 Ctrl + k 从光标处删除至命令行尾

 Ctrl + w 从光标处向左删除至单词首

 Alt + d 从光标处向右删除至字尾

 Ctrl + d 删除光标处的字符

 Ctrl + h 删除光标前的字符

 Ctrl + y 将删除的字符粘贴至光标后

 Alt + c 从光标处更改为首字母大写的单词

 Alt + u 从光标处更改为全部大写的单词

 Alt + l 从光标处更改为全部小写的单词

 Ctrl + t 交换光标处和之前的字符

 Alt + t 交换光标处和之前的单词

 

 Alt + N 提示输入指定字符后,重复显示该字符N

  注意:Alt快捷键较少使用,因为常常和编辑器冲突

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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