• 实用linux命令


    1)查看一个文件夹下有多少个文件

    ls  *.*|wc –l

    补充说明:

    wc:

    -l 统计行数

    -w 统计单词数

    -c 统计字节数

    -m 统计字符数

    2)统计一个文件的行数的命令(也就是可以统计一个项目的代码量)

    wc -l 文件名,例如:

    [root@Master java2cob]# wc -l java2cob.c

    2053 java2cob.c

    [root@Master java2cob]# wc -l *.c *.h

    2053 java2cob.c   126 vmjava1.c   150 vmjava2.c    58 java2cob.h    26 messageeuc.h    26 messagesjis.h    26 messageus.h    29 messageutf8.h

    2494 total

    3)设置环境变量

    export 环境变量名=“环境变量路径”

    4)删除环境变量

    unset 环境变量名

    5)查看进程

    ps –ef |grep

    6)查看默认的线程栈大小

    ulimit lu

    7)通过编辑/etc/sysctl.conf文件可以修改以下参数

    ernel.printk_ratelimit = 5

    kernel.panic_on_oops = 1

    kernel.pid_max = 360

    kernel.sercons_esc = -1

    kernel.overflowgid = 65534

    kernel.overflowuid = 65534

    kernel.pty.nr = 1

    kernel.pty.max = 4096

    kernel.random.uuid = 872329aa-2624-4fa4-941e-96148e6084f9

    kernel.random.boot_id = c00708b8-abb1-46b4-9190-325b4e68da94

    kernel.random.write_wakeup_threshold = 128

    kernel.random.read_wakeup_threshold = 64

    kernel.random.entropy_avail = 3616

    sysctl –p命令重新加载sysctl.conf并立即使之生效。

    8)显示系统下所有的用户组的命令

    Groups

    9)添加用户组的命令

    groupadd 组名      

    10)查看OS的位数

    Solaris 系统:isainfo –b

    Linux 系统 :uname –m (查看系统位数)     uname -a (查看系统位数及版本信息)

    11)动态查看不断更新的文件内容

    tail –f 文件名

    12)打包文件的命令

    tar –cvf 打包后包名 要打包的文件

    13)查看内核版本: uname -a
                             more /etc/*release
                             more /etc/redhat-release
                             more /proc/version

      查看CPU的信息:grep "model name" /proc/cpuinfo
                            more /proc/cpuinfo

      查看CPU位数:getconf LONG_BIT
                             ls   如果在root下ls有lib64 文件夹说明系统64

      查看libc、gcc版本:ldd /sbin/mii-tool
                                  rpm -qa | grep glibc
                                  gcc -v
      查看内存信息:more /proc/meminfo
                      grep MemTotal /proc/meminfo

     查询系统版本 : lsb_release -a

     查看系统默认的locale:cat /etc/locale.conf 或者cat /etc/sysconfig/i18n

                                      

     查看linux系统下路径名和文件名最大长度

    由于文件名和路径名限制实际上是有文件系统有关系的,所以要用pathconf函数。

    或者用getconf命令. 比如: $ getconf PATH_MAX /usr 1024 $ getconf NAME_MAX /usr 255 $

    14)在修改查看文件时,用VI打开后显示行数

    :set nu

    15)按时间顺序显示列表

    ls –lt

    16)查找命令,在某个路径下找出含有某个名字的文件

    find /var/opt/FSUNtd -name *core* -print

    find . –name *.txt     在当前目录查找txt文件

    find / -mount -name test -print (指定-mount选项,不要搜索挂载的其他文件系统的目录)

    find . -newer while2 -print (在当前目录下搜索比文件while2更新的文件)

    find . -newer while2 -type f -print (在当前目录下搜索比文件while2更新的文件,-type f指只显示文件,不显示目录)

    find . –mtime -3       查找更新时间3天之内的文件

    find /etc –type l        查找链接类型的文件

    find . -size +1000000c  查找大于1M字节的文件

    17)grep命令

    在文本文件中寻找特定字符串,并将所有出现该字符串的行打印

    grep abc file

    grep “this is a book” file

    ps –ef | grep inetd 

    grep -i  root /etc/passwd    //忽略大小写

    grep -v root /etc/passwd    //显示除了含有root的行

    grep e$ words2.txt   查找以字母e结尾的行

    grep a[[:blank:]] words2.txt  查找以字母a结尾的单词

    grep Th.[[:space:]] words2.txt  查找以Th开头的由3个字母组成的单词

    grep -E [a-z]{10} words2.txt 查找只有10个字符长的全部由小写字母组成的单词

    另外还有类似的两个命令fgrep和egrep

    18)用户管理

    增加用户:

    useradd [-c] [-d] [-g] [-m] [-s] username

    -c           表示注释

    -d          表示家目录

    -g           表示属于哪个用户组

    -m          表示若家目录不存在,则自动创建

    -s                          表示该用户使用的shell

    username  用户名

    例如:useradd -d /home/imsuser -g imsgroup -m -s /bin/sh imsuser

    删除用户:userdel username

    修改用户:usermod options username

    修改密码:passwd [username]

    增加用户组:groupadd

    删除用户组:groupdel

    切换用户(su:switch user):su  - username

    查看登录用户:who

    19)进程管理

    查询进程运行状况:ps

    ps -e      列出现在正在运行的进程   

    ps -f       列出进程的详细信息          

    ps -u db2inst1     列出db2inst1用户的进程 

    ps -l      显示进程最详细的信息      

    信息解释:

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

    0 S     0 19773 19762  0  76   0 -   508 consta pts/4    00:00:00 login

    0 S     0 19794 19773  0  75   0 -   685 consta pts/4    00:00:00 sh

    0 R     0 32133 19794  0  78   0 -   890 -      pts/4    00:00:00 ps

    例如:

                  ps -ef |grep inetd

    F表示当前进程的状态是16进制的

    S:进程的状态,他的值有如下解释

    O--正在运行的一个进程

    S--休眠进程、等待事件唤醒

    R--在进程队列中的进程,等待系统分配资源

    Z--僵死进程,进程已经结束,父进程不在等待,但是僵死进程还在进程表中。

    T--停止的进程

    UID:进程属主ID,root用户的ID是0

    PID:进程ID

    PPID:Parent PID

    C:CPU占有的百分比,0~100来表示

    PRI:进程优先级,值越高,优先级越低

    NI:优先级

    ADDR:进程在内存中的地址

    SZ:进程占用的内存大小

    WCHAN:处理休眠事件的内存地址

    TTY:启动进程的终端、如果TTY是“?”则表示进程是系统级的进程

    STIME:进程启动时间

    CMD:产生进程的命令,或父进程的命令

    20)列出所有信号值:kill –l 

    21)vmstat:查看内存状态

    22)id: 查看当前用户的id

    who am i:查看当前用户

    dmesg:从错误记录中收集诊断信息

    23) chown

    使用:chown  [-R]  owner:[group]   文件...

    chown   mary  file   将文件 file  的文件主改为 mary

    chown   150   file           将文件 file 的UID改为150

    chown   dualbase:informix  tdfs  将tdfs文件修改为dualbase用户,informix用户组

    24)ldd命令

    1)作用:用来查看程序运行所需的共享库,常用来解决程序因缺少某个库文件而不能运行的一些问题。它是glibc的一部分,由Roland McGrath和Ulrich Drepper维护:

    ldd --version

    2)ldd本身不是一个程序,而仅是一个shell脚本:

    $ which ldd
    /usr/bin/ldd
    $ file /usr/bin/ldd
    /usr/bin/ldd: Bourne-Again shell script text executable

    3)ldd命令其实是依靠设置一些环境变量而实现的(也就是说ldd的作用只是设置一些环境变量的值)
    如:LD_TRACE_LOADED_OBJECTS
    只要设置其值非空即可。
    $ export LD_TRACE_LOADED_OBJECTS=1
    $ ls /usr

    linux-gate.so.1 =>  (0xb7fac000)
    librt.so.1 => /lib/tls/i686/cmov/librt.so.1 (0xb7f93000)
    libselinux.so.1 => /lib/libselinux.so.1 (0xb7f79000)
    libacl.so.1 => /lib/libacl.so.1 (0xb7f70000)
    libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7e0d000)
    libpthread.so.0 => /lib/tls/i686/cmov/libpthread.so.0 (0xb7df4000)
    /lib/ld-linux.so.2 (0xb7fad000)
    libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb7df0000)
    libattr.so.1 => /lib/libattr.so.1 (0xb7dea000)

    撤销该环境变量,ls即又可以恢复正常使用:
    $ unset LD_TRACE_LOADED_OBJECTS
    $ ls  /usr/

    bin  games  include  lib  lib32  lib64  local  sbin  share  src  X11R6

    更多的环境变量:
    1、LD_TRACE_LOADED_OBJECTS
    2、LD_WARN
    3、LD_BIND_NOW
    4、LD_LIBRARY_VERSION
    5、LD_VERBOSE
    6、LD_DEBUG

    ldd默认开启的环境变量是:LD_TRACE_LOADED_OBJECTS=1
    其他的变量(和值)分别对应一些选项:
    -d, --data-relocs -> LD_WARN=yes
    -r, --function-relocs ->LD_WARN和LD_BIND_NOW=yes
    -u, --unused -> LD_DEBUG="unused"
    -v, --verbose -> LD_VERBOSE=yes
    LD_TRACE_LOADED_OBJECTS为必要环境变量,其他视具体情况。

    更为详细的命令选项(或者参看man、info):
    $ ldd --help

    25)dos下查看命令的返回值

    echo %errorlevel%

      linux下是:echo $?

    26)查看一个文件的编码格式

    file 文件名

    例如:

    [root@Master mk3]# file J3BASP01.ans
    J3BASP01.ans: ASCII text

    27)安装语言包命令localedef

    比如要安装zh_CN.GBK,可以执行下面的命令:
             sudo localedef  -f GBK -i zh_CN zh_CN.GBK

    要安装ja_JP.PCK,可以执行下面的命令:

            sudo localedef  -f PCK -i ja_JP ja_JP.PCK

    28)tee命令

    可以将通过管道的数据流截获并放进某个文件,也就是将中间结果保存到一个文件中去

    $(date; who) | tee save |wc

    29)sort 命令

    # ls | sort -f   按字母表的顺序将文件名排序

    30)sed命令

     sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。

    调用sed命令的两种形式:

    sed [options] 'command' file(s)

    sed [options] -f scriptfile file(s) 

    举例如下:

    sed -n '/test/,/check/p' example-----所有在模板test和check所确定的范围内的行都被打印

    sed -n '5,/^test/p' example-----打印从第五行开始到第一个包含以test开始的行之间的所有行。

    sed '/test/,/check/s/$/sed test/' example-----对于模板test和west之间的行,每行的末尾用字符串sed test替换。

    sed -e '1,5d' -e 's/test/check/' example-----(-e)选项允许在同一行里执行多条命令。如例子所示,第一条命令删除15行,第二条命令用check替换test。命令的执 行顺序对结果有影响。如果两个命令都是替换命令,那么第一个替换命令将影响第二个替换命令的结果。

       sed -e "s/#LOCAL#/UCS2BE /" c_base/${P}.c |
              iconv -f eucJP -t UTF-8 | sed -f UTF8.scr >${P}.c

    这个命令是将文件 c_base/${P}.c中的每一行#LOCAL#用UCS2BE替换,然后将其进行编码转换(由eucJP格式转化为UTF-8)

    然后使用sed脚本UTF8.scr,按照里面的命令要求将进行编码转换后的文件再进行过滤

  • 相关阅读:
    黄金连分数
    第39级台阶
    四、绘图可视化之Seaborn
    三、绘图和可视化之matplotlib
    二、pandas入门
    python_111_动态导入模块
    爬虫_python3_抓取猫眼电影top100
    爬虫_python3_urllib
    python_112_网络编程 Socket编程
    python_111_异常处理
  • 原文地址:https://www.cnblogs.com/honglihua8688/p/3683126.html
Copyright © 2020-2023  润新知