Linux学习(四)之常用命令总结

输入命令意味着什么。输入命令后敲回车命令能运行起来,就相当于告诉交互式接口程序(shell程序)找到输入命令所对应的可执行程序或代码,并由其分析后提交给内核分配资源将其运行起来。

例如:输入 # ls后回车,就是让/bin/ls这个程序执行起来,该操作与windows上双击打开一个文件夹操作是一样的

使用命令:# which ls    # whereis ls  可以看到ls运行程序在linux中的位置路径.即这两个命令可以看到我们即将使用的命令的位置路径.

[root@root network-scripts]# which ls
alias ls='ls --color=auto'
        /bin/ls
[root@root network-scripts]# whereis ls
ls: /bin/ls /usr/share/man/man1/ls.1.gz

在shell中可执行的命令有两类:
内建命令:由shell自带的,而且通过某命令形式提供;
外部命令:当前系统的某文件系统路径下有对应的可执行程序文件;
which  whereis
区别内部或外部命令:

type + 命令


1,显示当前使用的shell

echo $SHELL

[root@root ~]# echo $SHELL
/bin/bash

2,显示当前系统使用的所有shell

cat /etc/shells

[root@root ~]# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/dash

3,命令提示符:prompt

[root@root ~]# 

在Linux中用户只有两种,管理员和普通用户

管理员的命令提示符:#

普通用户的命令提示符:$

[root@root ~]# useradd tom  
[root@root ~]# su tom
[tom@root root]$ 

4,显示当前日期时间

date +%F 显示当前日期

date +%T显示当前时间

[root@root ~]# date +%F
2018-06-25
[root@root ~]# date +%T
22:44:35
[root@root ~]# date +%F--%T
2018-06-25--22:44:52

5,显示当前日历

cal   (后面可加上年份)

[root@root ~]# cal
      June 2018     
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

[root@root ~]# cal 1991

                               1991                               

       January               February                 March       
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa
       1  2  3  4  5                   1  2                   1  2
 6  7  8  9 10 11 12    3  4  5  6  7  8  9    3  4  5  6  7  8  9
13 14 15 16 17 18 19   10 11 12 13 14 15 16   10 11 12 13 14 15 16
20 21 22 23 24 25 26   17 18 19 20 21 22 23   17 18 19 20 21 22 23
27 28 29 30 31         24 25 26 27 28         24 25 26 27 28 29 30
                                              31
        April                   May                   June        
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa
    1  2  3  4  5  6             1  2  3  4                      1
 7  8  9 10 11 12 13    5  6  7  8  9 10 11    2  3  4  5  6  7  8
14 15 16 17 18 19 20   12 13 14 15 16 17 18    9 10 11 12 13 14 15
21 22 23 24 25 26 27   19 20 21 22 23 24 25   16 17 18 19 20 21 22
28 29 30               26 27 28 29 30 31      23 24 25 26 27 28 29
                                              30
        July                  August                September     
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa
    1  2  3  4  5  6                1  2  3    1  2  3  4  5  6  7
 7  8  9 10 11 12 13    4  5  6  7  8  9 10    8  9 10 11 12 13 14
14 15 16 17 18 19 20   11 12 13 14 15 16 17   15 16 17 18 19 20 21
21 22 23 24 25 26 27   18 19 20 21 22 23 24   22 23 24 25 26 27 28
28 29 30 31            25 26 27 28 29 30 31   29 30

       October               November               December      
Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa   Su Mo Tu We Th Fr Sa
       1  2  3  4  5                   1  2    1  2  3  4  5  6  7
 6  7  8  9 10 11 12    3  4  5  6  7  8  9    8  9 10 11 12 13 14
13 14 15 16 17 18 19   10 11 12 13 14 15 16   15 16 17 18 19 20 21
20 21 22 23 24 25 26   17 18 19 20 21 22 23   22 23 24 25 26 27 28
27 28 29 30 31         24 25 26 27 28 29 30   29 30 31

6,添加一个user1用户,此时在home下就多了一个user1的家目录

[root@root /]# useradd user1       

[root@root /]# ll /home

[root@root ~]# ll /home/
total 24
drwx------. 2 root  root  16384 Jun 18 19:07 lost+found
drwx------. 2 tom   tom    4096 Jun 25 22:54 tom
drwx------. 2 user1 user1  4096 Jun 20 14:42 user1
作为管理员用户,可以使用cd ~+指定用户名  表示切换到指定用户的主目录

单个的cd ~或者cd表示切换到自己的主目录

[root@root ~]# cd ~tom
[root@root tom]# cd ~
[root@root ~]# 

7,使用 cd - 可以在当前目录和上一个目录之前来回切换

[root@root ~]# cd /etc/sysconfig/network-scripts/
[root@root network-scripts]# cd -
/root
[root@root ~]# cd -
/etc/sysconfig/network-scripts
[root@root network-scripts]# 

之所以能实现这个切换是因为有两个环境变量记录了当前路径与上一次路径

PWD:保存了当前目录路径

OLDPWD:保存了上一次所在目录的路径

8,文件内容类型查看命令:file

file + 文件名

Linux下的文件类型:

- f):普通文件

d: 目录文件

b:块设备

c:字符设备

l:符号链接文件

p:管道文件

s:套接字文件 socket


-rw-r--r-- 1 root root   8997403 Apr  2 12:48 apache-tomcat-7.0.82.tar.gz

最左侧一位:文件类型

-,d,l,b,c,p,s

b:block device	 可随机访问设备

c:character device  线性访问设备,有先后顺序之分

后面的9位,访问权限

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

左边的root:文件的owner

右边的root:文件的group

8997403:文件的size

apache-tomcat-7.0.82.tar.gz:文件名

9,系统管理类命令:

        关机:halt,poweroff,shutdown,init 0
重启:reboot,shutdown,init 6

用户登录相关:who, whoami ,w

10,命令历史

history 查看命令历史记录
history + 数字   查看最近 多少条历史命令
!+数字:重复执行历史中的第数字编号的命令
!!:重复执行上一条命令
!+String:执行之前命令中以string开头的命令

控制命令历史的记录方式:
环境变量:HISTCONTROL
ignoredups:忽略重复的命令。连续且相同为“重复”
ignorespace:忽略所执行命令:有以空白开头的命令

ignoreboth: 以上两种情况都包含

修改环境变量值:export HISTCONTROL="ignorespace"   只对当前shell进程和当前shell的子shell有效

export表示导出环境变量

11,命令补全

bash执行命令:
内部命令:
外部命令:bash根据PATH环境变量定义的路径,自左而右在每个路径搜寻以给定命令命名的文件,第一次找到即为要执行的命令。
直接补全:按一次Tab键,用户给定的字符串只有一条唯一对应的命令
间接补全:用户给定的字符串为开头的对应命令不唯一,则需要再按一次Tab键会给出列表提示。

路径补全

把用户给出的字符串当做路径的开头,并在其指定上级目录下搜索以指定的字符串开头的文件名,如果唯一,则直接补全,否则,再次Tab,给出命令列表。

12,命令行展开

~:展开为用户的主目录
~USERNAME:展开为指定用户的主目录
{}:可承载一个以逗号分隔的列表,并将其展开为多个路径
/tem/{a,b} = /tmp/a, /tmp/b

/tmp/{tom,jerry}/hi = /tmp/tom/hi, /tmp/jerry/hi

如何创建/tmp/x/y1,/tmp/x/y2,/tmp/x/y1/a,/tmp/x/y1/b,/tmp/x/y2/a,/tmp/x/y2/b
 方式一:mkdir /tmp/x/y1,/tmp/x/y2,/tmp/x/y1/a,/tmp/x/y1/b,/tmp/x/y2/a,/tmp/x/y2/b
 方式二:mkdir /tmp/x/{y1,y2}/{a,b}

如何创建x_m,y_m,x_n,y_n 

[root@root tmp]# mkdir {x,y}_{m,n}
[root@root tmp]# ll
total 20
drwxr-xr-x. 4 root root 4096 Jun 25 21:29 x
drwxr-xr-x. 2 root root 4096 Jun 25 23:31 x_m
drwxr-xr-x. 2 root root 4096 Jun 25 23:31 x_n
drwxr-xr-x. 2 root root 4096 Jun 25 23:31 y_m
drwxr-xr-x. 2 root root 4096 Jun 25 23:31 y_n
-rw-------. 1 root root    0 Jun 18 19:07 yum.log

13,命令的执行结果状态

bash使用特殊变量$?保存最近一条命令的执行状态结果
0:成功
1-255:失败
程序执行有两类结果:
程序的返回值:

程序的执行状态结果

14,目录管理类命令

mkdir:创建目录
-p,存在时不报错,且可自动创建所需的各目录,递归创建目录。
-v,显示详细信息。

-m,创建目录时直接指定权限。

tree:显示目录的层级结构
-d:只显示目录
-L + 数字:只显示数字层级个(Level)
-P :只显示由指定pattern匹配到的路径(pattern)

rmdir:删除空目录
-p:递归删除目录

-v:显示过程

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

Cat

 -E:显示行结束符 $

-n:对显示的每一行进行编号

more命令查看:more network-functions-ipv6
空格键翻下一页,在看完之前b键翻上一页,q键退出。
 more -d network-functions-ipv6最下面有翻页提示信息

less命令查看:
tail:获取一个文件的最后多少行
-c #:指定文件的后多少字节
-n #:指定文件的后多少行
-f : 跟踪显示文件新追加的内容,使用ctrl+c退出
head:获取一个文件的开头多少行
-c #:指定获取前#字节
-n #:指定获取前#行

查看文件状态 stat
三个时间戳:
access time:访问时间,简写为atime,读取文件内容
modify time:修改时间,简写为mtime,改变文件内容(数据)
change time:改变时间,简写为ctime,元数据发生改变

touch命令
-a:只修改atime
-m:只修改mtime
-t:设置时间戳(有固定格式)
-c:如果文件不存在,则不予创建


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值