码迷,mamicode.com
首页 > 其他好文 > 详细

第三天:终端和基本命令

时间:2016-07-22 23:14:23      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:运维笔记

今天学了一些初步的命令,能实现一些基础功能。

chvt : change vitrual terminal 切换虚拟终端

  • 使用方法 : chvt # <- 加终端号

  • 注意:图形界面不能随意切换其他的终端,只有在字符行节目才能进行切换。

lsb_release:查看系统信息

  • 使用方法:lsb_release -a

tty:查看终端类型

  • 使用方法:tty

  • 注意:/dev/console在单用户模式(init 1)启用

虚拟终端:附加在物理终端之上的以软件方式虚拟实现的终端,

  • 设备文件路径:/dev/tty#,CentOS 6默认启动6个虚拟终端

  • 使用方法:Ctrl+Alt+F#: [1,6]

模拟终端:图形界面打开的命令行以及基于ssh协议或
telnet协议等远程打开的界面。

  • 设备文件:/dev/pts/# [0, ∞)

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

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

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

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

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

GNU Bourne-Again Shell(bash)是GNU计划中重要的工具软件之一,目前也是 Linux标准的shell ,与sh兼容。CentOS默认使用
显示当前使用的shell:

  • #echo ${SHELL}

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

  • #cat /etc/shells

命令提示符:prompt
[root@localhost ~]#
显示提示符格式:
[root@localhost ~]:echo $PS1
prompt:

  • 管理员:#

  • 普通用户:$

输入命令,回车:
提请shell程序找到键入命令所对应的可执行程序或代码
,并由其分析后提交给内核分配资源将其运行起来
在shell中可执行的命令有两类:
内部命令:由shell自带的,而且通过某命令形式提供
enable命令可以启用或禁用内部命令
外部命令:在当前系统的某文件系统路径下有对应的可执行程序文件;which,whereis,区别当前使用的命令是内部或外部命令:

  • # type COMMAND

hash命令:
搜寻到的外部命令路径结果缓存至kv(key-value)存储中

  • hash 显示hash

  • 缓存 hash –r 清除缓存

COMMAND [OPTIONS...] [ARGUMENTS...]
选项:用于启用或关闭命令的某个或某些功能;

  • 短选项:-c, 例如:-l, -h

  • 长选项:--word,例如:--all, --human-readable

  • 参数:命令的作用对象,比如文件名,用户名等

注意:

  • 1、多选项,以及多参数和命令之间使用空白字符分隔

  • 2、取消和结束命令执行:Ctrl+c,Ctrl+d

  • 3、多个命令可以用;符号分开

  • 4、一个命令可以用\分成多行

date -显示日期和时间
Linux的两种时钟:
系统时钟:由Linux内核通过CPU的工作频率进行的;
硬件时钟:主板
hwclock,clock: 显示硬件时钟

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

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

cal -显示日历

  • 使用方法:cal #<-加年份或月份

技术分享
nano –文本编辑

  • 使用方法:nano filename

技术分享

screen:

  • 打开新的screen: screen –S [SESSION]

  • 加入会话:screen –x [SESSION]

  • 退出并关闭screen:exit

  • 剥离当前screen:Ctrl+a,d

  • 显示所有已经打开的screen:screen -ls

  • 恢复某screen:screen -r [SESSION]

echo命令

  •  功能:显示字符

  • 语法:echo [-neE][字符串]

  •  说明:echo会将输入的字符串送往标准输出。输出的字符串间以空白字符隔开, 并在最后加上换行号

  • echo "$VAR_NAME": 变量会替换,双引号表弱引用

  • echo ‘$VAR_NAME‘: 变量不会替换,强引用

  • $echo –e “Enter the file name: \c” echo 需要使用-e 参数来打印转义字符.

 命令行扩展:$( ) 或 ``
把一个命令的输出打印给另一个命令的参数
$ echo "This system‘s name is $(hostname ) "
This system‘s name is server1.example.com
$echo "i am `whoami` "
i am root
括号扩展:{ }
打印重复字符串的简化形式
$ echo file{1,3,5}
file1 file3 file5
$ rm -f file{1,3,5}

命令补全
内部命令:
外部命令:bash根据PATH环境变量定义的路径,自左而右在每个路径搜寻以给定命令名命名的文件,第一次找到的命令即为要执行的命令
用户给定的字符串只有一条惟一对应的命令,直接补全否则,再次Tab会给出列表
路径补全
把用户给出的字符串当做路径开头,并在其指定上级目录下搜索以指定的字符串开头的文件名
如果惟一:则直接补全,否则:再次Tab给出列表
作业

screen 熟练使用

技术分享 技术分享

1
2
3
4
5
6
7
8
9
10
11
12
13

#!/bin/bash
echo -e "\e[1;5m******\e[0m"
echo -e "\e[1;5m **** \e[0m"
echo -e "\e[1;5m ** \e[0m"
echo -e "\e[1;5m * \e[0m"
echo -e "\e[1;31m******\e[0m"
echo -e "\e[1;31m **** \e[0m"
echo -e "\e[1;31m ** \e[0m"
echo -e "\e[1;31m * \e[0m"
echo -e "\e[1;4m******\e[0m"
echo -e "\e[1;4m **** \e[0m"
echo -e "\e[1;4m ** \e[0m"
echo -e "\e[1;4m * \e[0m"

1
2
3
4
5
6
7
8
9
10
11
12
13
14

#!/bin/bash
BIRTH=1204
TODAY=`date +%d`
THISMOUTH=`date +%m`
BAI=100
BIRTHMOUTH=$(($BIRTH % $THISMOUTH))
BIRTHDAY=$(($BIRTH / $BAI))
MCHA=$(($BIRTHMOUTH - $THISMOUTH))
DAYCHA=$(($BIRTHDAY - $TODAY))
if [ $DAYCHA -le 3 ] && [ $MCHA -eq 0 ];then
echo -e "\bBirthday is coming soon..Birthday is $BIRTH"
else
echo ‘Today ,no birthday‘
fi

上述代码运行结果
技术分享
技术分享技术分享技术分享技术分享


本文出自 “11243775” 博客,谢绝转载!

第三天:终端和基本命令

标签:运维笔记

原文地址:http://11253775.blog.51cto.com/11243775/1828959

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!