1. linux基础常用命令

     一. bash基本特性

1. 自动补全<tab>

文件路径补全:

      ls /etc/sysconfig/network-scripts/ifcf-eth0

启动命令补全

      systemctl restart crond.service

      date -s 12:30

2. 快捷键

    ctrl + c :终止前台运行的程序

    ctrl + d :退出,等价于exit

    ctrl + l :清屏

    ctrl + a :光标移至命令行的而最前端

    ctrl + e :光标移至命令行的 最末端

    ctrl + u :删除光标前所有的字符

    ctrl + k :删除光标后面的所有字符

    ctrl + r :搜索历史命令,利用关键词 

    Alt + . :引用上一行命令的最后一个参数,等价于!$

    ESC + . :引用上一行命令的最后一个参数,等价于!$

3. 历史命令

#history

。定制history的功能,可通过环境变量实现

         HISTSIZE:shell进程可保留的命令历史的条数

                        [root@myEcs /]# echo $HISTSIZE

                         1000

         HISTFILE:持久保持命令历史的文件                     

                         [root@myEcs /]# echo $HISTFILE
                         /root/.bash_history

        HISTFILESIZE:命令历史问价的大小

                         [root@myEcs /]# echo $HISTFILESIZE

                        1000

         history -c:清空命令历史

         history -d 304:删除304条历史

                     -r:可以从文件中读取命令历史到历史列表中(内存中的历史)

                     -w:把历史列表中的命令追加到历史文件中       

         history -d 234 5:从234条往下删除五条     

         history 10 :显示最近十条命令             

。控制命令历史记录方式:

       环境变量:HISTCONTROL

                ignoredups:忽略上下重复的历史命令

                ignorespace:忽略以空白字符开头的历史命令

                ignoreboth:以上两者同时生效

       修改变量的值:以下修改只对当前shell有效

                NAME="VALUE"             

查看历史命令方法:                                

    。光标上下键查看历史命令

    。ctrl + r :搜索历史命令(输入某一条命令的关键字:必须是连续的)

    。!220 :执行命令历史中的第220条命令

    。!字符串:搜索历史中最近一个以指定字符串开头的命令,例如!ser

    。!$ :引用上一个命令中的最后一个参数

示例1:

    [root@myEcs ~]# ls /root/miniconda3/

    [root@myEcs ~]# cd !$

    cd /root/miniconda3/

示例2:

    [root@myEcs miniconda3]# cd /tmp/

    [root@myEcs tmp]# touch !$/fil1

    touch /tmp//fil1

    [root@myEcs tmp]# ll

    total 4

    -rw-r--r-- 1 root root 54 Apr 5 11:01 a.txt

    -rw-r--r-- 1 root root 0 Apr 7 20:50 fil1

4. 命令别名

#alias

    ll='ls -l -- color=tty' :查看系统当前的别名

    #alias network=' cat /etc/sysconfig/network-scripts/ifcfg-eth0 ' :建立别名

    #unalias network :取消别名

    #\network :跳过别名

    [root@myEcs tmp]# type -a ls :查看命令类型

    ls is aliased to `ls --color=auto'

    ls is /usr/bin/ls

永久别名:

    [root@myEcs tmp]# vim /etc/bashrc

二. Linux获取命令帮助

    1. 命令 --help

    [root@myEcs tmp]# ls --help

      -a :查看目录下的所有文件,包括隐藏文件

      -l :长列表显示

      -h :以人性化方式显示出来

      -d :只列出目录名,不列出其他内容

      -t :按照修改时间排序

      -S :按照文件的大小排序

      -r :逆序排序

      -i :显示文件的inode号(索引号)

# date --help

      #date

     #date +%H

     #date +%F

     #date 0214080019 # 月日时分年

     #date -s 12:00

时间方面:

  % : 印出 %

  %n : 下一行

  %t : 跳格

  %H : 小时(00..23)

  %I : 小时(01..12)

  %k : 小时(0..23)

  %l : 小时(1..12)

  %M : 分钟(00..59)

  %p : 显示本地 AM 或 PM

  %r : 直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M)

  %s : 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数

  %S : 秒(00..61)

  %T : 直接显示时间 (24 小时制)

  %X : 相当于 %H:%M:%S

  %Z : 显示时区

日期方面 :

  %a : 星期几 (Sun..Sat)

  %A : 星期几 (Sunday..Saturday)

  %b : 月份 (Jan..Dec)

  %B : 月份 (January..December)  

  %c : 直接显示日期与时间

  %d : 日 (01..31)

  %D : 直接显示日期 (mm/dd/yy

  %h : 同 %b

  %j : 一年中的第几天 (001..366)

  %m : 月份 (01..12)

  %U : 一年中的第几周 (00..53) (以 Sunday 为一周的第一天的情形)

  %w : 一周中的第几天 (0..6)  

  %W : 一年中的第几周 (00..53) (以 Monday 为一周的第一天的情形)

  %x : 直接显示日期 (mm/dd/yy)

  %y : 年份的最后两位数字 (00.99)

  %Y : 完整年份 (0000..9999)

2.man 手册名(针对命令帮助,针对配置文件帮助,针对函数帮助)

  部分 man手册类型以及内容:

  1 用户命令

  2 内核系统调用(从用户空间到内核的进入点)

  3 库函数

  4 特殊文件和设备

  5 文件格式和规范

  6 游戏

  7 规范,标准和其他页面

  8 系统管理命令

  9 Linux,内核,api(内核调用)

三. linux常用命令:

  1. pwd:显示当前的工作目录

  2. cd :切换目录

  注意:在bash中,~代表家目录

  cd ~ :切换回自己的家目录

  cd ~USERNAME :切换至指定用户的家目录

  cd - :在上一次所在目录与当前目录之间来回切换

  cd.. :切换到上一级目录

    环境变量中:

  $PWD :当前工作目录

  $OLDPWD :上一次的工作目录

 3. ls :列出指定目录下的内容

    ls [OPTION]....[FILE]....

   -a :显示所有文件,包括隐藏文件

   -A :显示出了.和..之外的所有文件

   -l :长格式列表,显示文件的详细信息

    -rw-r--r-- 1 root root 54 Apr 5 11:01 a.txt

       -:文件类型:-,d,b,c,l,s,p

       rw-:文件属主权限

       r--:文件属组的权限

       r--:其他用户的权限(非属主,数组)的权限

      1:数字表示文件被硬链接的次数

      root:文件的属主

      root:文件的属组

      54:数字表示文件的大小

        Apr 5 11:01 :最近一次被修改的时间

     a.txt :文件名

 -h:对文件大小做单位换算,换算后的结果可能会非精确值

   -d:看目录自身的属性

   -r:逆序排序

   -R:递归显示。

   -t:按照修改时间进行排序

   -S :按照文件的大小排序

4. cat :显示文本文件内容。

   cat [OPTION]...[FILE]...

    -n:显示行号

    -E:显示行结束符$

5. tac :文件内容是逆序的,与cat相反

6. file:查看文件的内容类型。

       [root@myEcs tmp]# file a.txt 

       a.txt: Bourne-Again shell script, ASCII text executable

7. echo:回显

  echo [SHORT-OPTION]...[STRING]...

  [root@myEcs tmp]# echo "hello world"

  hello world

   -n:不自动换行

       [root@myEcs tmp]# echo -n "hello world"   

  hello world[root@myEcs tmp]# 

    -e:让转义符生效

  [root@myEcs tmp]# echo "hello \nworld"

  hello \nworld

  [root@myEcs tmp]# echo -e "hello \nworld"

  hello 

  world

       [root@myEcs tmp]# echo -e "\\hello \nworld"

  \hello 

  world

       \n :换行符

       \r :回车符

  \t :横向制表符

  \v :垂直制表符

  \\ :表示转义\

STRING:可以使用引用,单引号双引号均可用。

  单引号:强引用,变量不执行替换

 [root@myEcs tmp]# echo '$PWD'

    $PWD

    双引用:弱引用,变量引用会被替换

    [root@myEcs tmp]# echo "$PWD"

    /tmp

    注意:变量引用的正规符号

    $(name)

8. 关机或重启命令:shutdown

    语法:shutdown [OPTIONS...] [TIME] [WALL...]

shutdown -h now :马上关机

shutdown -r :重启

shutdown +m :表示几分钟之后关机

shutdown -c :取消关机操作

shutdown + 10 “hello erevone”

9. 日期相关命令: 

linux:系统启动时从硬件读取日期时间信息:读取完成后,再不与硬件相关联。 

date命令:查看系统时钟

语法:

显示系统日期时间:date [OPTION]... [+FORMAT]

FORMAT:格式符

[root@myEcs tmp]# date +%Y-%m-%d-%H-%M-%S

2020-04-07-23-12-09

-s:时间戳,从1970年1月1号(unix元年)

设定系统日期时间:date [MMDDhhmm[[CC]YY][.ss]]

[root@myEcs tmp]# date 101008082013.08 2013年 8月 8日 8点 8分 8秒

clock:查看硬件时钟

hwclock:查看硬件时钟

设定硬件时钟

-s :以硬件时间为准,把系统调整为与硬件时钟相同;

-w:以系统时间为准,把硬件调整为与系统时钟相同;

10. cal:日历 

cal 2015:查看2015年的日历

13.  which:查看命令所在路径

             命令类型:

                   外部命令:

                   内部命令:bash shell

                   查看命令时外部还是内部命令:type COMMAND

                         注意:命令可以有别名,别名可以与原名相同,此时原名被隐藏。如果要使用原命令则使用\COMMAND

                   

12. whereis:该指令会在特定目录中查找符合条件的文件。这些文件应属于原始代码、二进制文件,或是帮助文件。该指令只能用于查找二进制文件

$ whereis -b bash #显示bash 命令的二进制程序 

bash: /bin/bash /etc/bash.bashrc /usr/share/bash # bash命令的二进制程序的地址 

$ whereis -m bash #显示bash 命令的帮助文件 

bash: /usr/share/man/man1/bash.1.gz #bash命令的帮助文件地址 

13. who

# who //显示当前登录系统的用户

root tty7 2014-05-13 12:12 (:0)

root pts/0 2014-05-14 17:09 (:0.0)

root pts/1 2014-05-14 18:51 (192.168.1.17)

root pts/2 2014-05-14 19:48 (192.168.1.17)

14. w w命令用于显示目前登入系统的用户信息。

bash的基础特性:

       命令补全:

              shell程序在收到用户执行的命令请求,分析完成之后,最左侧的字符串会被当作命令

              命令的处理机制:

                     查找内部命令:

                           根据PATH环境变量中设定的目录,自左向右逐个搜索目录下的文件名

                           [root@myEcs ~]# echo $PATH

                             /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

 

              路径补全机制:

                     根据给定的起始路径进行补全

 

目录管理类命令:

mkdir:创建目录

选项:

     -p :自动按需创建父目录;递归创建。

     -v :显示详细过程

     -m :后面跟权限,直接给定权限

[root@myEcs ~]# mkdir -pv /tmp/a/b/c
mkdir: created directory ‘/tmp/a’
mkdir: created directory ‘/tmp/a/b’
mkdir: created directory ‘/tmp/a/b/c’

  

rmdir:仅仅用于删除空目录

选项:

     -p :递归删除空目录

     -v :显示详细过程

[root@myEcs ~]# rmdir -pv /tmp/a/b/c/
rmdir: removing directory, ‘/tmp/a/b/c/’
rmdir: removing directory, ‘/tmp/a/b’
rmdir: removing directory, ‘/tmp/a’
rmdir: removing directory, ‘/tmp’
rmdir: failed to remove directory ‘/tmp’: Device or resource busyba'  

 bash的基础特性之:命令行展开

 ~ :自定展开为用户的家目录,或指定用户的家目录;

{} :可承载一个以逗号为分隔的路径列表,并能够将其展开为多个路径

       例如:/tmp/{a,b} 相当于/tmp/a   /tmp/b

例子1:创建/tmp/x/y1   /tmp/x/y2   /tmp/x/y1/a   /tmp/x/y1/b

[root@myEcs ~]# mkdir -p /tmp/x/{y1/{a,b},y2}
[root@myEcs ~]# cd /tmp/
[root@myEcs tmp]# ll
total 8
drwxr-xr-x 4 root root 4096 Apr  9 20:56 x
[root@myEcs tmp]# cd x
[root@myEcs x]# ll
total 8
drwxr-xr-x 4 root root 4096 Apr  9 20:56 y1
drwxr-xr-x 2 root root 4096 Apr  9 20:56 y2
[root@myEcs x]# cd y1
[root@myEcs y1]# ll
total 8
drwxr-xr-x 2 root root 4096 Apr  9 20:56 a
drwxr-xr-x 2 root root 4096 Apr  9 20:56 b  

例子2:创建  a_c      a_d     b_c     b_d

[root@myEcs tmp]# mkdir -p {a,b}_{b,c}
[root@myEcs tmp]# ll
total 24
drwxr-xr-x 2 root root 4096 Apr  9 21:02 a_b
drwxr-xr-x 2 root root 4096 Apr  9 21:02 a_c
drwxr-xr-x 2 root root 4096 Apr  9 21:02 b_b
drwxr-xr-x 2 root root 4096 Apr  9 21:02 b_c

bash的基础特性之:命令执行的状态结果

命令执行的状态结果:

             bash通过状态返回值来输出此结果

                     成功:0

                     失败:1-255

 命令执行完成后,其状态返回值保存于bash的特殊变量$?中。  

[root@myEcs tmp]# ls /tmp/
a_b  a_c  a.txt  b_b  b_c  fil1  x
[root@myEcs tmp]# echo $?
0
[root@myEcs tmp]# lsss /tmp/
-bash: lsss: command not found
[root@myEcs tmp]# echo $?
127
[root@myEcs tmp]# 

  

命令正常执行时,有的还会返回有命令返回值:

                   根据命令及其功能不同,结果各不相同:

            引用命令的执行结果

                   $(COMMAND)

                   或者:

                   `COMMAND`

 

[root@myEcs tmp]# mkdir $(date +%H%M%S)
[root@myEcs tmp]# ll
total 28
drwxr-xr-x 2 root root 4096 Apr  9 21:15 211553

或者:

[root@myEcs tmp]# mkdir `date +%H%M%S`
[root@myEcs tmp]# ll
total 32
drwxr-xr-x 2 root root 4096 Apr 9 21:15 211553
drwxr-xr-x 2 root root 4096 Apr 9 21:17 211715

 

bash的基础特性之:引用

  强引用:'  '

  弱引用:" "

  命令引用:` `

 

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

     分屏查看:more,less

                    more FILE

                             特点:翻屏至文件尾部后自动退出

                    less FILE

     head 命令:查看文件前n行

             head  -n 20 :查看文件的前20行

    tail 命令:查看文件的后n行

            tail -n 20:查看文件的后20行

            -f :等待追加进来的新行不直接退出。查看文件的实时更新。

           

     stat 命令:显示文件或文件系统的状态

             stat FILE...

[root@myEcs tmp]# stat a.txt 
  File: ‘a.txt’
  Size: 54        	Blocks: 8          IO Block: 4096   regular file      
Device: fd01h/64769d	Inode: 1191896     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2020-04-07 22:42:15.846533542 +0800
Modify: 2020-04-05 11:01:57.387738519 +0800     
Change: 2020-04-05 11:01:57.387738519 +0800    
 Birth: -  

 创建文件:

               touch  FILE...

文件管理命令:cp,mv,rm

          cp命令

              -i :交互式复制,即覆盖之前提醒用户确认

              -f :强制覆盖目标文件

              -r:递归复制

              -d:复制符号链接文件本身,而非指向的源文件

         mv命令:

              -i 交互式

         rm删除文件:

              -i :交互式

              -r :递归删除

              -f :强制删除

 

posted @ 2020-04-08 20:35  附庸风雅  阅读(121)  评论(0)    收藏  举报