Linux之常用命令

一 简介

Linux 文件的命名规则

1. 除了 / 之外,所有的字符都合法,但有些字符最好不用,如空格符、制表符、退格符和字符 @ # $ & ( ) - 等
2. 避免使用 . 作为普通文件名的第一个字符
3. 大小写敏感,严格区分大小写(包括文件命名、命令、命令选项、用户名等)

 

Linux 命令格式

#命令格式 :命令  -选项   参数(操作对象)
      例 :ls    -la    /etc
#说明: 1)当有多个选项时,可以写在一起 2)两个特殊的目录 . 和 .. ,分别代表当前目录和当前目录的父目录

 

Linux 命令提示符

[root@localhost /]#

[当前登录用户@当前主机名 当前所在目录的最后一个目录]#

 

Linux常见目录

    

    

    

    

Linux内核:

/usr/src/kernels/
或者
/usr/src/linux/

 

 

二 文件处理命令

1. ls

命令英文原意:list
命令所在路径:/bin/ls
功能描述:显示目录文件
语法:ls   选项     文件或目录
           -a     显示所有文件,包括隐藏文件
           -l     以长格式显示(详细信息)
           -d     查看目录属性,不显示目录下内容   -ld
           -h     文件大小显示为常见大小单位    B    KB    MB   -lh
           -i     显示文件inode号

            -rw-------.    1  root   root   1190   08-10 23:37   test.txt
            第一项:        权限位    
            第二项:        引用计数(文件:硬链接数=数值-1;目录:目录下的目录个数)
            第三项:        root    所有者(属主)
            第四项:        root    所属组(属组)
            第五项:        文件大小(默认字节byte)
            第六项          最后一次修改时间
            第七项          文件名

 

2. cd

命令英文原意:change directory
命令所在路径:shell内置命令
功能描述:切换目录
语法:cd  目录
     cd  ~    进入当前用户的家目录
     cd  -    进入上次目录
     cd  ..    进入上一级目录
     cd  .    进入当前目录
相对路径:参照当前所在目录,进行目录切换
#cd ./rc.d/ (先切换到/etc下) 绝对路径:从根目录开始,逐级确认目录进行切换 #cd /etc/rc.d/

 

3. pwd

命令英文原意:print working directory
命令所在路径:/bin/pwd
功能描述:显示当前目录

 

4. mkdir

命令英文原意:make directories
命令所在路径:/bin/mkdir
功能描述:创建新目录
语法:mkdir  目录名
-v 显示创建过程 -p 递归创建

 

5. tree

命令所在路径:/usr/bin/tree
功能描述:显示目录树
语法:tree  目录
示例:
[root@localhost ~]# tree /root/test
/root/test
├── A
│   └── abc.txt
└── a.txt

1 directory, 2 files

 

6. touch

命令所在路径:/bin/touch              
功能描述:创建空文件
语法:touch  文件名

 

7. cp

命令英文原意:copy
命令所在路径:/bin/cp
功能描述:源文件或目录(或复制并改名)
语法:cp [选项]   源文件或目录  目标目录
          -r  复制目录
          -p  保留文件属
          -a  相当于  -rp

 

8. mv

命令英文原意:move
命令所在路径:/bin/mv
功能描述:剪切、改名
语法:mv  源文件或目录  目标目录

 

9. rm  文件/目录

命令英文原意:remove
命令所在路径:/bin/rm
功能描述:删除文件
语法:rm  [选项] 文件或目录
           -r   删除目录
           -f   强制执行
     rmdir      空目录        (只能用来删除目录)

 

10. cat

命令所在路径:/bin/cat
功能描述:显示文件内容
语法:cat  文件名
        注:文件超过一页内容后只能显示最后一页的内容
                
拓展:
      -n      列出行号
      cat     将多个文件合并(按照文件先后顺序) #cat -n a.txt b.txt 

 

11. more

命令所在路径:/bin/more
功能描述:分页显示文件内容
语法:more  文件名
     空格          向下翻页
     B             向上翻页
     Enter         换行
     q或Q          退出

 

12. less

命令所在路径:/usr/bin/less
功能描述:分页显示文件内容
语法:less  文件名
注:more能使用的四个选项 less都能使用,less和more的区别 在于less在显示文件内容的时候支持查找关键词,使用  /关键词  的方式进行查找

 

13. head与tail

head     -n        显示文件前n行
tail     -n        显示文件最后n行
tail     -f        实时监控文件尾部变化  

 

14. ln

命令英文原意:link
命令所在路径:/bin/ln
功能描述:生成链接文件
语法:ln  -s  源文件  目标文件    #-s 创建软链接
         
ln 源文件 目标文件 # 创建硬链接 注:不管创建哪种链接,源文件的位置必须写绝对路径。

 

#硬链接特征:
    1. 拥有相同的i节点和存储block块,可看做是同一个文件
    2. 可通过i节点识别
    3. 不能跨分区
    4. 不能针对目录使用
        硬链接不能链接目录
        硬链接不能跨分区

#软连接特征:
    1. 类似Win快捷方式
    2. 软连接拥有自己的i节点和block块,但是数据块中只保存源文件的文件名和i节点,并没有实际的文件数据
    3. lrwxrwxrwx    # l 软连接
    软连接文件权限都为rwxrwxrwx,但访问时要受源文件权限限制
    4. 修改任意文件,另一都改变
    5. 删除源文件,软连接不能使用
硬链接和软链接特征

 

三 权限管理命令

-rw-r--r--     1      root  root        08-11  01:11  test.txt   
权限位是十位

第一位:代表文件类型

        -     普通文件
        d     目录文件
        l     链接文件
        b     块设备文件
        c     字符设备文件
        s     套接字
        p     管道


其余九位
  读  写  执行        读  写  执行       读  写  执行
  r   w   x          r   w   x         r   w   x
  4   2   1          4   2   1         4   2   1
 文件所有者(u)      文件所属组(g)      其他用户(o)

 

1. chmod

命令英文原意:change the permissions mode of a file
命令所在路径:/bin/chmod
功能描述:修改文件的权限
例:
    chmod  u+x        aa       给aa文件的所有者添加x权限
    chmod  g+w,o+w    aa       给aa文件的所属组和其他人添加w权限
    chmod  u=rwx      aa       给aa文件的所有者赋予rwx权限
    chmod  644        aa       修改aa文件的权限为755,对应为rw-r--r--


权限的意义:
1. 权限对文件的含义
r:读取文件(cat more head tail)
w:编辑,新增,修改文件内容,但不包含删除文件
x:可执行
2. 权限对目录的含义
r:可查询目录下的文件名
w:具有可修改目录结构的权限,如新建文件和目录,删除此目录下文件和目录,重命名此目录下文件和目录,剪切 (touch rm mv cp)
x:可进入目录 (cd)

常见权限:
644 标准文件权限
755 文件:执行权限 目录:标准权限
777 最大权限(服务器不允许出现)

目录可用权限:
0:最大权限
5:基本权限,可进入,可查看
7:完整权限

 

2. chown

命令英文原意:change file ownership
命令所在路径:/bin/chown
功能描述:修改文件或目录的所有者、所属组

例:
chown tom a.txt 将a.txt文件的所有者修改为tom用户
chown :tom a.txt a.txt文件的所属组修改为tom

 

3. chgrp

命令英文原意:change group ownership
命令所在路径:/bin/chgrp
功能描述:改变文件或目录的所属组
语法:chgrp  用户组  文件或目录 
例:
chgrp tom file1 #改变文件file1的所属组为 tom组

 

4. umask

功能描述:显示和设置默认掩码值
777 -022 -------------- 755 #就是创建文件的默认权限 #Linux的安全机制,不给新建文件x权限

 

四 查找命令

1. which

命令所在路径:/usr/bin/which
功能描述:查看命令文件位置和命令可能出现的别名

 

2. whereis

命令所在路径:/usr/bin/whereis
功能描述:查找命令及帮助文档所在位置

 

3. locate   文件名

命令所在路径:/usr/bin/locate
功能描述:按照文件名查找,按照数据库查找

updatedb        强制更新数据库
            
/var/lib/mlocate     #locate命令所搜索的后台数据库
/etc/updatedb.conf   #配置文件,用于定义locate命令

    PRUNE_BIND_MOUNTS = "yes“
    #开启搜索限制
    PRUNEFS =
    #搜索时,不搜索的文件系统
    PRUNENAMES = 
    #搜索时,不搜索的文件类型
    PRUNEPATHS = 
    #搜索时,不搜索的路径

 

4. find

#按文件查找
    find  查找位置  -name   文件名
                   -iname  #不区分大小写
#按时间查找
    按天     ctime   atime  mtime
    按分钟   cmin    amin   mmin
      
          c  change     #表示属性被修改过:所有者、所属组、权限
          a  access     #被访问过(被查看过)
          m  modify     #表示内容被修改过
    #例:
        find /etc -mmin -120        120分钟内内容被修改过的
        find /etc -ctime +7         七天之前属性被修改过的文件

#按文件类型
     -type  f   二进制文件(普通文件)
     -type  l   软链接文件
     -type  d   目录

#按照用户
     -uid     数字     按照用户属主ID查找文件
     -gid     数字     按照属组组ID查找ID
     -user    用户名   属主用户名
     -group   组名     属组组名
     -nouser          找没有属主的文件

 Linux没有属主的正常文件:
     1. 外来文件(光盘,U盘,移动硬盘,网络文件)
     2. 极少数内核直接产生的文件(/proc  /sys)  

#按照文件权限
     find  /boot    -perm    644 

#按照大小
    单位是数据块  一块是512字节
       1M -> 1024k -> 2048块  (1块是0.5k 也就是512字节)
       100M -> 102400k -> 204800块

      find /etc -size -10k        查找小于10k的文件
      find /etc -size +2M        查找大于2M的文件
      注意+-号,如果没有,是精确这么大,通常都会带上+或-号,表示一个范围。

#按照i节点
      find ./ -inum 2310630 -exec rm {} \;
有一些文件的硬链接数量很多,有相同的i节点,查找其中一个文件的i节点号,一次性删除。
#逻辑连接符
      -a  (and 逻辑与)
      -o  (or  逻辑与)
   例:
       find /etc -size +1k -a -size -10k  
       在etc目录下查找大于1k并且小于10k的文件

#命令执行连接符(对查找到的文件,进一步处理)
     find  ...  -exec 命令 {}  \;
         {}表示find查询的结果集
         \是转义符,不使用命令别名,直接使用命令本身
         ;分号是表示语句的结束
     注意:固定格式,只能这样写。注意中间的空格

 

5. grep  “字符串”   文件名

grep  “root”  /etc/passwd
       -v        反向选择
       -i         忽略大小写
       -o     统计有几个关键字

 

#find:
    在系统中,搜索符合条件的文件名。如果要匹配,使用通配符匹配,通配符是完全匹配
#grep:
    在文件中,搜索符合条件的字符串。如果要匹配,使用正则表达式匹配,正则表达式是包含匹配
find与grep的区别

 

注意事项:

1. 尽量不要在根目录/中查找,查找得慢,会占用太多服务器资源
2. 如果需要在服务器中全盘查找,可以写一条计划任务在凌晨执行(计划任务后面讲)
3. 查找范围越小越好,匹配条件,越精准越好

 

6. 管道符

#命令1  |  命令2            将命令1的标准输出作为命令2的标准输入
    例:ls -l /etc | more            分屏显示ls内容
       grep -o "root" /etc/passwd | wc -l

 

五 帮助命令

1.  man   查看命令帮助

命令名称:man
命令英文原意:manual
命令所在路径:/usr/bin/man 

man    -f    命令    #查看命令有哪些级别的帮助
man -k 命令 #查看和命令相关的所有帮助

     

 

 2. help   内部命令   #查看内部的帮助信息

 

3.  命令    --help         #查看命令的常见选项

 

4.  info 命令

回车: 进入子帮助页面(带有*号标记)
      u      进入上层页面
      n      进入下一个帮助小节
      p      进入上一个帮助小节
      q      退出

 

六 压缩和解压缩

 

1.最早的Linux备份介质是磁带,使用命令是tar

2.可以打包后的磁带文件进行压缩储存,压缩命令是 gzip和bzip2

3.进程使用的扩展名: .tar.gz --> .tgz   .tar.bz2 --> .tbz2

1)  .zip格式

压缩格式: zip   压缩文件(生成)  源文件
解压格式: unzip 压缩包名
          -r    压缩目录

 

2)  .gz 格式

1. 压缩
    gzip  源文件
    
gzip
-c 源文件 > 压缩文件 #压缩为 .gz格式,源文件保留 gzip -r 源目录 #不能压缩目录,压缩目录下所有内容 2. 解压缩 gunzip 压缩包

 

3)  .bz2格式    #不能压缩目录

1.压缩
    bzip2   源文件   
    bzip2   aa

    bzip2 -k 源文件   #压缩之后保留文件

2. 解压
    bunzip2  压缩文件    #解压缩,-k 保留压缩文件

 

4)  .tar

1. 打包
    tar -cvf  打包文件名 源文件 
    tar  -cvf   aa.tar  aa
         -c   打包
         -v   显示打包过程
         -f   指定生产后的文件名
2. 解打包
   tar  -xvf  打包文件名
          -x    解打包
   tar   -xvf  aa.tar

3. 压缩同时打包
   -z        识别.tar.gz格式
   -j        识别.tar.bz2格式
   -v        显示压缩过程
   -f        指定压缩包名
 
   tar  -zcvf   压缩包名    源文件名   
   tar  -zxvf   压缩包名    #解压缩同时解打包

   tar  -jcvf   压缩文件名  源文件    #压缩同时打包  
   tar  -jxvf  压缩文件名   #解打包同时解压缩

4. 查看不解包
   tar  -ztvf  aa.tar.gz
   tar  -jtvf  aa.tar.bx2
        -t     #只查看,不解压

5. 指定解压缩文件位置
    tar -jxvf root.tar.bz2 -C /tmp/

  

 

七 网络命令

1.  ping

#测试网络连通性
    ping  -c   次数    192.168.1.1      #探测网络通畅
    ping  -s  65536    192.168.1.1     #指定谈测时数据包的大小
    Ctrl +c 强制终止

 

2.  ifconfig

#查询本机网络信息
命令名称:ifconfig
命令英文原意:interface configure
命令所在路径:/sbin/ifconfig
执行权限:root

    ifconfig    eth0    192.168.1.1    netmask    255.255.255.0
    ifconfig    eth0    192.168.1.1/24

    ifconfig    eth0:0    192.168.1.2        #设置网卡子端口

 

3. w

#查询当前登录服务器的用户
第一行:当前时间   持续运行时间,登录用户数量,1分钟,5分钟,15分钟 前的平均负载
第二行:用户名   TTY:登录终端   FROM:来源IP   登录时间   IDLE:用户闲置时间   JCPU:所有进程占用cpu时间     
      PCPU:当前进程占用cpu时间   WHAT:用户正在进行的操作

 

4. who     #查询登录用户

 

5. last     #列出登录系统的相关信息

 

6.  lastlog  # 显示所有账户最后一次的登录时间

 

7.  write 用户名  

#给在线用户写信
#例:
    write    root
    ctrl+d   保存,发送

 

8.  wall

#对所有在线用户广播
#例:
   wall    字符串        
   或者     wall  回车    字符串     ctrl+d

 

9.  mail

#邮件命令
发信:
    mail    用户名
    标题
    内容
    ctrl+d        结束,发送
收信: mail
1 2 3 查看对应邮件(from to subject) h 列出邮件列表 q 退出

 

10. netstat

#查看网络连接状态
netstat  -tlun  查看本机所有监听端口
          -t        tcp协议
          -u        udp协议
          -l        监听
          -n        以IP和端口的形式显示信息
/etc/service #所有常见的端口

 

11. traceroute

1.命令格式:

  traceroute[参数][主机]

2.命令功能:

traceroute指令让你追踪网络数据包的路由途径,预设数据包大小是40Bytes,用户可另行设置。

具体参数格式:traceroute [-dFlnrvx][-f<存活数值>][-g<网关>...][-i<网络界面>][-m<存活数值>][-p<通信端口>][-s<来源地址>][-t<服务类型>][-w<超时秒数>][主机名称或IP地址][数据包大小]

3.命令参数:

  -d 使用Socket层级的排错功能。

  -f 设置第一个检测数据包的存活数值TTL的大小。

  -F 设置勿离断位。

  -g 设置来源路由网关,最多可设置8个。

  -i 使用指定的网络界面送出数据包。

  -I 使用ICMP回应取代UDP资料信息。

  -m 设置检测数据包的最大存活数值TTL的大小。

  -n 直接使用IP地址而非主机名称。

  -p 设置UDP传输协议的通信端口。

  -r 忽略普通的Routing Table,直接将数据包送到远端主机上。

  -s 设置本地主机送出数据包的IP地址。

  -t 设置检测数据包的TOS数值。

  -v 详细显示指令的执行过程。

  -w 设置等待远端主机回报的时间。

  -x 开启或关闭数据包的正确性检验。
View Code

 

#常见的端口:
            20 21    ftp        文件共享
            22       ssh        安全的远程连接
            23       telnet            
            25       smtp        简单邮件传输协议(发信)
            110      pop3        邮局协议(收信)
            80       http        超文本传输协议
            3306     mysql       数据库端口
            3389     windows     终端端口
            53       DNS
常见的端口

 

#arp

用于操作主机的arp缓冲区,它可以显示arp缓冲区中的所有条目、删除指定的条目或者添加静态的ip地址与MAC地址对应关系

-a<主机>:显示arp缓冲区的所有条目;
-H<地址类型>:指定arp指令使用的地址类型;
-d<主机>:从arp缓冲区中删除指定主机的arp条目;
-D:使用指定接口的硬件地址;
-e:以Linux的显示风格显示arp缓冲区中的条目;
-i<接口>:指定要操作arp缓冲区的网络接口;
-s<主机><MAC地址>:设置指定的主机的IP地址与MAC地址的静态映射;
-n:以数字方式显示arp缓冲区中的条目;
-v:显示详细的arp缓冲区条目,包括缓冲区条目的统计信息;
-f<文件>:设置主机的IP地址与MAC地址的静态映射。

 

 

八 关闭和重启命令

1.  sync

#数据同步,把内存中数据,强制保存进硬盘

 

2. 关机

shutdown  -h  now   #没有特殊情况,使用此命令
halt
init  0 
poweroff

 

3. 重启

shutdown  -r  now  #用此
reboot
init 6

 

4.注销

logout

exit      #工作中常用

ctrl+d     #工作中常用

 

九 挂载命令

#linux所有存储设备都必须挂载使用,包括硬盘
命令名称:mount
命令所在路径:/bin/mount

 

1.  mount

#查询系统中已经挂载的设备常见的存储设备:
        /dev/sda1      第一个scsi硬盘的第一分区         
        /dev/cdrom     光盘
        /dev/sr0       光盘   centos 6.x

常用挂载点:
       /mnt
       /media
       /cdrom
            
#挂载格式:
       mount   [-t 文件系统类型]    [-o 特殊选项]  设备文件名  挂载点

选项:
    -t 文件系统:加入文件系统类型来指定挂载的类型,可以ext3、ext4、iso9660 等文件系统 
    -o 特殊选项:可以指定挂载的额外选项,比如读写权限、同步异步等,如果不指定则默认值生效

     

 

示例:

mount    #查看挂载信息
    /dev/sda1 on /boot type ext4 (rw)

 我们查看到/boot分区已经被挂载,而且采用的defaults选项,那么我们重新挂载分区,并采用noexec 权限禁止执行文件执行,看看会出现什么情况(注意不要用/分区做试验,不
然系统命令也不能执行了) [root@lchuan
~]mount -o remount,noexec /boot [root@lchuan ~]cd /boot [root@lchuan ~]vim hello.sh #!/bin/bash echo “hello world!” [root@lchuan ~]chmod 755 hello.sh [root@lchuan ~]./hello.sh [root@lchuan ~]-bash: ./hello.sh: 权限不够 [root@lchuan ~]mount -o remount,exec /boot 结束记得修改回来,不然会影响系统正常启动

 

 

2.  挂载硬盘分区、移动硬盘

[root@lchuan ~]mkdir  /mnt/disk1  #创建挂载点
[root@lchuan ~]mount  /dev/sdb1   /mnt/disk1  #挂载硬盘分区或者移动硬盘

 

3.  挂载光盘

[root@lchuan ~]mount -t iso9660 /dev/cdrom   /mnt/cdrom
#/mnt/cdrom必须是已存在的目录

 

4.  挂载U盘

[root@lchuan ~]fdisk    -l      
#查看当前系统下的存储设备,确认U盘的设备名称
            
[root@lchuan ~]mount  -t  vfat  /dev/sdb1  /mnt/usb
#fat32格式的U盘挂载方式
    
     -t    vfat    fat32
     -t    fat     fat16
    注:Linux默认情况不识别NTFS格式。

 

 5. 卸载

umount    设备名称或者是挂载点
#所有的挂载的设备卸载方式都一样

 

#挂载NTFS分区设备
   a.重新编译内核(略)
   b.加载NTFS模块(略)
   c.使用第三方插件加载NTFS格式
        下载NTFS-3g插件
        安装插件
        挂载NTFS格式设备
[root@lchuan ~]mount    -t    ntfs-3g    设备名    挂载点
6. 拓展:挂载NTFS分区设备

 

 

十 查看Linux系统信息

1. uname -a   可显示电脑以及操作系统的相关信息

[root@localhost ~]# uname -a
Linux localhost.localdomain 2.6.32-642.el6.x86_64 #1 SMP Tue May 10 17:27:01 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

 

2.cat /proc/version   说明正在运行的内核版本

Linux version 2.6.32-642.el6.x86_64 (mockbuild@worker1.bsys.centos.org) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC) ) #1 SMP Tue May 10 17:27:01 UTC 2016

 

3.查看CentOS的版本号(C7)

cat /etc/centos-release

 

4.cat /etc/issue 显示的是发行版本信息(C6)

[root@localhost ~]# cat /etc/issue
CentOS release 6.8 (Final)
Kernel \r on an \m

 

5. lsb_release -a   (适用于所有的linux,包括Redhat、SuSE、Debian等发行版,但是在debian下要安装lsb)

[root@localhost ~]# lsb_release -a 
LSB Version:    :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Distributor ID:    CentOS
Description:    CentOS release 6.8 (Final)
Release:    6.8
Codename:    Final

 

5. cat /proc/cpuinfo  查看CPU信息

 

6.查看操作系统位数

getconf LONG_BIT

 

posted @ 2018-04-25 12:24  shadow3  阅读(273)  评论(0)    收藏  举报