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

(0)
SDSSDS
上一篇 2017-03-17
下一篇 2017-03-17

相关推荐

  • 第一周博客作业

    前言:这几周的课程大部分开班前就掌握了的,这次学的细一点,顺便学一下markdown写博客、排版。内容有部分是前几期学员写的,觉得写得不错,就斗胆截取了,还有部分是自己写的,也有一些是百度到的内容。 目录 一、描述计算机的组成及其功能 二、linux发行版 三、linux哲学思想 四、常用命令 五、如何获取命令的帮助信息 六、linux发行版的基础目录名称命…

    Linux干货 2017-01-09
  • http协议简介

        http:Hyper Text Transfer Protocol,超文本传输协议。是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。1960年美国人Ted Nelson构思了一种通过计算机处理文本信息的方法,并称之为超文本(hyp…

    Linux干货 2015-11-18
  • Ansible的基础知识

    为什么要学习ansible:     ansible是自动化运维的一种工具,使用ansible可以一次性管理多台主机,为多台主机安装或这执行相同或者不同的操作,省去了一台台主机去重复执行相同的任务,可以使用corn选项结合本机的crontab设置本主机的任务性计划,比如,每天导出nginx的access.log和err…

    Linux干货 2016-11-03
  • ​20151208完成了第二天课程中的第一课:Osey Linux发行版(01)

    完成了第二天课程中的第一课:Osey Linux发行版(01) 今天公司晚上有加班,回来晚了。只完成了第一课:Osey Linux发行版(01) 简要笔记如下: Linux哲学思想:    1、一切皆文件:             把几乎所有的资源,包括硬件设备都组织为文件格式;…

    Linux干货 2015-12-10
  • Linux用户及权限管理

    Linux用户及权限管理 当我们用ls -al查看一个文件的详细信息的时候会显示出一个有七个字段的文件详细信息,现在我们来了解下这七个字段各自代表的意义 drwxr-xr-x 18 root root 4096 12月 16 15:25 .config 我们先来说明这七段分别表示什么每个字段我们用 | 隔开 drwxr-xr-x | 18 | root | …

    Linux干货 2016-12-19
  • CentOS7常用网络管理命令总结

    一、CentOS7网络接口命名策略(systemd)二、CentOS7的基础网络管理命令2.1 NetworkManager服务2.2 nmtui文本交互式工具2.3 nmcli命令行接口工具nmcli的语法说明NetworkManager整体状态显示显示所有连接或仅活动的连接显示所有设备的状态显示指定设备的所有连接属性添加动态的以太网连接(DHCP)添加静…

    Linux干货 2016-06-09