5、总结Linux常用命令使用格式,并用实例说明。例如echo、screen、date、ifconfig、export等命令
在Linux中,一般命令的通用语法格式如下:
COMMAND [OPTIONS...] [ARGUMENTS...]
中括号表示可以省略,每个部分之间有一个或多个空格。
下面对几个常用命令的常用用法格式,实例说明。
echo [SHORT-OPTION]... [STRING]...
echo LONG-OPTION
echo命令的基本用法,很简单,就是echo命令后面跟上要输出的文本,如下。
echo -n 表示不换行输出
使用-e选项输出转义字符
常用的转义字符如下:
\b 转义后相当于按退格键(backspace) ,但前提是”\b”后面存在字符,具体效果参考下方示例。
\c 不换行输出,在”\c”后面不存在字符的情况下,作用相当于echo -n,具体效果参考下方示例。
\n 换行,效果看示例。
\f 换行,但是换行后的新行的开头位置连接着上一行的行尾,具体效果查看示例;
\v 与\f相同;
\t 转以后表示插入tab,即制表符,已经在上面举过例子;
\r 光标移至行首,但不换行,相当于使用”\r”以后的字符覆盖”\r”之前同等长度的字符,只看这段文字描述的话可能不容易理解,具体效果查看示例;
\\ 表示插入”\”本身;
使用echo命令的-e选项,除了能够输出转义字符,还能够在命令行中输出彩色的字符,或者带有彩色背景的字符。
当使用echo输出命令替换后的内容时,命令执行结果的格式可能会发生变化,比如,如果我们想要输出ifconfig命令执行后的结果,我们可能会使用如下命令
但是我们发现,这样输出的文本的格式发生了变化,这样可能不是我们想要的,因为当我们直接执行ifconfig命令时,ifconfig返回的结果是多行的,可是当我们使用echo输出的时候,格式发生了变化,如果想要按照命令执行后的原格式输出命令替换后的结果,可以使用如下方法,如下方法在写脚本的时候可能会用到。
screen
系统管理员经常需要SSH 或者telent 远程登录到Linux 服务器,经常运行一些需要很长时间才能完成的任务,比如系统备份、ftp 传输等等。通常情况下我们都是为每一个这样的任务开一个远程终端窗口,因为它们执行的时间太长了。必须等待它们执行完毕,在此期间不能关掉窗口或者断开连接,否则这个任务就会被杀掉,一切半途而废了。
语法
# screen [-AmRvx -ls -wipe][-d <作业名称>][-h <行数>][-r <作业名称>][-s ][-S <作业名称>]
参数说明
-A 将所有的视窗都调整为目前终端机的大小。
-d <作业名称> 将指定的screen作业离线。
-h <行数> 指定视窗的缓冲区行数。
-m 即使目前已在作业中的screen作业,仍强制建立新的screen作业。
-r <作业名称> 恢复离线的screen作业。
-R 先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。
-s 指定建立新视窗时,所要执行的shell。
-S <作业名称> 指定screen作业的名称。
-v 显示版本信息。
-x 恢复之前离线的screen作业。
-ls或--list 显示目前所有的screen作业。
-wipe 检查目前所有的screen作业,并删除已经无法使用的screen作业。
常用screen参数
screen -S yourname -> 新建一个叫yourname的session
screen -ls -> 列出当前所有的session
screen -r yourname -> 回到yourname这个session
screen -d yourname -> 远程detach某个session
screen -d -r yourname -> 结束当前session并回到yourname这个session
使用kill杀掉进程,使用screen -wipe命令清除该会话
yum下载安装sc使用screen -wipe命令清除该会话reen或http://ftp.gnu.org/gnu/screen/下载
date
date命令,用来显示和设置系统日期、时间。
1. 显示时间。date +%STRINT
%a 星期几的简写
%A 星期几的全写,比如date +%A%a
%b 月分简写
%B 月分全写
%c 日期,星期,时间
%d 两位数日期
%D mm/dd/yy
%e 两位数日期去零,1--31
%F 日期,yyyy-mm-dd
%H 24小时
%I 12小时
%j 一年的第好多天
%m 两位数月
%M 分钟
%s 从 1970年1月1日0点0分0秒到现在历经的秒数 (GNU扩充)
%S 秒
%T 24小时间,常用,hh24:mm:ss
%y 两位年
%Y 4位年
%Z 时区
常用
年月日:date +"%Y-%m-%d" =%F
时分秒:date +"%H:%M:%S" =%T
2. 设置日期时间
date –s STRINT 任意格式
date –s “2008-05-12”
date –s “19:23:17”
date -d "next monday" 下周一的日期
date –d “-100 days ago”100天以后
date –d “100 days ago”100天以前
3. clock
主板时钟
hwclock=clock
-s hctosys 把硬件时钟写入系统
-w systohc 把系统时间写到硬件
ifconfig
fconfig工具不仅可以被用来简单地获取网络接口配置信息,还可以修改这些配置。用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在。要想将上述的配置信息永远的存的电脑里,那就要修改网卡的配置文件了。
命令常见参数说明
参数
说明
-a
显示全部接口信息。
-s
显示摘要信息(类似于 netstat -i)。
为网卡设置IPv4地址。
给指定网卡配置IPv6地址。
删除指定网卡的IPv6地址。
设置网卡的子网掩码。掩码可以是有前缀0x的32位十六进制数,也可以是用点分开的4个十进制数。如果不打算将网络分成子网,可以不管这一选项;如果要使用子网,那么请记住,网络中每一个系统必须有相同子网掩码。
设定一个远端地址,建立点对点通信。
建立隧道。
设置硬件地址。
设置最大传输单元。
设置指定网卡是否支持ARP协议。-表示不支持arp。
为网卡设置组播标志。
设置是否支持网卡的promiscuous模式,如果选择此参数,网卡将接收网络中发给它所有的数据包。-表示关闭混杂模式。
为网卡设置传输列队的长度。
启动指定网卡。
关闭指定网卡。该参数可以有效地阻止通过指定接口的IP信息流,如果想永久地关闭一个接口,我们还需要从核心路由表中将该接口的路由信息全部删除。
简单实例
3.1 显示网络设备信息
(1) 显示激活的网卡信息
ifconfig
(2) 显示所有的网卡信息
ifconfig -a
(3) 显示简要的网卡信息
ifconfig -s
3.2 启动关闭指定网卡
(1) 关闭网卡
ifconfig eth0 down
(2) 启动网卡
ifconfig eth0 up
3.3 配置和删除ip地址
(1) 配置ip
// 配置ip地址
ifconfig eth0 192.168.1.100
// 配置ip地址和子网掩码
ifconfig eth0 192.168.1.100 netmask 255.255.255.0
// 配置ip地址、子网掩码和广播地址
ifconfig eth0 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.255
(2) 单网卡添加多个IP地址
ifconfig eth0:0 192.168.1.100 netmask 255.255.255.0 up
ifconfig eth0:1 192.168.2.100 netmask 255.255.255.0 up
(3) 删除IP地址
ifconfig eth0 del 192.168.1.100
3.4 修改MAC地址
ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE
3.5 启用和关闭ARP协议
(1) 启用arp
ifconfig eth0 arp
(2) 禁用arp
ifconfig eth0 -arp
禁用arp的时候,可以看到出现NOARP字段。
[root@localhost ~]# ifconfig eth0 arp
[root@localhost ~]#
[root@localhost ~]# ifconfig eth0
eth0: flags=4163
inet 192.168.1.135 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::20c:29ff:fe9b:52d3 prefixlen 64 scopeid 0x20
ether 00:aa:bb:cc:dd:ee txqueuelen 1000 (Ethernet)
RX packets 2635 bytes 204710 (199.9 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1071 bytes 144688 (141.2 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@localhost ~]# ifconfig eth0 -arp
[root@localhost ~]#
[root@localhost ~]# ifconfig eth0
eth0: flags=4291
inet 192.168.1.135 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::20c:29ff:fe9b:52d3 prefixlen 64 scopeid 0x20
ether 00:aa:bb:cc:dd:ee txqueuelen 1000 (Ethernet)
RX packets 2636 bytes 204770 (199.9 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1071 bytes 144688 (141.2 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
export
在 Linux 系统中,除了 export 之外,env、set 和 declare 这三个命令也可以显示 Shell 中的变量。那这四个命令有什么区别呢?
这个问题,我们需要从 Shell 变量说起。Shell 的变量,可以分为“环境变量”和“自定义变量”两种类型,两者的区别在于作用范围不同。环境变量可以在其进程的子进程中继续有效,而自定义变量的势力范围则无法延伸到其进程的子进程中。
好了,知道了环境变量和自定义变量的区别,我们正式开始介绍 export/env/set/declare 的区别:
env:显示当前用户的环境变量,但不会显示其自定义变量。
export:功能同 env 一样,也是显示当前用户的环境变量,只不过该命令的输出是按变量名进行排序的。
declare:显示当前 Shell 中定义的所有变量,包括用户的环境变量和自定义变量,该命令的输出按变量名进行排序。
set:功能同 declare 一样,显示当前 Shell 中定义的所有变量,包括用户的环境变量和自定义变量。