码迷,mamicode.com
首页 > 系统相关 > 详细

Linux基础命令(详细版)

时间:2019-08-06 22:45:25      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:解释   上层   mtime   collate   mv命令   相同   head   man手册   messages   

本博文包含以下命令的使用方法:

  • locale(语言相关)
  • date(日期相关)
  • cal(日历)
  • bc(计算机)
  • --help(help命令帮助)
  • man(man手册帮助)
  • cd(切换目录)
  • pwd(显示当前工作路径)
  • mkdir(创建文件夹)
  • rmdir(删除空文件夹)
  • ls(查看目录下内容)
  • cp(复制)
  • rm(删除)
  • mv(移动)
  • cat(查看文件内容)
  • head(查看文件开头几行)
  • tail(查看文件末尾几行)
  • touch(创建文件或目录)
  • find(查找)
  • grep(过滤)

locale命令(语言相关):

查询:

[root@localhost ~]# locale            #查询系统语言
LANG=zh_CN.UTF-8       #语言语系输出
LC_CTYPE="zh_CN.UTF-8"      #输出使用语系类型
LC_NUMERIC="zh_CN.UTF-8"      #数字方面语系数据
LC_TIME="zh_CN.UTF-8"      #时间方面语系数据
LC_COLLATE="zh_CN.UTF-8"      #校验方面
LC_MONETARY="zh_CN.UTF-8"      #货币方面
LC_MESSAGES="zh_CN.UTF-8"      #信息方面
LC_PAPER="zh_CN.UTF-8"      #文件方面
LC_NAME="zh_CN.UTF-8"      #命名方面
LC_ADDRESS="zh_CN.UTF-8"      #路径方面
LC_TELEPHONE="zh_CN.UTF-8"      #电话方面
LC_MEASUREMENT="zh_CN.UTF-8"      #测量方面
LC_IDENTIFICATION="zh_CN.UTF-8"      #×××明方面
LC_ALL=               #全部的数据同步更新的设置值

修改系统语言举例:

[root@localhost ~]# LANG=en_US.utf8     #修改为英文
[root@localhost ~]# export LC_ALL=en_US.utf8    #输出到所有语言类型
[root@localhost ~]# locale      #查看是否更改成功
LANG=en_US.utf8
LC_CTYPE="en_US.utf8"
LC_NUMERIC="en_US.utf8"
LC_TIME="en_US.utf8"
LC_COLLATE="en_US.utf8"
LC_MONETARY="en_US.utf8"
LC_MESSAGES="en_US.utf8"
LC_PAPER="en_US.utf8"
LC_NAME="en_US.utf8"
LC_ADDRESS="en_US.utf8"
LC_TELEPHONE="en_US.utf8"
LC_MEASUREMENT="en_US.utf8"
LC_IDENTIFICATION="en_US.utf8"
LC_ALL=en_US.utf8
[root@localhost ~]# date        #查询日期,看到如下,说明更改成功
Tue Aug  6 12:38:35 CST 2019
[root@localhost ~]# LANG=zh_CN.utf8    #再改回来吧
[root@localhost ~]# export LC_ALL=zh_CN.utf8
[root@localhost ~]# date     #再查看日期
2019年 08月 06日 星期二 12:39:43 CST

date命令(日期相关)

[root@localhost ~]# date            #查看时间
2019年 08月 06日 星期二 12:39:43 CST
[root@localhost ~]# date -s "2018-05-17 09:51:50"   #更改为指定时间
2018年 05月 17日 星期四 09:51:50 CST
[root@localhost ~]# date     #查看是否更改成功
2018年 05月 17日 星期四 09:51:53 CST
[root@localhost ~]# hwclock –w    #将当前系统时间写入BIOS中

cal命令(日历)

1、命令格式:
cal [选项] [月份][年份]
2、cal命令选项:

-1, --one 只显示当前月份(默认)
-3, --three 显示上个月、当月和下个月
-s, --sunday 周日作为一周第一天
-m, --monday 周一用为一周第一天
-j, --julian 输出儒略日
-y, --year 输出整年
-V, --version 显示版本信息并退出
-h, --help 显示此帮助并退出

3、命令功能:
用于查看日历等时间信息,如只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份和年份。

4、使用实例:

[root@localhost ~]# cal     #显示当前月份日历
      八月 2019     
日 一 二 三 四 五 六
             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
[root@localhost ~]# cal 9 2019     #显示指定月份日历
      九月 2019     
日 一 二 三 四 五 六
 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@localhost ~]# cal -y 2013       #显示2013年日历
                               2013                               

                             ............................
[root@localhost ~]# cal -j   #显示自1月1日的天数
         八月 2019         
 日  一  二  三  四  五  六
                213 214 215
216 217 218 219 220 221 222
223 224 225 226 227 228 229
230 231 232 233 234 235 236
237 238 239 240 241 242 243
[root@localhost ~]# cal -m               #星期一显示在第一列
      八月 2019     
一 二 三 四 五 六 日
          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

bc计算机

1、各种算法的符号:

+: 加法;
-:减法;
*:乘法;
/:除法;
^:指数;
%:余数;

2、使用方法:

[root@localhost ~]# bc              #进入计算机环境
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2 Inc.
This is free software with ABSOLUTELY NO WANTY.
For details type `warranty‘. 
1*5                          #直接进行运算即可,按回车键得到运算结果
5

Ctrl+C退出计算机环境

--help命令(命令帮助)

与man命令功能一样,为我们提供一个命令的使用方法。

1、使用方法:

[root@localhost ~]# date --help
Usage: date [OPTION]... [+FORMAT]               #date命令的基本语法
  or:  date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
Display the current time in the given FORMAT, or set the system date.
#下面是主要的选项说明
Mandatory arguments to long options are mandatory for short options too.
  -d, --date=STRING         display time described by STRING, not ‘now‘
  -f, --file=DATEFILE       like --date once for each line of DATEFILE
                       ...............................#省略部分内容
#下面是可以定义内容输出的格式
FORMAT controls the output.  Interpreted sequences are:      

  %%   a literal %
  %a   locale‘s abbreviated weekday name (e.g., Sun)
  %A   locale‘s full weekday name (e.g., Sunday)
                           ...............................#省略部分内容
#下面是几个常用的范例
Examples:
Convert seconds since the epoch (1970-01-01 UTC) to a date
  $ date --date=‘@2147483647‘
                           ...............................#省略部分内容

man命令(man手册帮助)

和--help作用一样。

1、使用方法:

[root@localhost ~]# man date        #执行后将进入man环境
DATE(1)                            User Commands                            DATE(1)
#请注意上面的数字,(1)是命令代号,稍后解释命令代号。
NAME       #这个指令的完整全名,如下所示
       date - print or set the system date and time

SYNOPSIS    #这个指令的基本语法如下:
       date [OPTION]... [+FORMAT]  #第一种只是显示的用法
       date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
#上面这种是可以设置系统时间的用法
DESCRIPTION      #详细说明选项和参数的用法
       Display the current time in the given FORMAT, or set the system date.

       Mandatory arguments to long options are mandatory for short options too.

       -d, --date=STRING  #-d是短选项名称,-date为完整选项名称
              display time described by STRING, not ‘now‘

       -f, --file=DATEFILE
                           ...............................#省略部分内容            
#下面是格式化输出的详细数据                                               
FORMAT controls the output.  Interpreted sequences are:
                           ...............................#省略部分内容            

2、在man手册的命令代号含义如下(其中1、5、8是需要牢记的,其他了解即可):
技术图片

3、在man手册中一些代号的的含义:
技术图片

4、man手册环境中的一些操作按键:

技术图片

cd命令(切换目录)

1、特殊符号代表的含义:

. :表示此层目录。
.. :表示上一层目录。

  • :表示前一个工作目录。
    ~ :表示“当前用户”的宿主目录。
    ~account:代表account这个用户的宿主目录。

2、用法举例:

[root@localhost ~]# cd ~lv     #切换至用户“lv”的宿主目录
[root@localhost lv]# pwd             #查看是否在指定位置下
/home/lv
[root@localhost lv]# cd ..              #切换至上一层工作目录
[root@localhost home]# pwd      #查看
/home
[root@localhost home]# cd ./lv      
#切换至当前目录下的“lv”目录,一般直接“cd lv”即可。
[root@localhost lv]# pwd     #查看
/home/lv

pwd(显示当前工作路径)

在上面的cd命令介绍中,已经使用了pwd命令,相信明白pwd命令的作用了,主要是这个命令还有一个选项,也就是“-P”。

[root@localhost lv]# cd /var/mail/      #切换到一个链接目录下
[root@localhost mail]# pwd                 #查询当前工作路径
/var/mail  
[root@localhost mail]# pwd -P     #加“-P”再查看下,发现路径不一样
/var/spool/mail

在上面的例子中,因为/var/mail是一个链接文件,链接到/var/spool/mail下的,加上“-P”选项后,会显示正确的完整路径,而不是以链接文件的属性显示。

mkdir(创建目录)

1、命令选项:

-p:递归创建多层目录时使用。
-m:设置文件的权限,否则使用默认权限(umask)。
-v:创建时输出详细信息

2、-m选项用法举例:

[root@localhost ~]# mkdir -m 777 /test1/       #创建目录,并指定权限为777
[root@localhost ~]# ls -ld /test1/           #查看目录属性
drwxrwxrwx 2 root root 6 Aug  6 14:08 /test1/
#可以看到目录创建后的权限就是创建时指定的权限。

3、-p、-v选项用法举例:

[root@localhost ~]# mkdir -pv /t1/t2/t3     #使用“-p”创建多层目录
mkdir: created directory ‘/t1’
mkdir: created directory ‘/t1/t2’
mkdir: created directory ‘/t1/t2/t3’
#会输出创建成功的信息,这就是“-v”选项的作用,一般不用“-v”选项

rmdir(删除空目录)

1、命令选项:

-p:连同上层空目录都删除。

2、用法示例:

[root@localhost ~]# rmdir /test1/     #删除刚才创建的空目录test1
[root@localhost ~]# tree /t1      #查看目录结构
/t1
`-- t2
    `-- t3

2 directories, 0 files
#可以确认都是空目录,tree命令需要手动安装,这里不过多介绍。
[root@localhost /]# rmdir -p t1/t2/t3/            #加上“-p”选项
[root@localhost /]# tree /t1     #查看目录结构,确认已经被删除了
t1 [error opening dir]

0 directories, 0 files

需要放心的是,rmdir只能删除空目录,加上“-p”选项后,若上层目录不是空的,将跳过。

ls(查看目录下内容)

1、命令选项:

-l:以长格式(long)显示文件和目录的列表,包括权限、大小、最后更新的时间等详细信息;
-a:显示所有(All)子目录和文件的信息,包括以“.”号开头的隐藏目录和隐藏文件。
-A:与“-a”效果差不多,只是不包括“.”和“..”这两个目录。
-f:直接列出结果、而不进行排序(ls默认以文件名排序),同时显示以“.”开头的隐藏文件。
-F:根据文件、目录等信息,给予附加数据结构,如:*:代表可执行文件;/:代表目录;=:代表socket文件;|:代表FIFO文件。
-i:将列出inode号码,关于inode会在以后的博文介绍。
-n:列出UID与GID而非使用者与群组的名称。
-d:显示目录(directory)本身的属性,而不是显示目录中的内容。

-h:结合-l选项一起使用,可以以人性化的方式显示文件或目录的大小,默认的大小单位为字节(b),使用-h选项后,将显示为KB、MB等单位。

-R:以递归(Recursive)的方式显示指定的目录和它子目录中所有的内容。
-r:将排序结果反向输出,例如:原本文件名由小到大,反向则会由大到小。
-S:以文件大小排序,而不是用文件名排序。
-t:依时间排序,而不是用文件名。
--color=never:不要依据文件特性给予颜色显示;
--color=always:显示颜色
--color=auto:让系统自行依据设置来判断是否给予颜色(该选项为默认选项)。
--full-time:以完整时间模式(包含年、月、日、时、分)输出
--time={atime,ctime}:输出access时间或改变权限属性时间(ctime)而不是内容变更时间(mtime)。

关于上面提到的文件属性:ctime、mtime、atime的解释如下:

  • mtime:当该文件的“内容数据”变更时,就会更新这个时间!内容数据是指文件的内容,而不是文件的属性或权限。
  • ctime:当该文件的“状态”改变时,就会更新这个时间,举例来说,就像是该文件的属性和权限被更改了,都会更改这个时间。
  • atime:当我们使用查看命令(如cat命令)去读取这个文件,就会更新该文件的atime。

2、用法示例:

[root@localhost ~]# ls -alF --color=never     
#不指定路径,则默认查看当前目录下

输出结果如下:
技术图片

可以看到输出结果只有一种颜色。

[root@localhost ~]# ls -alF     #去掉命令末尾的“--color”再查看一下

输出结果如下:
技术图片

在Linux中关于各种颜色的代表含义(使用Xshell等连接可能会不一样):

  • 深蓝色:表示目录。
  • 白色:表示一般文件。
  • 绿色:表示可执行文件。
  • ×××:表示设备文件。
  • 红色:表示压缩文件。
[root@localhost ~]# ls -al --full-time

输出结果如下:
技术图片

“-al”选项只能列出简单的时间,借助“--full-time”可以列出完整的时间格式。

cp(复制)

1、命令选项:

-a:相当于同时“-dr”,关于“-dr”可以参考下面说明。
-d:若来源文件是链接文件的属性,则复制链接文件属性而非文件本身。
-r:复制目录时必须使用此选项,表示递归复制所有文件及子目录。
-i:覆盖目标同名文件或目录时提醒用户确认(interactive,交互式)
-f:覆盖目标同名文件或目录时不进行提醒,而直接强制(force)复制。
-p: 复制时保持(preserve)源文件的权限、属主及时间标记等属性不变。
-u:目标比源旧才更新目标,或目标不存在的情况下才复制。

2、用法示例:

[root@localhost ~]# cp -r /etc/ /tmp    #将“/etc/”复制到“/tmp”目录下。

rm(删除)

1、命令选项:

-f:删除文件或目录时不进行提醒,而直接强制删除。
-r:删除目录时必须使用此选项,表示递归删除整个目录树。
-i:删除文件或目录时提醒用户确认。

2、用法示例:
默认rm命令已经加了“-i”选项,所以可以省略。

[root@localhost tmp]# rm -r vmware-root/     #删除该目录
rm: remove directory ‘vmware-root/’? y     #输入“y”确定

mv(移动文件或目录、重命名)

mv命令用于将指定的文件或目录转移位置,如果目标位置与原位置相同,则效果相当于为文件或目录改名。
1、命令选项:

-f:强制的意思,如果目标文件已经存在,不会询问而直接覆盖,慎用。
-i:若目标文件已存在,则会询问是否覆盖,默认使用了该选项。
-u:若目标文件已经存在,而且源比较新,才会覆盖。

2、用法示例:

[root@localhost tmp]# mv test1 test2    #将test1改名为test2
[root@localhost tmp]# mv test2 /home   #将test2移动到home目录下

cat、head、tail等命令

要把我写哭了,真的没耐心写下去了,关于cat、head、tail命令可以查看我最初写的博客:Linux中如何查看文件内容,不写了这个了。

touch命令(创建文件或目录)

touch这个命令最常用的的情况是:

  • 创建一个文件或目录;
  • 将某个文件日期修订为目前(mtime与atime);

可以看出来,touch命令不仅仅可以创建文件或目录。

1、常用选项:

-a:仅更改atime;
-c:仅修改文件的时间,若该文件不存在则不创建新文件。
-d:后面可以接想要修改的日期而不用目前的日期,也可以使用--date="日期或时间";
-m:仅修改mtime;
-t:后面可以接想要修改的时间而不用目前的时间,格式为[YYYYMMDDhhmm]。

2、用法示例:

[root@localhost tmp]# touch test     #先新建一个空文件
[root@localhost tmp]# ls -l test     #观察时间
-rw-r--r-- 1 root root 0 Aug  6 16:01 test
#可以看到这个文件大小是0,在默认的状态下,如果touch后面有接文件,
#则该文件的三个时间(atime/ctime/mtime)都会更新为目前的时间。
#若该文件不存在,则会主动创建一个新的空文件。
[root@localhost tmp]# cp -a ~/.bashrc bashrc
#将 ~/.bashrc复制到当前目录下,并命名为bashrc。
[root@localhost tmp]# date; ll bashrc; ll --time=atime bashrc; ll --time=ctime bashrc  
#查看该文件的各种时间及日期的属性
Tue Aug  6 16:05:36 CST 2019      #这是当前时间
-rw-r--r--. 1 root root 176 Dec 29  2013 bashrc   #这是mtime
-rw-r--r--. 1 root root 176 Aug  6 12:14 bashrc   #这是atime
-rw-r--r--. 1 root root 176 Aug  6 16:04 bashrc    #这是ctime
[root@localhost tmp]# touch -d "4 days ago" bashrc    
#将文件日期调整到四天前
[root@localhost tmp]# date; ll bashrc; ll --time=atime bashrc; ll --time=ctime bashrc Tue Aug  6 16:11:22 CST 2019
#再查看各种时间
-rw-r--r--. 1 root root 176 Aug  2 16:11 bashrc
-rw-r--r--. 1 root root 176 Aug  2 16:11 bashrc
-rw-r--r--. 1 root root 176 Aug  6 16:11 bashrc
#会发现除了ctime之外,都改变了,
#ctime只有在文件属性发生改变后,才可以改变。
[root@localhost tmp]# touch -t 201406150202 bashrc 
#将该文件的日期改为2014/06/15 2:02
[root@localhost tmp]# date; ll bashrc; ll --time=atime bashrc; ll --time=ctime bashrc Tue Aug  6 16:15:46 CST 2019
-rw-r--r--. 1 root root 176 Jun 15  2014 bashrc
-rw-r--r--. 1 root root 176 Jun 15  2014 bashrc
-rw-r--r--. 1 root root 176 Aug  6 16:15 bashrc
#还是除了ctime之外,都改变了。

find命令(查找)

技术图片

技术图片
技术图片
技术图片

技术图片

技术图片

grep命令(过滤)

技术图片

———————— 本文至此结束,感谢阅读 ————————

Linux基础命令(详细版)

标签:解释   上层   mtime   collate   mv命令   相同   head   man手册   messages   

原文地址:https://blog.51cto.com/14154700/2427122

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!