码迷,mamicode.com
首页 > 系统相关 > 详细

Linux基础命令使用

时间:2015-07-03 16:15:31      阅读:263      评论:0      收藏:0      [点我收藏+]

标签:linux   硬件   

date: 日期和时间

                   date[options] [+FORMAT]

                            %s:时间戳计时法,从Unix元年(1970-01-01 00:00:00)到此刻所经过的秒数

                            %F,%D

                            %T

                            %Y

                            %m

                            %d

                            %H

                            %M

                            %S

 

                   date[MMDDhhmm[[CC]YY][.ss]]

 

                   Linux有两个时钟:系统时钟和硬件时钟

                            硬件时钟:

                            系统时钟:Linux

 

                   hwclock

                            -s:以硬件为准

                            -w:以系统为准

 

         ntp:Network Time Protocol

                   通过网络同步系统时间

 

                   C/S:Server, Client

 

         ntpdateSERVER

 

         who:登录至当前系统的所有用户

         whoami:当前终端上登录的用户

 

         which:显示指定命令的完整路径

                   --skip-alias:路过命令别名

 

FHS:

         /bin,/sbin: 系统自身启动和运行时可能会用户的核心二进制命令

         /lib:共享库文件和内核模块

         /lib64:

         /etc:配置文件

         /usr:

                   /usr/bin,/usr/sbin: 系统运行中,用户为完成某些操作可能用到的命令

                   /usr/lib,/usr/lib64: 库文件

                   /usr/share/man,/usr/share/doc

         /dev:devices的简写,所有设备的设备文件都存放于此处;设备文件通常也称为特殊文件(仅有元数据,而没有数据)

         /proc:伪文件系统,内核和进程信息的虚拟文件系统接口

         /sys:伪文件系统,硬件设备信息虚拟文件系统接口

         /boot:系统引导加载时用到的静态文件,内核和ramdiskCentOS5:initrd, CentOS6:initramfs, grub(bootloader)

 

         /home/USERNAME

         /root

 

         /mnt

         /media

 

         /srv:服务所用到的数据

 

         /tmp:临时文件存储位置

 

         /var:经常发生变化的文件

                   /var/log

 

         /misc:备用目录

 

         /opt:第三方应用程序的安装目录

         /usr/local:

 

         /selinux

                   SecurityEnhanced Linux: 安全加强的Linux

 

 

 

         应用程序的组成部分:

                   二进制程序

                   库文件

                   配置文件

                   帮助文件

 

文件管理类命令:

         文件类型

         文件信息查看

         用户和权限

         bash的一些特性

                   管道和重定向

                   文件本编辑器

                   正则表达式

                   文件查找

 

         文件类型:

                   普通文件:-, f

                   目录文件: d

                   符号链接文件:l

                   设备文件:

                            字符设备:c (线性设备)

                            块设备:b (随机设备)

                   命名管道:p

                   套接字文件:s unix sock文件)

 

         文件内容的类型:

                   file/path/to/somefile

 

         目录管理:

                   cd,pwd, ls

 

                   mkdir:make directory

                            -p:当指定的目标目录的父目录不存在时,则先创建之

 

                   rmdir:remove directory

                            -p:删除单传目录路径中各目录

 

                   bash的工作特点:没有返回信息通常最好的信息

                            每个命令执行结束后,会有一个“执行状态返回值”,有效范围0-255

                                     0:执行成功

                                     1-255:执行失败

 

                            使用特殊变量$?可以获取最近一条命令的状态返回值

                                     #echo $?

 

                   bash特性之一:命令行展开

                            ~:用户家目录

                            ~USERNAME:指定用户的家目录

 

                            {}:

                                     /tmp/{x,y}

                                               /tmp/x,/tmp/y

 

                                     /tmp/{x,y}/z

                                               /tmp/x/z,/tmp/y/z

 

                            创建/tmp/x/z,/tmp/y/z, /tmp/x/m, /tmp/y/m

 

                            练习1:创建/tmp/

                                     a_b, c_b, a_d, c_d

 

                            练习2:创建/tmp/mylinux/

                                     boot

                                               grub

                                     bin

                                     sbin

                                     etc

                                               rc.d

                                                        init.d

                                               sysconfig

                                                        networking-scripts

                                     lib

                                               modules

                                     lib64

                                     usr

                                               local

                                                        bin

                                                        sbin

                                                        lib

                                                        lib64

                                               bin

                                               sbin

                                               lib

                                               lib64

                                     proc

                                     sys

                                     dev

                                     var

                                               log

                                               run

                                               lock

                                     tmp

 

         #mkdir -pv/tmp/mylinux/{boot/grub,bin,sbin,etc/{rc.d/init.d,sysconfig/networking-scripts},lib/modules,lib64,usr/{bin,sbin,lib,lib64,local/{bin,sbin,lib,lib64}},proc,sys,dev,var/{log,run,lock},tmp}

 

         如何安装tree:

                   #cd /etc/yum.repos.d/

                   #wget http://172.16.0.1/centos6.5.repo

                   #rm CentOS-Base.repo

                   #yum -y install tree

 

         ls命令:

                   list简写

 

                   ls[option] [file]

 

                            常用选项:

                                     -l:long,长格式显示文件的详细属性信息

                                               drwxr-xr-x.  2 root root 4096 Feb 12 09:55 account

                                                        左起第一位:文件类型

                                                        后面的9位:权限,常称为mode

                                                                 r:读,Read

                                                                 w:, Write

                                                                 x:执行, eXcute

                                                        .:表示文件有隐藏属性

                                                                 lsattr命令可以查看

                                                        数字:此文件被硬链接的次数

                                                        属主:owner, 文件的拥有者

                                                        属组:group, 文件的所属的组

                                                        4096: 文件大小,单位是字节

                                                                 -h:human-readable,自动做单位换算

                                                        文件最近一次被修改的时间

                                                        文件名

                                     -a:显示所有文件

                                     -d:通常和-l一起使用,用于仅显示目录自身属性

                                     -r:reverse, 逆序显示

                                     -R:recursive, 递归显示,显示子目录中的内容

 

         文件管理类的命令:

                   查看:cat, tac,head, tail, less, more

                   时间戳管理:touch

                   复制:cp

                   移动:mv

                   查看元数据属性:stat

                   文本编辑器:nano,vi

 

         stat:显示文件的元数据

                   时间戳:

                            atime

                            mtime

                            ctime

 

         touch:改变文件的atimemtime

                   touch[option]... FILE

                            如果FILE不存在,默认会创建一个空文件

 

                            -a:仅改变atime

                            -m:仅改变mtime

                            -c:不创建空文件

                            -t[[CC]YY]MMDDhhmm[.ss]

 

         文件查看类命令:

                   cat:连接并显示文本文件内容

 

                   数据流:stream

 

                            -E:显示行结束符

                            -n:显示行号

 

                   tac:逆序显示文件内容

 

                            Shift+PageUp/PageDown 翻屏

 

                   分屏显示:

                            more less

 

                   查看首部或尾部的部分内容:

                            head

                            tail

                                     -n#: 指定的行数

 

                            tail-f

 

         命令总结:shutdown,date, reboot, halt, poweroff, which, who, man, info, help, whatis, makewhatis,whoami, hwclock, ntpdate, touch, stat, file, cat, tac, more, less, head, tail,mkdir, rmdir, cd, pwd, ls, type, hash

 

回顾:

         文件类型:

                   f,d, l, c, b, p, s

 

                   file

 

         文件timestamp:

                   atime

                   mtime:数据的改变

                   ctime:元数据的改变

 

                   stat

 

                   ls-l

 

         文本查看:cat,tac, more, less, head, tail

 

        

bash特性之命令别名和命令引用:

         alias

         aliasALIAS=COMMAND

 

         别名与命令同名时:

                   绝对路径

                   \COMMAND

 

                   生效范围:命令行定义的别名,其生效范围为当前会话;

 

         unalias[ALIAS]

                   -a:撤消所有别名

 

         bash支持的引用:

                   ‘‘

                   ""

                   ``:引用一个命令的执行结果

                            $()

 

 

bash特性之文件名通配(globbing):

         *:任意长度的任意字符

                   p*d,pad, pbd, pd

                   *ab*c

         ?:匹配任意单字符

         []:匹配指定范围内的任意单字符

                   [abc],[a-z], [0-9], [0-9a-z]

         [^]:匹配指定范围以外的任意单字符

                   [^0-9a-z]

 

                   字符集合:

                            [:space:]: 所有空白字符

                            [:punct:]: 所有标点符号

                            [:lower:]:所有小写字母

                            [:upper:]

                            [:digit:]

                            [:alnum:]

                            [:alpha:]

 

         练习:

                   1、显示/var目录下所有以l开头,以一个小字母结尾,且中间出现一位数字的文件或目录;

                            #ls /var/l*[[:digit:]]*[[:lower:]]

                   2、显示/etc目录下,以任意一位数字开头,且以非数字结尾的文件或目录;

                            #ls -d /etc/[[:digit:]]*[^[:digit:]]

                   3、显示/etc目录下,以非字母开头,后面跟了一个字母及其它任意长度字符的文件或目录;

                            #ls -d /etc/[^[:alpha:]][[:alpha:]]*

 

         练习:

                   1、在/tmp/mytest目录中创建以testdir打头,后跟当前日期和时间的空目录,形如testdir-2014-07-03-09-15-33

                            #mkdir -pv /tmp/mytest/testdir-$(date +%F-%H-%M-%S)

 

 

echo命令

         echo[-neE] [arg ...]

 

                   \n

                   \t

 

                   \033[

                            单个数字:控制字体

                            3##是一个数字,3表示控制其前景色

                            4##是一个数字,4表示控制其背景色

 

                            组合使用,彼此间使用;分隔

 

                   m:是固定格式

 

         \033[0m:控制符的功能至此结束

 

文件管理类命令:

         复制:cp

         移动:mv

         删除:rm

 

         cp:

                   cpSRC DEST

                            SRC是文件:

                                     如果DEST不存在:复制SRCDEST

                                     如果DEST存在:

                                               如果DEST是文件:则覆盖

                                               如果DEST是目录:将SRC复制进DEST中,并保持原名

 

                   cpSRC... DEST

                            如果SRC不止一个,则DEST必须得是目录;

 

                   cpSRC DEST

                            SRC是目录:

                                     可使用-r选项:

 

                   cp-r SRC... DEST

 

                   练习:复制/etc目录下,所有以p开头,以非数字结尾的文件或目录至/tmp/mytest1目录;

                            #mkdir /tmp/mytest1

                            #cp -r /etc/p*[^[:digit:]]  /tmp/mytest1

 

                   练习:复制/etc/目录下,所有以.d结尾的文件或目录至/tmp/mytest2目录;

                            #mkdir /tmp/mytest2

                            #cp -r /etc/*.d  /tmp/mytest2

 

                   练习:复制/etc/目录下所有以lmn开头,以.conf结尾的文件至/tmp/mytest3目录;

                            #mkdir /tmp/mytest3

                            #cp -r /etc/[lmn]*.conf /tmp/mytest3

 

                   -P:复制符号链接文件本身,而非其指向的目标文件

                    --preserve[=ATTR_LIST]

                           mode,ownership,timestamps

                                    mode:权限

                                    owership:属主、属组

                                    timestamps:时间戳

 

                           -p:相当于 --preserve=mode,ownership,timestamps

 

                   -a:相当于 -dR--preserve=all

                            归档:archive

 

                   -i:interactive

                   -f:force

 

         mv命令:

                   mvSRC... DEST

 

                   -i:interactive

 

         rm命令:

                   -i

                   -f

 

                   --no-preserve-root

 

文本编辑命令:nano

         全屏编辑器:

 

文本处理类命令:

         wc: Word Count文本统计工具

                   -l:仅显示行数

                   -w:单词数

                   -c:字节数

[root@mail ~]# wc /etc/inittab

 26   149   884   /etc/inittab

行数  单词  字节  文件名

[root@mail ~]#

[root@mail ~]# wc -l /etc/inittab

26 /etc/inittab

[root@mail ~]# wc -w /etc/inittab 

149 /etc/inittab

[root@mail ~]# wc -c /etc/inittab 

884 /etc/inittab

[root@mail ~]#

 

         cut:

                   -d:指定分隔符

                   -f:指定要显示的字段

                            m:m

                            m,n:mn

                            m-n:m到第n

[root@mail ~]# cat /etc/passwd | cut -d :-f1,3

[root@mail ~]# cat /etc/passwd | cut -d :-f2-5

 

         sort: 排序

                   sort[option] FILE...

                            -f:忽略字符大小写

                            -t:指定分隔符

                            -k:指定分隔之后要进行排序比较的字段

                            -n:以数值大小进行排序

                            -u:排序后去重

[root@mail ~]# sort /etc/passwd

abrt:x:173:173::/etc/abrt:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

apache:x:48:48:Apache:/var/www:/sbin/nologin

…………………………….

[root@mail ~]#

[root@mail ~]# sort -t : -k3 /etc/passwd

root:x:0:0:root:/root:/bin/bash

uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin

operator:x:11:0:operator:/root:/sbin/nologin

usbmuxd:x:113:113:usbmuxduser:/:/sbin/nologin

bin:x:1:1:bin:/bin:/sbin/nologin

games:x:12:100:games:/usr/games:/sbin/nologin

………………………….

说明:此比较不是比数值大小,是按字符比较的。

[root@mail ~]# sort -t : -k3 -n /etc/passwd    (加上-n就是按数值大小比较)

root:x:0:0:root:/root:/bin/bash

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

sync:x:5:0:sync:/sbin:/bin/sync

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

halt:x:7:0:halt:/sbin:/sbin/halt

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

………………………………..

[root@mail scot]# cat aa

hao are you!

i am dawei.

ok

hao are you!

 

[root@mail scot]# sort -u aa       (-u去掉重复的行)

 

hao are you!

i am dawei.

ok

[root@mail scot]#

 

         uniq: 可以去除排序过的文件中的重复行,因此uniq经常和sort合用。也就是说,为了使uniq起作用,所有的重复行必须是相邻的。

                   -d:仅显示重复的行

                   -u:仅显示不重复的行

                   -c:统计行出现的次数

排序之后删除了重复行,同时在行首位置输出该行重复的次数:

[root@mail scot]# sort aa | uniq -c    

     1

     2 hao are you!

     1 i am dawei.

     1 ok

[root@mail scot]#

仅显示存在重复的行,并在行首显示该行重复的次数:

[root@mail scot]# sort aa | uniq -cd

     2 hao are you!

[root@mail scot]#

仅显示不重复的行:

[root@mail scot]# sort aa | uniq -u

 

i am dawei.

ok

[root@mail scot]#

 

         练习:

                   1、显示当前系统上每个用户的shell

                            #cut -d: -f1,7 /etc/passwd

 

                  2、显示当前系统上所有用户使用的各种shell

                            #cut -d: -f7 /etc/passwd | sort | uniq

 

                   3、取出/etc/inittab文件的第7行;

                            #head -n 7 /etc/inittab | tail -n 1

 

                   4、取出/etc/passwd文件中第7个用户的用户名;

                            #head -n 7 /etc/passwd | tail -n 1 | cut -d: -f1

 

                   5、统计/etc目录下以大小写p开头的文件的个数;

                            #ls -d /etc/[pP]* | wc –l

 

         练习: 

                   1、统计当前系统上所有已经登录的用户会话数;

                   #who | wc -l

 

                   2、列出当前系统上所有已经登录的用户的用户名;

                   #who | cut -d‘ ‘ -f 1 | sort -u

 

                   3、取出最后登录到当前系统的用户的用户名;

                   #who | sort -k 3,4 | cut -d‘ ‘ -f 1 | tail -1

 

                   4、取出当前系统上被使用的次数最多的shell(/etc/passwd中取)

                   #cut -d: -f7 /etc/passwd | sort | uniq -c | sort -n | tail -1

 

                   5、将/etc/passwd中第三个字段数据最大的后10个用户的信息全改为大写字符后保存到/tmp/mypasswd.txt文件中;

                   #sort -t: -k3 -n /etc/passwd | tail | tr ‘a-z‘ ‘A-Z‘ > /tmp/mypasswd.txt

 

文本处理命令:tr

                   tr‘SET1‘ ‘SET2‘

                            -d:删除指定字符集合中的所有字符

[root@mail ~]# tr ‘12‘ ‘ab‘    (1改为a2改为b)

123456    (输入)

ab3456    (显示的)

13525132

a35b5a3b

[root@mail ~]# tr ‘a-z‘ ‘A-Z‘   (把小写改为大写)

asd

ASD

hjk

HJK

^C

[root@mail ~]#

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Linux基础命令使用

标签:linux   硬件   

原文地址:http://153744.blog.51cto.com/143744/1670484

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