您的位置:首页 > 运维架构 > Linux

Linux基础之常用命令(二)

2016-09-18 17:40 507 查看
一、 Linux系统上命令通用格式为: COMMAND [OPTIONS] [ARGUMENTS] 命令 选项 参数
1. 命令
命令可分为两类:内置命令和外部命令
内置命令:由shell自带的命令
例如:cd,break,(un)alias,type,file,history,pwd……是系统在启动之初就已经调入到内存中,是常驻内存之中,执行效率高
外部命令:独立的可执行文件,文件即命令;系统根据环境变量中的设置查找来执行。例如:ls、ifconfig、useradd
2. 选项
指定命令的运行特性,有两种:
长选项:例如–size等 短选项:例如-l,-d等3. 参数指定命令的作用对象,可同时有多个(多个存在时,参数之间必须用空白字符隔开)4. 常用命令ifconfig:配置网络命令
OPTIONS
-a    显示所有可用网络接口状态信息
-s    简单显示网络状态,类似netstat –i
Interface 只显示$interface的配置信息及网络状态
up/down    用法是:ifconfig interface up/down    启动/关闭interface接口
使用示例:
[root@app1 ~]# ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:50:56:84:0D:85
inet addr:10.88.158.84  Bcast:10.88.158.255  Mask:255.255.255.0
inet6 addr: fe80::250:56ff:fe84:d85/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:13280886 errors:0 dropped:0 overruns:0 frame:0
TX packets:12391039 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3831929038 (3.5 GiB)  TX bytes:2329255101 (2.1 GiB)

lo        Link encap:Local Loopback
inet addr:127.0.0.1  Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING  MTU:65536  Metric:1
RX packets:261964044 errors:0 dropped:0 overruns:0 frame:0
TX packets:261964044 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:238710410075 (222.3 GiB)  TX bytes:238710410075 (222.3 GiB)

[root@app1 ~]# ifconfig -s
Iface   MTU Met    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0       1500   0 13280991      0      0      0 12391128      0      0      0 BMRU
lo        65536   0 261964994      0      0      0 261964994      0      0      0 LRU

[root@app1 ~]# ifconfig lo
lo        Link encap:Local Loopback
inet addr:127.0.0.1  Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING  MTU:65536  Metric:1
RX packets:261966119 errors:0 dropped:0 overruns:0 frame:0
TX packets:261966119 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:238710735933 (222.3 GiB)  TX bytes:238710735933 (222.3 GiB)


[b]echo[/b][b]:显示变量的值[/b]
OPTIONS
-n    输出内容后不换行
-e    可解释转义字符  可以使用\n来做换行
-E    不能解释转义字符(命令默认选项)
使用示例:
[root@app1 ~]# echo  'I wish nothing but the best for you'
I wish nothing but the best for you

[root@app1 ~]# echo -n 'I wish nothing but the best for you'
I wish nothing but the best for you[root@app1 ~]#

[root@app1 ~]# echo -e 'I wish nothing \n but the best for you'
I wish nothing
but the best for you

[root@app1 ~]# echo -E 'I wish nothing \n but the best for you'
I wish nothing \n but the best for you

[root@app1 ~]# echo  'I wish nothing \n but the best for you'
I wish nothing \n but the best for you

[b]tty:查看当前终端设备信息[/b]
tty是Linux系统的输出设备(字符型),有这么几种类型:
虚拟终端:tty(1-6) 系统启动之后直接调用的界面
伪终端:pts/n 通过远程或者在虚拟终端中开启的界面

串口终端:tyySn 计算机串行接口连接的终端
使用示例:
[root@app1 ~]# tty
/dev/pts/1


[b][b]startX:打开图形界面[/b][/b]
OPTIONS
-w 在工作站上强制启动X会话
-x 使用.xinitrc脚步启动会话


[b]export:设置或显示环境变量[/b]
直接用export命令:

export PATH=$PATH:/usr/local/mysql/bin
想要使得开机时自动加载这个环境变量免除以后每次设置,可将其写入/etc/re.local
使用示例:
[root@app1 ~]# export PATH=$PATH:/usr/local/mysql/bin
[root@app1 ~]#


[b]pwd:显示当前目录路径[/b]
OPTIONS
-L  当目录连接链接时,显示链接路径
-P  显示目录的物理路径


history:查看历史命令
OPTIONS
-c  删除history列表中的历史记录
-a  附加当前会话中的记录到历史记录文件中去,默认~/.bash_history
-r  从历史记录文件和附加的内容列表中读取记录

定制history的功能,可通过环境变量实现:
HISTSIZE:shell进程可保留的命令历史的条数;
HISTFILE:持久保存命令历史的文件;
.bash_history
HISTFILESIZE:命令历史文件的大小;

调用命令历史列表中的命令:
!#:再一次执行历史列表中的第#条命令;
!!:再一次执行上一条命令;
!STRING:再一次执行命令历史列表中最近一个以STRING开头的命令;

调用上一条命令的最后一个参数:
快捷键:ESC, .
字符串:!$
使用示例:
[root@app1 ~]# echo $HISTSIZE
1000
[root@app1 ~]# HISTSIZE=2
[root@app1 ~]# echo $HISTSIZE
2
[root@app1 ~]# history
687  echo $HISTSIZE
688  history

[root@localhost ~]# export HISTSIZE=0
***限制命令历史记录的总条数,0表示禁用命令历史记录功能

[root@localhost ~]# export HISTFILE=~/.cmd_history
***设置命令历史记录的保存位置,默认是~/.bash_history

[root@localhost ~]# export HISTIGNORE='pwd:ls:ls -ltr:'
***设置某些命令将不被保存到历史记录中

[root@localhost ~]# export HISTCONTROL=erasedups
***清理所有重复的命令历史条目

[root@localhost ~]# export HISTCONTROL=ignoredups
***剔除连续重复的命令历史条目

[root@localhost ~]# export HISTCONTROL=ignorespace
***不记录以空格开头的命令历史条目


shutdown:关闭系统
OPTIONS
-H  Halt the system(Halt同shutdown -h)关闭系统
-P  退出系统并关闭电源
-r  重启系统
-k  只发送关机警告并不真正关机
-c
-t  在改变到其他runrever之前,告诉init多久以后关机
-n  不用init,而是自己来关机。不鼓励使用此选项
使用示例:
[root@localhost init.d]# shutdown -h +5(分钟)
Shutdown scheduled for Thu 2016-09-15 09:18:47 CST, use 'shutdown -c' to ca

[root@localhost init.d]# shutdown -c
Broadcast message from root@localhost (Thu 2016-09-15 09:15:02 CST):
The system shutdown has been cancelled at Thu 2016-09-15 09:16:02 CST!

[b]poweroff:关机命令[/b]
OPTIONS

--halt  Halt the mochine关闭设备
-p      switch off the mochine 切断电源
-f      force immediate halt/poweroff/reboot强制立刻停止/断电/重启系统
-w      只增加记录/var/log/wtmp,但不进行停止/断电/重启系统操作
-d      不记入记录


reboot:重启系统
 OPTIONS

--halt  Halt the mochine关闭设备
-p      switch off the mochine 切断电源
-f      force immediate halt/poweroff/reboot强制立刻停止/断电/重启系统
-w      只增加记录/var/log/wtmp,但不进行停止/断电/重启系统操作
-d      不记入记录

--------------------shutdown、halt、poweroff、reboot三者之间的区别--------------------------

从man帮助信息可以看到使用同样的选项,会得到同样的结果

1、shutdown
shutdown命令是安全的将系统关闭,shutdown执行它的工作是送信号〔signal〕给init程序﹐要
求它改变runlevel。Runlevel 0被用来停机〔halt〕﹐runlevel 6是用来重新激活〔reboot〕系
统﹐而runlevel 1则是被用来让系统进入管理工作可以进行的状态﹔这是预设的﹐假定没有-h也没有
-r参数给shutdown。要想了解在停机〔halt〕或者重新开机〔reboot〕过程中做了哪些动作﹐你可以
在这个文件/etc/inittab里看到这些runlevels相关的资料。
2、halt
其实halt就是调用shutdown -h,halt执行时杀死应用程序的进程,执行sync系统调用,文件系统
写操作完成之后就会停止内核。
3、reboot
与halt同理,只是此命令默认重启,halt是关机
4、Poweroff
不建议在多用户下使用
5、init
所有命令的核心,shutdown执行它的工作是送信号〔signal〕给init程序﹐要求它改变runlevel。
Runlevel 0被用来停机〔halt〕﹐runlevel 6是用来重新激活〔reboot〕系统﹐而runlevel 1
则是被用来让系统进入管理工作可以进行的状态﹔这是预设的﹐假定没有-h也没有-r参数给shutdown。
要想了解在停机〔halt〕或者重新开机〔reboot〕过程中做了哪些动作﹐你可以在这个文件/etc/inittab
里看到这些runlevels相关的资料。


hwclock/clock:设置同步硬件和系统间的时间
FUNCTIONS
-r  读取硬件时钟并且显示
-s  将硬件时钟同步到系统时钟hctosys
-w  将系统时钟同步到硬件时钟systohc
--systz   基于当前的timezone设置同步硬件时钟
-c
--compare 定期比较CMOS时钟和系统时钟
date:显示和设置系统时间
SYNOPSIS
date [OPTIONS].. [+FORMAT]
date [-u|--utc|--univeral] [MMDDhhmm[[CC]YY][.SS]]
OPTIONS
-f  类似--date 显示需要查看的DATEFILE的每行时间戳
-r  显示FILE的最后一次修改时间
-d  根据字符描述来显示日期与时间,不包括‘now’,描述使用双引号
-s  根据字符串来设定日期与时间,字符串带双引号

FORMAT
%% :打印%
%n : 下一行
%t : 跳格
%H : 小时(00..23)
%I : 小时(01..12)
%k : 小时(0..23)
%l : 小时(1..12)
%M : 分钟(00..59)
%p : 显示本地 AM 或 PM
%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 : 星期几 (Sun..Sat)
%A : 星期几 (Sunday..Saturday)
%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)
FOR EXAMPLE
1、设置时间
date -s //设置当前时间,只有root权限才能设置,其他只能查看。

date -s 20150523 //设置成20150523,这样会把具体时间设置成空00:00:00

date -s 01:01:01 //设置具体时间,不会对日期做更改

date -s “01:01:01 2016-05-23″ //这样可以设置全部时间

date -s “01:01:01 20150523″ //这样可以设置全部时间

date -s “2016-05-23 01:01:01″ //这样可以设置全部时间

date -s “20160523 01:01:01″ //这样可以设置全部时间

2、日期时间查询

date -d '1 day ago' +'%Y-%m-%d'
date -d '+1 day' +%Y-%m-%d
date -d '-1 day' +%Y-%m-%d
date -d '+1 month' +%Y-%m-%d
date -d '+1 yeas' +%Y-%m-%d
二、如何获取命令帮助
Linux系统的命令众多,再配合各种选项,那命令的使用方法永远也记不完;那我们如何获取命令的帮助呢?我们知道,在Linux系统中命令可分为内置命令和外部命令,查看一个命令是内置命令还是外部命令,我们使用type命令,比如:
[root@localhost ~]# type cd ifconfig
cd is a shell builtin       /*  cd是SHELL的内置命令
ifconfig is hashed (/usr/sbin/ifconfig)     /*ifconfig是外部命令
常用的获取命令帮助的途径有以下几个:
1、获取内置命令的帮助信息
获取内置命令的帮助信息的方式,比如help pwd,得到如下信息
[root@app1 ~]# help pwd
pwd: pwd [-LP]
Print the name of the current working directory.

Options:
-L	print the value of $PWD if it names the current working
directory
-P	print the physical directory, without any symbolic links

By default, `pwd' behaves as if `-L' were specified.

Exit Status:
Returns 0 unless an invalid option is given or the current directory
cannot be read.
2、获取外部命令的帮助信息
获取外部命令的帮助信息的方式有多种,常用有以下几种:
a、COMMAND --HELP

以简要格式显示自带的帮助文档,比如ip --help
[root@app1 ~]# ip --help
Usage: ip [ OPTIONS ] OBJECT { COMMAND | help }
ip [ -force ] -batch filename
where  OBJECT := { link | addr | addrlabel | route | rule | neigh | ntable |
tunnel | maddr | mroute | mrule | monitor | xfrm | token }
OPTIONS := { -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] |
-h[uman-readable] | -iec |
-f[amily] { inet | inet6 | ipx | dnet | link } |
-o[neline] | -t[imestamp] | -b[atch] [filename] |
-rc[vbuf] [size]}
b、man COMMAND
man(manual)属于专业的命令帮助手册,位于/var/share/man文件中,讲解很专业、全面。man命令包括10个章节,具体如下:

man1:用户命令(user commands)
man2:系统内部调用命令(system calls)
man3:C库调用(library functions)
man4:设备文件及特殊文件(special files)
man5:文件格式(配置文件格式)(file formats)
man6:游戏使用帮助(games)
man7:杂项(conventions and miscellany)
man8:管理工具及守护进程(administration and privileged commands)
man L:(math library functions)
man N:tcl functions tcl函数

当我们man一个命令的时候,在文档的左上角会提示我们的帮助文档属于man的哪一章的命令帮助,或者可以通过man n COMMAND
命令指定其章节,如下:

[root@localhost ~]# man ifconfig
IFCONFIG(8) Linux System Administrator's Manual IFCONFIG(8)
[root@localhost ~]# man 1 date
DATE(1)

man命令打开手册以后的操作方法:
翻屏:
空格键:向文件尾翻一屏;
b: 向文件首部翻一屏;
Ctrl+d:向文件尾部翻半屏;
Ctrl+u:向文件首部翻半屏;
回车键:向文件尾部翻一行;
k: 向文件首部翻一行;
G:跳转至最后一行;
#G: 跳转至指定行;
1G:跳转至文件首部;
c、info COMMAND:

获取COMMAND的在线文档
d、程序自带文档,比如:
README:程序的相关信息
INSTALL:安装帮助文档

CHANGES:程序的改动信息
f、官方文档,比如RHEL文档:http://www.redhat.com/doc

三、Linux基础目录功用及命名规则FHS(Filesystem Hierarchy Standard)规定了类Unix系统的各个系统目录的功能及存储文件,下面我们来解读下linux系统中的目录 /: Root directory 根目录,Linux内核挂载的起始位置 /bin: Essential user command binaries (for use by all users) 基本的用户命令文件,任何用户均可调用,比如:cp、date、dd、rm /boot: Static files of the boot loader 系统引导加载程序的静态文件,系统进入用户模式之前的加载文件均在这里 /dev: Device files 系统的设备文件 存储着关于各部分硬件设备的资料,比如:tty、pts、mem(不可读) /etc:Host-specific system configuration 主机的系统配置文件,几个特殊的目录如下: X11/ Configuration for the X Window system (optional)
sgml/ Configuration for SGML (optional)
xml/ Configuration for XML (optional) /home: User home directories (optional) 用户的家目录,创建用户默认生成,一般目录名同用户名。例如:/home/USERNAME /lib:Essential shared libraries and kernel modules 基本的共享库及内核模块。 /lib(qual):Alternate format essential shared libraries (optional) 交替格式共享库。例如lib32、lib64 /media:Mount point for removable media 可移动介质的挂载点,可以认为是扩展挂载点。与/mnt类似 /mnt:Mount point for a temporarily mounted filesystem 其他临时系统文件的挂载点。 /opt:Add-on application software packages 留给附加的应用程序软件包的 /root:Home directory for the root user (optional) 超级管理员root的家目录 /run:Run-time variable data 运行时的变量数据,这个目录包含系统信息数据描述了系统自启动。这个目录下的文件必须被清除(删除或截断)在引导过程的开始。 /sbin:System binaries 管理员命令存储目录,没有子目录且不能随意创建 /srv:Data for services provided by this system 系统服务的相关数据 /tmp:Temporary files 临时文件存储。 /usr: shareable, read-only data,must not be written to。属于系统文件的最主要部分(/除外),符合FHS用户共用此目录,其子目录解读如下: bin/ Most user commands 大部分的用户命令,比如:perl,python,tclsh include/ Directory for standard include files 一些可能系统调用的C相关的文件 lib/ Libraries for programming and packages 库程序和包 local/ Local hierarchy 本地的层级目录,bin/,sbin/,lib/,lib64/,share/,src/,games/,include/等 sbin/ Non-essential standard system binaries 只有管理员调用的非标准的系统函数 share/ Architecture-independent data 系统杂项,但是有几个重要的目录 man/ Manual pages 使用手册目录 doc/ 程序的说明文档 zeroinfo/ Timezone information and configuration (optional) 时区信息和配置信息 src/ Source code (optional)源代码文件可以存储在这里,仅供参考 /sys:Kernel and system information virtual filesystem 主要存储的是硬件信息、驱动、个别内核信息 /proc:Kernel and process information virtual filesystem 看解释跟/sys一样,只是此文件目录存储的是实际标准的流程和系统信息,比如CPU、内存等信息 /var:/var contains variable data files. This includes spool directories and files, administrative and logging data, and transient and temporary files. 主要包括一些缓存文件、管理的log文件、动态生成的临时文件、spoool、mail文件,也是比较重要的目录文件和目录的命名规则:1、文件名名称严格区分字符大小写;2、文件可以使用除/以外任意字符;3、文件名长度不能超过255字符;4、以.开头的文件为隐藏文件;.: 当前目录;..: 当前目录的上一级目录;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Linux 介绍 目录