第一部分:Linux系统上命令的使用格式
命令的语法通用格式:
COMMAND OPTIONS ARGUMENTS
发起一个命令:请求内核将某个二进制程序运行为一个进程;
程序 —-> 进程
静态 —-> 动态 (有生命周期)
命令本身是一个可执行的程序文件:二进制格式的文件,有可能会调用库文件:共享库
多数系统程序文件都存放在/bin, /sbin,/usr/bin,/usr/sbin,/usr/local/bin,/usr/local/sbin
普通命令:/bin,/usr/bin,/usr/local/bin
管理命令:/sbin,/usr/sbin,/usr/local/sbin
共享库:/lib,/lib64,/usr/lib,/usr/lib64……….
32位库:/lib,/usr/lib,/usr/local/lib
64位库:/lib64,/usr/lib64,/usr/local/lib64
并非所有的命令都有一个在某目录与之对应的可执行程序文件
命令必须遵循特定格式规范:exe,msi,ELF(Linux)
[root@localhost ~]# file /bin/ls #查看文件内容类型
/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=aa7ff68f13de25936a098016243ce57c3c982e06, stripped
命令分为两类:
由shell程序自带的命令:内置命令(built-in)
独立的可执行程序文件,文件名即命令名:外部命令(可执行程序)
shell程序是独特的程序,负责解析用户提供的命令:
环境变量:
PATH:从哪些路径中查找用户键入的命令字符串所对应的命令文件
[root@localhost /]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
例如,从左向右开始,一个一个找ls命令;从左向右,因此顺序很重要;
PATH是针对外部命令而言的
SHELL自带的命令是不需要PATH的
那么如何区分命令类型?
type COMMAND
例如:
[root@localhost /]# type type
type 是 shell 内嵌
因此,type是内置命令
OPTIONS:指定命令的运行特性,或者调整命令运行时所要执行的代码和实现的功能
选项有两种表现形式:
长选项:–character,长选项一般不能合并
短选项:-C等;同时使用多个短选项,一般可以合并,例如 ls -ld = ls -l -d
注意,有些选项可以自带参数,选项参数,而不是命令参数
ARGUMENTS:命令的参数
命令的作用对象:命令对什么生效
例如:ls -l -d /var /etc
第二部分:一些常见命令
#1 ifconfig – 用于配置网卡
语法:
ifconfig [interface]
ifconfig interface [aftype] options | address …
参数:
up 启动指定网络设备/网卡。
down 关闭指定网络设备/网卡。该参数可以有效地阻止通过指定接口的IP信息流,如果想永久地关闭一个接口,我们还需要从核心路由表中将该接口的路由信息全部删除。
arp 设置指定网卡是否支持ARP协议。
-a 显示全部接口信息
-s 显示摘要信息(类似于 netstat -i)
add 给指定网卡配置IPv6地址
del 删除指定网卡的IPv6地址
<硬件地址> 配置网卡最大的传输单元
mtu<字节数> 设置网卡的最大传输单元 (bytes)
netmask<子网掩码> 设置网卡的子网掩码。掩码可以是有前缀0x的32位十六进制数,也可以是用点分开的4个十进制数。如果不打算将网络分成子网,可以不管这一选项;如果要使用子网,那么请记住,网络中每一个系统必须有相同子网掩码。
tunel 建立隧道
dstaddr 设定一个远端地址,建立点对点通信
-broadcast<地址> 为指定网卡设置广播协议
-pointtopoint<地址> 为网卡设置点对点通讯协议
multicast 为网卡设置组播标志
address 为网卡设置IPv4地址
实例:
<1> ifconfig #用于查看网卡具体信息
<2> ifconfig eth0 up #启动eth0网卡
ifconfig eth0 down #关闭eth0网卡;注意,ssh登录服务器操作要小心,关闭了就不能开启了,除非有多网卡
<3> ifconfig eth0 192.168.120.56 netmask 255.255.255.0 broadcast 192.168.120.255 #配置IP地址
<4> ifconfig eth0 arp #启用ARP协议
ifconfig eth0 -arp #关闭ARP协议
#2 echo – 显示一段文字,一般起到提示的作用
参数&举例
-n:不自动进行换行操作
[root@localhost /]# echo -n 'hello world'
hello world[root@localhost /]#
-e:让转移符生效
[root@localhost /]# echo 'hello \nworld'
hello \nworld
[root@localhost /]# echo -e 'hello \nworld' #注意-e的用法
hello
world
\n:表示换行
STRING可以使用引号,单引号和双引号均可用
单引号:强引用,变量引用不执行替换
[root@localhost /]# echo '$SHELL'
$SHELL
双引号:弱引用,变量引用会被替换
[root@localhost /]# echo "$SHELL"
/bin/bash
#3 startx – startx – initialize an X session
用于打开图形化界面
#4 pwd – print working directory,显示当前路径
相关的环境变量:
$PWD:当前工作目录
$OLDPWD:上一次工作目录
#5 history – 显示命令历史
history 命令 – shell内嵌命令
定制history的功能,可以通过环境变量来实现
HISTSIZE #shell进程中history命令所保存的历史的条数
HISTFILE #持久保存命令历史的文件
.bash_history #保存在用户家目录中,存储了历史命令
HISTFILESIZE #命令历史文件的大小
命令用法:
history [-c] [-d 偏移量] [n]
或 history -anrw [文件名]
或 history -ps 参数 [参数…]
参数:
-c:清空命令历史(清空内存中的内容)
-d offset [n]:根据offset偏移量来删除指定条目,如果添加[n],表示从指定位置开始删除n个
-a:从内存到文件
-r:从文件读取命令历史至列表中 #如果history -c清空后,直接history -r,再history,可以读取文件中的内容
-w:保存到文件中
n:显示最近的n条命令
调用命令历史列表中的命令:
!# 再次执行历史列表中的第#条命令
!! 再次执行上一条命令
!STRING 再次执行历史列表中最近一个以STRING开头的命令
注意,命令的重复执行需要依赖于幂等性(可重复多次执行,例如删除一个文件后,不能再次删除相同的文件)
调用上一条命令的最后一个参数:
esc. #按下esc,松开后再按.
!$
控制命令历史记录的方式:
环境变量:HISTCONTROL
ignoredups:忽略重复的命令
ignorespace:忽略以空白字符开头的命令
ignoreboth:
#6 shutdown/poweroff/reboot
关机或重启命令:shutdown
shutdown
-r 重启
-P 关机
-c 取消操作
-h 关机
TIME:
now
hh:mm
+m
+0 = now
WALL
系统本身有wall指令,广播消息
shutdown -h now #马上关机
shutdown -r +5 #5分钟后关机,消息会广播给所有用户
shutdown -c #取消关机操作
#7 hwclock = clock
clock:显示硬件时钟
hwclock:显示硬件时钟 — clock和hwclock是同一个指令
参数
-s, –hctosys #以硬件为准,将系统时钟调整到与硬件时钟一致
-w, –systohc #以系统为准
语法:
hwclock [function] [option…]
具体用法:
[root@localhost ~]# hwclock #显示硬件时间
2016年08月13日 星期六 03时54分48秒 -0.742017 秒
#8 date
date
显示时间 :date [OPTION]… [+FORMAT]
FORMAT:显示格式
%F
%m
%s:从1970年1月1日(unix元年)0点0分0秒到命令执行那一刻经过的秒数
date [-u|–utc|–universal] [MMDDhhmm[[CC]YY][.ss]]
设定日期时间
[root@localhost ~]# date 101008082013.08 月日小时分钟年.秒钟
2013年 10月 10日 星期四 08:08:08 CST
原创文章,作者:vincent_chen,如若转载,请注明出处:http://www.178linux.com/34088