zoukankan      html  css  js  c++  java
  • Linux 基本操作命令

    以下为《鸟哥的Linux私房菜》的学习总结

    1.     转换语系

    LANG=en

    LANGUAGE=en

    LC_ALL=en

    LC_CTYPE=en

    LC_TIME=en

    2.     显示日期命令     date

               [root@sun ~]# date

    Tue Aug  2 10:28:08 CST 2011

               date +%Y/%m/%d

               [root@sun ~]# date +%Y/%m/%d

    2011/08/02

    显示日历 cal

    [root@sun ~]# cal

         August 2011   

    Su Mo Tu We Th Fr Sa

     1  2  3  4  5  6

     7  8  9 10 11 12 13

    14 15 16 17 18 19 20

    21 22 23 24 25 26 27

    28 29 30 31

    cal [month] [year]

    3.     Linux 文件属性与目录配置

    更改所属用户组

    chgrp [-R] dirname/filename …   -R 参数递归修改

    更改文件拥有者

    chown [-R] 用户名    文件名

               chown [-R] 用户名:用户组名 文件或目录

    更改文件属性

    chmod [-R] filename  -rwx 对应4 2 1

               eg: chmod 777 filename // filename文件赋予 rwxrwxrwx权限

     

    4.     Linux文件与目录管理

    相对路径与绝对路径,不做过多解释;绝对路径是由根目录”/”写起的路径(我的理解)

    .         表示当前目录

    ..        表示上一层目录

    -         表示前一个工作目录

    ~        表示当前用户所在的家目录

    ~account   表示account用户的家目录

    cd 切换目录

    (我当前用户使root,计算机名sun

    显示当前所在的目录    pwd

    建立新目录      

    mkdir [-mp] 目录名

               -m     设置文件的权限

               -p     帮助直接建立所需要的目录递归

    删除“空”目录

    rmdir [-p] dirname

               -p       与上层“空”目录一起删除

    如果想删除非空的目录的话可以用 rm –rf test        -r表递归,-fforce(我认为的,没查)

    但是不建议linux下面是用这个命令,一旦操作失误的话就惨了!!!

    5.     管理文件与目录

    查看文件和目录       ls

    ls [-aAdfFhilRS] 目录名

    ls [--color={none,auto,always}] 目录名

    ls [--full-time] 目录名

    参数

    -a       :全部文件,包括隐藏文件一起列出来

    -A      :全部文件,但不包括...这两个目录

    -d       :进列出目录本身,而不是列出目录内的文件数据

    -f        :直接列出结果,而不进行排序(默认会按照文件名排序)

    -F       :根据文件、目录等信息,附加数据结构,

                         例如:*表示可执行文件,/表示目录,=表示套接字文件;|表示FIFO文件

    -h       :列出文件大小

    -i        :列出inode位置,而非列出文件属性

    -l        :列出长数据串,包含文件的属性

    -n       :列出UIDGID而非用户与用户

    -r        :将排序结构反向输出

    -R       :与子目录内容一起列出来

    -S       :按文件大小

    -t        :按时间排序

    --color=never                           :不要按照文件属性用不同的颜色显示

    --color=always                         :显示颜色

    --color=auto                             :让系统自行按照设置来判断是否使用颜色

    --full-time                       :以完整时间模式输出

    --time={atime,ctime}           :输出访问时间或改变权限属性的时间(ctime)而不是改变内容的时间

    复制文件或目录       cp

    cp [-adfilprsu] source destination

    cp [option] source1 source2 … directory

    -a:相当于-pdr

    -d:若源文件为链接文件属性,则复制链接文件属性,而非文件本身

    -fforce,有问题不会询问用户,强制执行

    -i:若目标文件已经存在,在覆盖时会先询问

    -l:建立硬连接的连接文件,而非复制文件本身

    -p:与文件属性一起复制,而不是使用默认属性

    -r:递归复制,用于目录的复制操作

    -s:复制成符号连接文件,也就是“快捷方式”

    -u:若目标文件比源文件就,则更新目标文件

    删除文件或目录       rm

    rm [-fir] 文件或目录

    -fforce,强制删除

    -i:交互模式,在删除前会询问用户是否操作

    -f:递归删除,用于目录的删除

    移动文件、目录或重命名

    mv [-fiu] source destination

    mv [option] source1 source2 … directory

    -f force

    -i :若目标文件已经存在,询问是否覆盖

    -u update

    eg:mv mvtest mvtest1                  ç这样就重命名了

    查看文件内容

    cat    :由第一行开始显示文件内容

    tac    :从文件的最后一行开始显示文件内容

    nl     :显示的时候输出行号

    more  :一页一页地显示文件内容

    less   :与more相似,但可以向前翻页

    head  :只看前几行

    tail    :只看后几行

    od    :以二进制方式读取文件

    修改文件时间与创建文件:touch

    与文件相关的时间

    modification time(mtime, 修改时间):文件内容修改时(不是文件属性),便会改变这个时间

    status time(ctime, 状态时间):当前文件的“状态”改变时,就会更新这个时间,比如更改权限与属性

    access time(atime, 访问时间):当读取这个文件内容时,就会更新这个读取时间

    touch [-acdmt] filename

    -a :仅修改access time

    -c :仅修改时间,而不建立文件

    -d :后面可以接日期,也可以使用 --date=”日期或时间

    -m :仅修改mtime

    -t :后面可以接时间,格式为[YYMMDDhhmm]

    搜索文件

    寻找执行文件 which

    which [-a] cmd

    -a:将所有可找到的命令均列出,而不仅仅列出找到的第一个命令

    寻找特定文件 whereis

    whereis [-bmsu] 文件或目录名

    -b:只找二进制文件

    -m:执照有帮助文件manual路径下的文件

    -s:只找源文件

    -u:没有帮助文件的文件

    locate

    locate filename,完整路径中含有filename的全部选出来

    find

    find [PATH] [option] [action]

    参数:

    与时间有关的参数

    -atime n n为数字,在n天之前的一天内访问过(access)的文件

    -ctime n n为数字,在n天之前的一天内修改过状态(change)的文件

    -mtime n n为数字,在n天之前的一天内访修改的(modification)文件

    -newer filefile为一个存在的文件,列出比file新的文件

    与用户或用户组名称有关的参数

    -uid n  n为数字,这个数字是用户的帐号ID,即UID,这个UID是记录在/etc/passwd与帐号对应的数字

    -gid n   :用户组

    -user namename为用户帐号名称

    -group namename为用户组名称

    -nouser:查找文件的拥有者不再/etc/passwd中的文件

    -nogroup:查看文件的拥有用户组不再/etc/group中的文件

    与文件权限及名称有关的参数

    -name filename:搜索文件名为filename的文件

    -type TYPE:搜索文件类型为TYPE,类型主要有:一般正规文件(f),设备文件(b,c),目录文件(d),连接文件(l),套接字(s),及FIFO(p)等属性

    -size [+-]SIZE:搜索比SIZE还要大[+]或小[-]的文件。    SIZE规格有cbytek

    -perm mode:搜索文件属性“刚好等于”mode的文件,这个mode类似于chmod的属性值,比如-rwxr-xr-x的属性值为4755

    -perm -mode:搜索文件属性“必须全部包括mode的属性”,比如-rwxr--r--的属性值为0744,使用-perm -0744

    -perm +mode:搜索文件属性“包含任一mode的属性”

    附加操作

    -exec commandcommand为其他命令,-exec后面可在接额外的命令来处理搜索到的结果

    eg

    find / -mtime 0                                                 #0代表当前时间,所以是从现在起24小时前

     

    6.     文件系统

    磁盘与目录容量

    df

    df [-ahikHTm] [目录或文件名]

    -a:列出所有的文件系统,包括系统特有的/proc等文件系统

    -k:以KB为单位列出各文件系统

    -m:以MB为单位

    -h:以GBMBKB等格式显示

    -H:以M=1000K取代M=1024K

    -T:连同该分区的文件系统名称(例如ext3)一起列出

    -i:不用硬盘容量,而以inode的数量显示

    du

    du [-ahskm] 文件或目录名称

    -a:列出所有的文件与目录容量,因为默认仅统计目录下面的文件量而已

    -h:以人们易读的容量格式(G/M)显示

    -s:列出总量,不列出每个目录占用的总量

    -k:以KB列出容量显示

    -m:以MB列出容量显示

    7.     磁盘的挂在与卸载(看我的linux 挂载外部存储设备 (mount)

    8.     Linux系统常见的压缩命令


    9.     Linux用户管理

    帐号管理

    添加删除用户

    useradd [-u UID] [-g initial_group] [-G other_group] -[Mm] [-c 说明栏] [-d home] [-s shell] username

    -u:后面接UID

    -g:后面接用户组名称为初始用户组,该groupID会放到/etc/passwd的第四个字段内

    -G:后面接的用户组称是这个帐号还可以支持的用户组。会修改/etc/group内的相关数据

    -M:强制。不要建立用户家目录

    -m:强制。要建立用户家目录

    -c/etc/passwd5栏的说明内容,可以随便设置

    -d:制定某个目录为家目录,而不是用默认值

    -r:建立一个系统帐号,这个帐号的UID会有限制(/etc/login.defs

    -s:后面接一个shell。默认为/bin/bash

    修改密码passwd

    passwd [useraccount]

    root用户可以直接修改其他用户的密码

    用户要修改自己的密码则必须给出原有密码

    删除用户  userdel

    相关文件 /etc/passwd/etc/shadow/home/username

    userdel [-r] username #连同用户的家目录一起删除

    查询UID/GID的相关信息  id

    id [username]

    [root@sun Desktop]# id sun

    uid=500(sun) gid=500(sun) groups=500(sun)

    [root@sun Desktop]# id                  

    uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

    增加删除用户组 groupadd

    groupadd [-g gid] [-r]

    -g :后面接某个特定的GID,用来直接给予某个GID

    -r :建立系统用户组。与/etc/login.defs内的GID_MIN相关

    [root@sun Desktop]# groupadd group1

    [root@sun Desktop]# grep group1 /etc/group /etc/gshadow

    /etc/group:group1:x:506:

    /etc/gshadow:group1:!::

    [root@sun Desktop]# groupadd -r group2

    [root@sun Desktop]# grep group2 /etc/group /etc/gshadow

    /etc/group:group2:x:487:

    /etc/gshadow:group2:!::

    有没有 –r,结果与/etc/login.defs中的设置有关。而且以groupadd新增的帐号,默认都不能使用密码方式登录,也就是说,默认是私有用户组,无法私用newgrp来的登录。

    groupmod

    usermod相似,用于group相关参数的修改

    groupmod [-g gid] [-n group_name]

    -g :修改已有的GID数字

    -n :修改已有的用户组名称

    [root@sun Desktop]# groupmod -g 103 -n groupname group2

    [root@sun Desktop]# grep groupname /etc/group /etc/gshadow

    /etc/group:groupname:x:103:

    /etc/gshadow:groupname:!::

    删除用户组  groupdel

    gpasswd groupname

       :没有任何参数,表示给groupname一个密码(/etc/gshadow)

    -A :将groupname的主控权交给后面的用户管理(改用户组的管理员)

    -M :将这些帐号加入这个用户组中

    -r :将groupname 的密码删除

    -R :让groupname的密码栏失效,所以newgrp就不能使用了

    关于用户组管理员做的操作

    gpasswd [-ad] user groupname

    -a :将某用户加入到groupname用户组中

    -d :将某用户从groupname中删除

     

    切换用户身份

    su [-lcm] [username]

    -  :如果执行su –时,表示该用户想要成为root身份,且使用root环境设置的参数文件

    -l :后面可以接用户,使用 -l的好处是可以使变换身份者的所有相关的环境的配置文件

    -m -m-p是一样的,表示“使用当前环境设置,而不重新读取新用户的设置文件”

    -c :仅进行一次命令,所以-c后面可以加上命令

    sudo

    10. 作业进程管理

    将命令放到后台“执行”, &

    eg tar –zpcf /tmp/etc.tar.gz /etc &

    将“当前”作业放到后台“暂停”[Ctrl]-z

    观察当前后台作业状态jobs

    jobs [-lrs]

    -l :除了列出作业号之外,同时列出PID

    -r :仅列出正在后台运行(run)的作业

    -s :仅列出正在后台暂停(stop)的作业

    将后台作业拿到前台处理:fg

    fg %jobnumber        # %可有可无,jobnumber作业的号码

    让作业在后台运行:bg

    管理后台作业:kill

    kill -signal %jobnumber

    kill -lL的小写)

    -l:列出当前kill能够使用的信号

    signal:表示给后面的作业什么指示

    -1(数字1)重新读取一次参数的设置文件

    -2:表示与由键盘输入[Ctrl]-c同样的动作

    -9:立刻强制删除一个作业

    -15:以正常的程序方式终止一项作业。

    进程管理

    ps

    ps aux
    ps -lA
    ps axjf
    -A 所有进程均显示
    -a 与终端无关的进程
    -u 有效用户的相关进程
    l 较长
    较详细的显示PID的信息
    j 作业的输出格式
    -f 更完整地输出

    PID 进程ID
    USER 进程的所属所属用户
    PR priority,进程执行顺序,越小越先执行
    NI Nice,Priority有关,越小越先执行
    %CPU cpu使用率
    %MEM mem使用率
    TIME+ CPU使用时间累加  

    [root@sun Desktop]# ps aux

    USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND

    root         1  0.0  0.2  19244  1144 ?        Ss   Aug01   0:02 /sbin/init

    root         2  0.0  0.0      0     0 ?        S    Aug01   0:00 [kthreadd]

    root         3  0.0  0.0      0     0 ?        S    Aug01   0:00 [migration/0]

    root         4  0.0  0.0      0     0 ?        S    Aug01   0:00 [ksoftirqd/0]

    root         5  0.0  0.0      0     0 ?        S    Aug01   0:00 [watchdog/0]

    root         6  0.0  0.0      0     0 ?        S    Aug01   0:00 [events/0]

    ……省略N

     

    [root@sun Desktop]# ps -lA

    F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD

    4 S     0     1     0  0  80   0 -  4811 poll_s ?        00:00:02 init

    1 S     0     2     0  0  80   0 -     0 kthrea ?        00:00:00 kthreadd

    1 S     0     3     2  0 -40   - -     0 migrat ?        00:00:00 migration/0

    1 S     0     4     2  0  80   0 -     0 ksofti ?        00:00:00 ksoftirqd/0

    5 S     0     5     2  0 -40   - -     0 watchd ?        00:00:00 watchdog/0

    1 S     0     6     2  0  80   0 -     0 worker ?        00:00:00 events/0

    1 S     0     7     2  0  80   0 -     0 worker ?        00:00:00 cpuset

    1 S     0     8     2  0  80   0 -     0 worker ?        00:00:00 khelper

    …… 省略N

     

    [root@sun Desktop]# ps -axjf

    Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/FAQ

     PPID   PID  PGID   SID TTY      TPGID STAT   UID   TIME COMMAND

        0     2     0     0 ?           -1 S        0   0:00 [kthreadd]

        2     3     0     0 ?           -1 S        0   0:00  \_ [migration/0]

        2     4     0     0 ?           -1 S        0   0:00  \_ [ksoftirqd/0]

    ……

       1  1769  1769  1769 ?           -1 Ssl      0   0:00 automount --pid-file /var/run/autofs.pid

        1  1792  1792  1792 ?           -1 Ss       0   0:00 /usr/sbin/sshd

     1792 16070 16070 16070 ?           -1 Ss       0   0:01  \_ sshd: root@pts/0

    16070 16090 16090 16090 pts/0    29910 Ss       0   0:00      \_ -bash

    16090 27386 27386 16090 pts/0    29910 S        0   0:00          \_ su sun

    27386 27387 27387 16090 pts/0    29910 S      500   0:00              \_ bash

    27387 27530 27530 16090 pts/0    29910 S        0   0:00                  \_ su root

    27530 27534 27534 16090 pts/0    29910 S        0   0:00                      \_ bash

    27534 29910 29910 16090 pts/0    29910 R+       0   0:00                          \_ ps -axjf

     

    top

    top [-d] top [-bnp]

    -d :后面接秒数,进程画面更新的描述,默认是5s

    -b :以批处理方式执行top,还有更多的参数可用,通常会搭配数据流重定向,将批处理的结果输出为文件

    -n :与-b搭配,意义是,需要基尼险那个几次top的输出结果

    -p :制定某些个PID来进行观察监测

    top执行过程中

          ?:显示在top中可以输入的命令

          P :按CPU的使用资源排序显示

          M:按内存使用资源排序

          N:按PID来排序

          T:按该进程使用的CPU时间积累排序

          k:给某个PID一个信号

          r:给某个PID重新确定一个值

      PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                   

    29975 root      20   0 14940 1196  892 R  1.0  0.2   0:00.08 top                                        

       19 root      20   0     0    0    0 S  0.5  0.0   4:29.16 ata/0                                      

        1 root      20   0 19244 1144  944 S  0.0  0.2   0:02.51 init                                       

        2 root      20   0     0    0    0 S  0.0  0.0   0:00.01 kthreadd                                    

        3 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0                                

        4 root      20   0     0    0    0 S  0.0  0.0   0:00.15 ksoftirqd/0                                

        5 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 watchdog/0                                 

        6 root      20   0     0    0    0 S  0.0  0.0   0:00.76 events/0                                   

        7 root      20   0     0    0    0 S  0.0  0.0   0:00.00 cpuset                                                   

       省略N多              

     

    pstree [-Aup]

    -A:各进程树之间以ASCII字符来连接。

    -p:同时列出每个进程的PID

    -u:同时列出每个进程的所属帐号名称

     

    查看系统资源

    [root@sun Desktop]# free

                 total       used       free     shared    buffers     cached

    Mem:        503312     454164      49148          0      35212      40140

    -/+ buffers/cache:     378812     124500

    Swap:      2916344      18840    2897504

     

    [root@sun Desktop]# uname -a      # 所有系统信息

    Linux sun 2.6.32-71.el6.x86_64 #1 SMP Wed Sep 1 01:33:01 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux

    [root@sun Desktop]# uname -s      # 系统核心名称

    Linux

    [root@sun Desktop]# uname -r      # 核心的版本

    2.6.32-71.el6.x86_64

    [root@sun Desktop]# uname -m     # 本系统的硬件名称

    x86_64

    [root@sun Desktop]# uname -p      # CPU的类型

    x86_64

    [root@sun Desktop]# uname -i      # 硬件的平台

    x86_64

    netstat

    netstat 用于网络监控方面,不过,在进程管理方面也需要了解。netstat 的输出分为两部分,上面是网络接口相关的联机,下方是与unix进程有关的项目

    netstat [-atunlp]

    -a :将当前系统上所有的联机、监听、套接字数据都列出来

    -t :列出tcp网络包的数据

    -u :列出udp网络包的数据

    -n :不以进程的服务名称,以端口号(port number)来显示

    -l :列出当前正在网络监听(listen)的服务

    -p :列出网络服务的进程PID

     

    dmesg | more 输出所有内核开机时的信息

    [root@sun Desktop]# dmesg  | grep -i sd           #搜索开机时硬盘的相关信息

    ACPI: RSDP 00000000000f6940 00024 (v02 PTLTD )

    ACPI: XSDT 000000001fef0804 0004C (v01 INTEL  440BX    06040000 VMW  01324272)

    ACPI: DSDT 000000001fef09bc 0E4DC (v01 PTLTD  Custom   06040000 MSFT 03000001)

    ACPI: EC: Look up EC in DSDT

    sd 0:0:0:0: [sda] 31457280 512-byte logical blocks: (16.1 GB/15.0 GiB)

    sd 0:0:0:0: [sda] Write Protect is off

    sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00

    sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA

     sda: sda1 sda2

    sd 0:0:0:0: [sda] Attached SCSI disk

    dracut: Scanning devices sda2  for LVM logical volumes vg_sun/lv_root vg_sun/lv_swap

    sd 0:0:0:0: Attached scsi generic sg0 type 0

    EXT4-fs (sda1): mounted filesystem with ordered data mode

    SELinux: initialized (dev sda1, type ext4), uses xattr

     

    [root@sun Desktop]# dmesg | grep -i eth                # 查看网卡代号是eth的信息

    udev: renamed network interface eth0 to eth2

    eth2: no IPv6 routers present

     

  • 相关阅读:
    2013-11-23 sentence patterns
    面试题 盛水 twitter
    Uva 10025 The ? 1 ? 2 ? ... ? n = k problem
    FTP服务(5)客户连接常见故障现象
    FTP服务(4)基于MySQL数据库认证
    FTP服务(3)实现基于文件验证的vsftpd虚拟用户
    FTP服务(2)实现基于SSL的FTPS
    FTP服务(1)
    Apache httpd服务
    Apache httpd服务——常用配置
  • 原文地址:https://www.cnblogs.com/SunChina/p/2128049.html
Copyright © 2011-2022 走看看