首页 > 系统 > Linux >

Linux常用基础命令(一)

2017-10-25

Linux常用基础命令(一)。本系列将学习过程中遇到的命令整理一下,留作备查和复习使用。bc 支持任意精度数值的交互式执行的计算机语言,bc命令是一种类似于C语言,能够支持任意精度数值计算的计算机语言。可以在命令中指定Standard math lib 。

Linux 基础命令(一)

本系列将学习过程中遇到的命令整理一下,留作备查和复习使用。

bc 支持任意精度数值的交互式执行的计算机语言

bc命令是一种类似于C语言,能够支持任意精度数值计算的计算机语言。可以在命令中指定Standard math lib 。

OPTIONS

   -h, --help
          Print the usage and exit.
          打印使用帮助
   -i, --interactive
          Force interactive mode.
          强制进入交互模式
   -l, --mathlib
          Define the standard math library.
          定义使用标准的数学库
   -w, --warn
          Give warnings for extensions to POSIX bc.
          对POSIX bc的扩展给出警告信息
   -s, --standard
          Process exactly the POSIX bc language.
          正确的处理POSIX bc 语言
   -q, --quiet
          Do not print the normal GNU bc welcome.
          不打印welcome语句
   -v, --version
          Print the version number and copyright and quit.
          打印版本号  

EXAMPLE

执行浮点数运算

  echo "1239.22347*232" | bc
  287499.84504  

设定小数精度

  echo "scale=2;3/8" | bc 
  0.37  

进制转换

  //十进制转换二进制
  echo "obase=2;1024" | bc  
  10000000000  

  //二进制转换成十进制
  //obase:out base  转换后的进制数
  //ibase:in base 转换前的进制数
  echo "obase=10;ibase=2;11111111" | bc
  255  

计算平方和平方根

  echo "10^9" | bc 

  echo "sqrt(100)" | bc
  //开平方并指定精度
  echo "scale=5;sqrt(2312)" | bc  

cp 文件复制命令

将一个或者多个源文件或者目录复制到指定的文件或目录。

单源复制 cp [OPTION]… [-T] SOURCE DEST
多源复制 cp [OPTION]… SOURCE… DIRECTORY
????cp [OPTION]… -t DIRECTORY SOURCE…

单源复制:
????如果DEST不存在,则事先创建此文件,并复制源文件的数据流至DEST中。
????如果DEST存在:
??????如果DEST是非目录文件:则覆盖目标文件;
??????如果DEST是目录文件,则现在DEST目录下创建一个与源文件同名的文件,并复制其数据流至目标文件

多源复制:
????如果DEST不存在:错误
????如果DEST存在:
??????如果DEST是非目录文件:错误
??????如果DEST是目录文件,分别复制每个文件至目标目录中,并保持原名

OPTIONS

 -i:交互式复制,即覆盖之前,提醒用户确认
    -f:强制覆盖目标文件
    -r,-R:递归复制目录,
    -d:复制符号链接文件本身,而非其指向的源文件
    -a: same as -dR --preserve=all,archive 用于实现归档
    --preserve
        mode:权限
        ownership:属主和属组
        timestamps:时间戳
        context:安全标签
        xattr:扩展属性
        links:符号链接
        all:上述所有属性  

EXAMPLE

单源复制
 cp -r  /tmp/mysysroot /home/quliang/temp/mysysroot

    //展示该目录下的文件树形结构
    tree temp/mysysroot

    temp/mysysroot
    ├── bin
    ├── etc
    │   └── sysconfig
    │       └── network-scripts
    ├── sbin
    ├── usr
    │   ├── bin
    │   ├── lib
    │   ├── lib64
    │   ├── local
    │   │   ├── bin
    │   │   ├── etc
    │   │   ├── lib
    │   │   └── sbin
    │   └── sbin
    └── var
        ├── cache
        ├── log
        └── run  
多源复制
 //同样适用bash 路径的扩展性
    //如果test 不存在   则出错
    //如果test 不是目录文件 则出错
    cp -r mysysroot/{bin,sbin,etc}  mysysroot2/test2
    cp: target `mysysroot2/test2' is not a directory

    cp -r mysysroot/{bin,sbin,etc}  mysysroot2/test

    //mysysroot2 是将mysysroot 复制了一份
    tree mysysroot2

    mysysroot2
    ├── bin
    ├── etc
    │   └── sysconfig
    │       └── network-scripts
    ├── sbin
    ├── test
    │   ├── bin
    │   ├── etc
    │   │   └── sysconfig
    │   │       └── network-scripts
    │   └── sbin
    ├── test2
    ├── usr
    │   ├── bin
    │   ├── lib
    │   ├── lib64
    │   ├── local
    │   │   ├── bin
    │   │   ├── etc
    │   │   ├── lib
    │   │   └── sbin
    │   └── sbin
    └── var
        ├── cache
        ├── log
        └── run  

cat 显示文件内容

链接文件,并打印到标准输出上。 不要查看二进制文件

OPTIONS

 -n: 给显示的文本行统一编号
    -E:显示行结束符$;  

EXAMPLE

先使用nano工具在测试目录下新建两个文本文件,并写入一些内容

 cat -nE text1 text2 

    1   HelloWorld$
    2   $
    3   Hello World !!!!!!!$   

dd 复制文件并对文件的内容进行转换

用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换
可以用来做文件数据备份

OPTIONS

 if=文件名:输入文件名,缺省为标准输入。即指定源文件。< if=input file >
    of=文件名:输出文件名,缺省为标准输出。即指定目的文件。< of=output file >
    ibs=bytes:一次读入bytes个字节,即指定一个块大小为bytes个字节。
    obs=bytes:一次输出bytes个字节,即指定一个块大小为bytes个字节。
    bs=bytes:同时设置读入/输出的块大小为bytes个字节。
    cbs=bytes:一次转换bytes个字节,即指定转换缓冲区大小。
    skip=blocks:从输入文件开头跳过blocks个块后再开始复制。
    seek=blocks:从输出文件开头跳过blocks个块后再开始复制。
    注意:通常只用当输出文件是磁盘或磁带时才有效,即备份到磁盘或磁带时才有效。
    count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数。
    conv=conversion:用指定的参数转换文件。
            ascii:转换ebcdic为ascii
            ebcdic:转换ascii为ebcdic
            ibm:转换ascii为alternate ebcdic
            block:把每一行转换为长度为cbs,不足部分用空格填充
            unblock:使每一行的长度都为cbs,不足部分用空格填充
            lcase:把大写字符转换为小写字符
            ucase:把小写字符转换为大写字符
            swab:交换输入的每对字节
            noerror:出错时不停止
            notrunc:不截短输出文件
            sync:将每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐。  

EXAMPLE

先使用nano工具在测试目录下新建两个文本文件,并写入一些内容

 //将大写字母转换成小写字母
    dd if=text1 of=text3 conv=lcase 

    cat text3 
    //将小写字母转换成大写字母
    dd if=text3 of=text4 conv=ucase  

getent 从名称lib中获取entries,可理解为键值对

使用方法 getent database [key..]
??getent命令是用来展示名称库所支持的database中的entries。 名称库 在/etc/nsswitch.conf中进行配置。如果在命令执行的过程中,提供了一个或者多个key,那么相应database中只有与key相对应的entries会被显示出来。如果不指定,所有的键值对都会被显示出来

OPTIONS

 //database中常见的有如下几种.
    aliases
    psswd
    group
    hosts
    networks
    services
    shadow  

EXAMPLE

 getent passwd bin ftp

    bin:x:1:1:bin:/bin:/sbin/nologin
    ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin  

hexdump 命令

查看”二进制”文件的十六进制编码,但实际上他能查看任何文件,而不仅仅限于二进制文件
用法 hexdump [选项] [文件]…

OPTIONS

 -n length 只格式化输入文件的前length个字节。
    -C 输出规范的十六进制和ASCII码。 
    -b 单字节八进制显示。 
    -c 单字节字符显示。 
    -d 双字节十进制显示。 
    -o 双字节八进制显示。 
    -x 双字节十六进制显示。 
    -s 从偏移量开始输出。 
    -e 指定格式字符串,格式字符串包含在一对单引号中,格式字符串形如:&#39;a/b "format1" "format2"&#39;。

EXAMPLE

 //单字节八进制
    hexdump -b text2

    0000000 110 145 154 154 157 040 127 157 162 154 144 040 041 041 041 041
    0000010 041 041 041 012                                                
    0000014


    //双字节16进制
    hexdump -x text2 
    0000000    6548    6c6c    206f    6f57    6c72    2064    2121    2121
    0000010    2121    0a21                                                
    0000014  

通过对比两个命令的结果就可以发现针对字符的查看,以及进制的转换是一致的.

id 命令

id命令可以显示真实有效的用户ID(UID)和组ID(GID).UID是对一个用户的单一标识.GID是可以对应多个UID
使用方法 id [OPTION]… [USERNAME]

OPTIONS

 -g或--group   显示用户所属群组的ID。 
    -G或--groups 显示用户所属附加群组的ID。 
    -n或--name   显示用户,所属群组或附加群组的名称。 
    -r或--real   显示实际ID。 
    -u或--user   显示用户ID。 
    -help   显示帮助。 
    -version   显示版本信息。

EXAMPLE

 //默认的
    id root 
    uid=0(root) gid=0(root) groups=0(root)

    id -g root

    0  

iconv 转换文件编码 convert

用来转换文件的编码方式
使用方法 iconv [options] [-f from-encoding] [-t to-encoding] [inputfile]…

OPTIONS

 -f encoding :把字符从encoding编码开始转换。 
    -t encoding :把字符转换到encoding编码。 
    -l :列出已知的编码字符集合 
    -o file :指定输出文件 如果不指定,默认输出到标准输出
    -c :忽略输出的非法字符 
    -s :禁止警告信息,但不是错误信息 
    --verbose :显示进度信息 
    -f和-t所能指定的合法字符在-l选项的命令里面都列出来了。 

EXAMPLE

 //列举出当前支持的字符
    iconv  -l 

    //将text2的文本以UTF-16的形式输出到标准输出
    iconv -t UTF-16  text2
相关文章
最新文章
热点推荐