id
打印真实以及有效的用户和所在组的信息
概要
id [OPTION]... [USER]...
主要用途
- 没有选项时,打印指定用户ID信息。
选项
-a 兼容性选项,没有实际作用。
-Z, --context 只打印进程的安全上下文。
-g, --group 只打印有效的组ID。
-G, --groups 打印全部组ID。
-u, --user 只打印有效的用户ID。
-z, --zero 使用空字符代替默认的空格来分隔条目。
--help 显示帮助信息并退出。
--version 显示版本信息并退出。
只有在使用 -u -g -G 选项中一到多个时,以下选项可以使用:
-n, --name 打印名称而不是数字。
-r, --real 打印真实ID而不是有效ID。
参数
user(可选):可以为一到多个,默认为当前用户。
返回值
返回0表示成功,返回非0值表示失败。
例子
[root@localhost ~]# id
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)
解释:用户root的UID号码 = 0,GID号码 = 0。用户root是下面组的成员:
- root组GID号是:0
- bin组GID号是:1
- daemon组GID号是:2
- sys组GID号是:3
- adm组GID号是:4
- disk组GID号是:6
- wheel组GID号是:10
打印用户名、UID 和该用户所属的所有组,要这么做,我们可以使用 -a 选项:
[root@localhost ~]# id -a
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)
输出所有不同的组ID ,有效的,真实的和补充的,我们可以使用 -G 选项来实现:
ifcfg
置Linux中的网络接口参数
补充说明
ifcfg命令 是一个Bash脚本程序,用来设置Linux中的网络接口参数。
语法
ifcfg(参数)
参数
网络接口:指定要操作的网络接口;
add/del:添加或删除网络接口上的地址;
ip地址:指定IP地址和子网掩码;
Stop:停用指定的网络接口的IP地址。
ifconfig
配置和显示Linux系统网卡的网络参数
补充说明
ifconfig命令 被用于配置和显示Linux内核中网络接口的网络参数。用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在。要想将上述的配置信息永远的存的电脑里,那就要修改网卡的配置文件了。
语法
ifconfig(参数)
参数
add<地址>:设置网络设备IPv6的ip地址;
del<地址>:删除网络设备IPv6的IP地址;
down:关闭指定的网络设备;
<hw<网络设备类型><硬件地址>:设置网络设备的类型与硬件地址;
io_addr<I/O地址>:设置网络设备的I/O地址;
irq<IRQ地址>:设置网络设备的IRQ;
media<网络媒介类型>:设置网络设备的媒介类型;
mem_start<内存地址>:设置网络设备在主内存所占用的起始地址;
metric<数目>:指定在计算数据包的转送次数时,所要加上的数目;
mtu<字节>:设置网络设备的MTU;
netmask<子网掩码>:设置网络设备的子网掩码;
tunnel<地址>:建立IPv4与IPv6之间的隧道通信地址;
up:启动指定的网络设备;
-broadcast<地址>:将要送往指定地址的数据包当成广播数据包来处理;
-pointopoint<地址>:与指定地址的网络设备建立直接连线,此模式具有保密功能;
-promisc:关闭或启动指定网络设备的promiscuous模式;
IP地址:指定网络设备的IP地址;
网络设备:指定网络设备的名称。
实例
显示网络设备信息(激活状态的):
[root@localhost ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:16:3E:00:1E:51
inet addr:10.160.7.81 Bcast:10.160.15.255 Mask:255.255.240.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:61430830 errors:0 dropped:0 overruns:0 frame:0
TX packets:88534 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3607197869 (3.3 GiB) TX bytes:6115042 (5.8 MiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:56103 errors:0 dropped:0 overruns:0 frame:0
TX packets:56103 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:5079451 (4.8 MiB) TX bytes:5079451 (4.8 MiB)
说明:
ifdown
禁用指定的网络接口
补充说明
ifdown命令 用于禁用指定的网络接口。
语法
ifdown(参数)
参数
网络接口:要禁用的网络接口。
实例
ifdown eth0 #禁用eth0
ifstat
统计网络接口流量状态
补充说明
ifstat命令 就像iostat/vmstat描述其它的系统状况一样,是一个统计网络接口活动状态的工具。ifstat工具系统中并不默认安装,需要自己下载源码包,重新编译安装,使用过程相对比较简单。
下载
http://gael.roualland.free.fr/ifstat/ (官网)
wget http://gael.roualland.free.fr/ifstat/ifstat-1.1.tar.gz
编译安装
tar -zxvf ifstat-1.1.tar.gz
cd ifstat-1.1
./configure
make
make install # 默认会安装到/usr/local/bin/目录中
注释:执行which ifstat输出/usr/local/bin/ifstat
选项
-l 监测环路网络接口(lo)。缺省情况下,ifstat监测活动的所有非环路网络接口。经使用发现,加上-l参数能监测所有的网络接口的信息,而不是只监测 lo的接口信息,也就是说,加上-l参数比不加-l参数会多一个lo接口的状态信息。
-a 监测能检测到的所有网络接口的状态信息。使用发现,比加上-l参数还多一个plip0的接口信息,搜索一下发现这是并口(网络设备中有一 个叫PLIP (Parallel Line Internet Protocol). 它提供了并口...)
-z 隐藏流量是无的接口,例如那些接口虽然启动了但是未用的
-i 指定要监测的接口,后面跟网络接口名
-s 等于加-d snmp:[comm@][#]host[/nn]] 参数,通过SNMP查询一个远程主机
-h 显示简短的帮助信息
-n 关闭显示周期性出现的头部信息(也就是说,不加-n参数运行ifstat时最顶部会出现网络接口的名称,当一屏显示不下时,会再一次出现接口的名称,提示我们显示的流量信息具体是哪个网络接口的。加上-n参数把周期性的显示接口名称关闭,只显示一次)
-t 在每一行的开头加一个时间 戳(能告诉我们具体的时间)
-T 报告所有监测接口的全部带宽(最后一列有个total,显示所有的接口的in流量和所有接口的out流量,简单的把所有接口的in流量相加,out流量相 加)
-w 用指定的列宽,而不是为了适应接口名称的长度而去自动放大列宽
-W 如果内容比终端窗口的宽度还要宽就自动换行
-S 在同一行保持状态更新(不滚动不换行)注:如果不喜欢屏幕滚动则此项非常方便,与bmon的显示方式类似
-b 用kbits/s显示带宽而不是kbytes/s
-q 安静模式,警告信息不出现
-v 显示版本信息
-d 指定一个驱动来收集状态信息
实例
默认使用
[root@localhost ifstat-1.1] #ifstat
eth0 eth1
KB/s in KB/s out KB/s in KB/s out
0.07 0.20 0.00 0.00
0.07 0.15 0.58 0.00
默认ifstat不监控回环接口,显示的流量单位是KB。
iftop
一款实时流量监控工具
补充说明
iftop命令 是一款实时流量监控工具,监控TCP/IP连接等,缺点就是无报表功能。必须以root身份才能运行。
语法
iftop(选项)
选项
iftop: display bandwidth usage on an interface by host
Synopsis: iftop -h | [-npblNBP] [-i interface] [-f filter code]
[-F net/mask] [-G net6/mask6]
-h display this message
-n don't do hostname lookups
-N don't convert port numbers to services
-p run in promiscuous mode (show traffic between other
hosts on the same network segment)
-b don't display a bar graph of traffic
-B Display bandwidth in bytes
-i interface listen on named interface
-f filter code use filter code to select packets to count
(default: none, but only IP packets are counted)
-F net/mask show traffic flows in/out of IPv4 network
-G net6/mask6 show traffic flows in/out of IPv6 network
-l display and count link-local IPv6 traffic (default: off)
-P show ports as well as hosts
-m limit sets the upper limit for the bandwidth scale
-c config file specifies an alternative configuration file
-t use text interface without ncurses
Sorting orders:
-o 2s Sort by first column (2s traffic average)
-o 10s Sort by second column (10s traffic average) [default]
-o 40s Sort by third column (40s traffic average)
-o source Sort by source address
-o destination Sort by destination address
The following options are only available in combination with -t
-s num print one single text output afer num seconds, then quit
-L num number of lines to print
界面说明
第一行为带宽,这里为1Mbit,不是字节哦. 连接列表,最后三列分别是2秒,10秒和40秒的平均流量
=>代表发送
<=代表接收 最后三行表示发送,接收和全部的流量, 第二列为你运行iftop到目前流量,第三列为高峰值,第四列为平均值。
ifup
激活指定的网络接口
补充说明
ifup命令 用于激活指定的网络接口。
语法
ifup(参数)
参数
网络接口:要激活的网络接口。
实例
ifup eth0 #激活eth0
indent
格式化C语言的源文件
补充说明
indent命令 可辨识C的原始代码文件,并加以格式化,以方便程序员阅读、修改等操作。
语法
indent(选项)(源文件)
或
indent(选项)(源文件)(-o 目标文件)
选项
-bad:在声明区加上空白行;
-bap:添加空白行;
-bbb:在注释后面添加空白行;
-bc:在声明段中,如果出现逗号就换行;
-bl:if(或是else、for等)与后面执行区段的“{”不同行,且“}”自成一行-bli<缩排格数>设置{}缩排的格数;
-br:if(或是else、for等)与后面执行区段的“{”同行,且“}”自成一行;
-bs:在sizeof之后空一格;
-c<栏数>:将注释置于程序右侧指定的栏位;
-cd<栏数>:将注释置于声明右侧指定的栏位;
-cdb:注释符号自成一行;
-ce:将else置于“}”(if执行区段的结尾)之后;
-ci:<缩排格数>:叙述过长而换行时,指定换行后缩排的格数;
-cli<缩排格数>:使用case时,switch缩排的格数;
-cp<栏数>:将注释置于else与elseif叙述右侧指定的栏位;
-cs:在case之后空一格;
-d<缩排格数>:针对不是放在程序码右侧的注释,设置其缩排格数;
-di<栏数>:将声明区段的变量置于指定的栏位;
-fc1:针对放在每行最前端的注释,设置其格式;
-fca:设置所有注释的格式;
-gnu:使用指定的GNU格式,该参数为默认值;
-i<格数>:设置缩排的格数;
-ip<格数>:设置参数的缩排格数;
-kr:指定使用Kernighan&Ritchie的格式;
-lp:叙述过长而换行,且叙述中包含了括号时,将括号中的每行起始栏位内容垂直对其排列;
-nbad:在声明区段后不要加上空白行;
-nbap:在程序后面不添加空白行;
-nbbb:在注释段后面不添加空白行;
-nbc:在声明段中,即使出现逗号,也不换行;
-ncdb:注释符号不自成一行;
-nce:不将else置于“}”后面;
-ncs:不在case后面空一格;
-nfc1:不要格式化放在每行最前端的注释;
-nfca:不用格式化任何的注释;
-nip:参数不要缩排;
-nlp:叙述过长而换行,且叙述中包含了括号时,不用将括号中的每行起始栏位垂直对其排列;
-npcs:在调用函数名之后,不要添加空格;
-npro:不要读取indent的配置文件“.indent.pro”;
-npsl:程序类型与程序名称放在同一行;
-nsc:注释左侧不要添加星号;
-nsob:不用处理多余的空白行;
-nss:若for或while区段仅有一行时,在分号前不加空格;
-nv:不显示详细的信息;
-orig:使用berkeley格式;
-pcs:在调用函数名与“{”之间添加空格;
-psl:程序类型置于程序名称的前一行;
-sc:在每行注释左侧添加星号;
-sob:删除多余的空白行;
-ss:若for或swile区段仅有一行时,在分号前加上空格;
-st:将结果显示在标准输出设备上;
-T:数据类型名称缩排;
-ts<格数>:设置tab的长度;
-v:显示详细的执行过程;
--version:显示版本信息。
实例
使用indent命令将C语言源文件"test.c"中所有的sizeof后面添加一个空格,输入如下命令:
indent -bs /home/rootlocal/桌面/test.c
执行上面的命令后,用户可以打开指定的源文件查看在sizeof后面是否都添加了一个空格。由于该命令的参数非常多,所以用户可以根据实际需要选择适合的参数进行使用即可。
info
Linux下info格式的帮助指令
补充说明
info命令 是Linux下info格式的帮助指令。
就内容来说,info页面比man page编写得要更好、更容易理解,也更友好,但man page使用起来确实要更容易得多。一个man page只有一页,而info页面几乎总是将它们的内容组织成多个区段(称为节点),每个区段也可能包含子区段(称为子节点)。理解这个命令的窍门就是不仅要学习如何在单独的Info页面中浏览导航,还要学习如何在节点和子节点之间切换。可能刚开始会一时很难在info页面的节点之间移动和找到你要的东西,真是具有讽刺意味:原本以为对于新手来说,某个东西比man命令会更好些,但实际上学习和使用起来更困难。
语法
info(选项)(参数)
选项
-d:添加包含info格式帮助文档的目录;
-f:指定要读取的info格式的帮助文档;
-n:指定首先访问的info帮助文件的节点;
-o:输出被选择的节点内容到指定文件。
参数
帮助主题:指定需要获得帮助的主题,可以是指令、函数以及配置文件。
实例
在info后面输入命令的名称就可以查看该命令的info帮助文档了:
info info
面介绍一下它的几个常用快捷键。
**?键:** 它就会显示info的常用快捷键。
**N键:** 显示(相对于本节点的)下一节点的文档内容。
**P键:** 显示(相对于本节点的)前一节点的文档内容。
**U键:** 进入当前命令所在的主题。
**M键:** 敲M键后输入命令的名称就可以查看该命令的帮助文档了。
**G键:** 敲G键后输入主题名称,进入该主题。
**L键:** 回到上一个访问的页面。
**SPACE键:** 向前滚动一页。
**BACKUP或DEL键:** 向后滚动一页。
**Q:** 退出info。
命令
**?** 显示帮助窗口
在帮助窗口中:
**Ctrl-x 0** 关闭帮助窗口
**Ctrl-x Ctrl-c** 关闭整个 Info
**q** 退出 info
**n** 打开与本 Node 关联的下一个 Node
**p** 打开与本 Node 关联的前一个 Node
**u** 打开与本 Node 关联的上一个 Node
**l** 回到上一次访问的 Node
**m或g** 选择一个菜单项(Node 的名字)
输入指定菜单的名字后按回车,打开指定菜单项关联的 Node
**空格键** 下一页(PageDown 也可以,下一页从当前页的最后两行开始算起)
下一个 Node (若当前页在 Node 文档的末尾)
**Del 键** 上一页(PageUp 也可以,上一页从当前页的开始两行开始算起)
上一个 Node (若当前页 Node 文档的开始)
**b 或 t 或 Home** 文档的开始(b 是 begining 的意思)
**e 或 End** 文档的末尾(b 是 ending 的意思)
**Ctrl-l** 刷新当前页,若当前文档显示情况有问题时
**Ctrl-g** 取消所键入的指令
init
init进程是所有Linux进程的父进程
补充说明
init命令 是Linux下的进程初始化工具,init进程是所有Linux进程的父进程,它的进程号为1。init命令是Linux操作系统中不可缺少的程序之一,init进程是Linux内核引导运行的,是系统中的第一个进程。
语法
init(选项)(参数)
选项
-b:不执行相关脚本而直接进入单用户模式;
-s:切换到单用户模式。
参数
运行等级:指定Linux系统要切换到的运行等级。
实例
几个常用的命令
查看系统进程命令:ps -ef | head
查看init的配置文件:more /etc/inittab
查看系统当前运行的级别:runlevel
运行级别
到底什么是运行级呢?简单的说,运行级就是操作系统当前正在运行的功能级别。这个级别从0到6 ,具有不同的功能。你也可以在/etc/inittab中查看它的英文介绍。
#0 停机(千万不能把initdefault 设置为0)
#1 单用户模式
#2 多用户,没有 NFS(和级别3相似,会停止部分服务)
#3 完全多用户模式
#4 没有用到
#5 x11(Xwindow)
#6 重新启动(千万不要把initdefault 设置为6)