学习Linux第一周所有命令总结

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习Linux第一周所有命令总结相关的知识,希望对你有一定的参考价值。

一周总结

开学第一周,总结这周所学知识点

以命令首字母顺序整理


alias 用来设置指令的别名

  • alias命令的作用只局限于该次登入的操作。
  • 若要每次登入都能够使用这些命令别名,则可将相应的alias命令存放到bash的初始化文件/etc/bashrc中。
  • 或者存放在用户家目录的.bashrc中

    用法

  • alias 新的命令=‘原命令 -选项/参数‘
  • unalias 别名 (删除别名)
  • unalias -a 别名 (删除全部别名)

    编辑家目录下配置文件(只在当前用户生效)

    vim ~/.bashrc
    alias v=‘vim‘

    编辑etc目录下配置文件(在所有用户生效)

    在文件最后面加入别名设置,如:alias v=’vim’,保存后重新载入:

    source ~/.bashrc

    对所有用户都有效修改/etc目录下的bashrc文件
    可以在用户根目录下新建一个文件.bash_aliases存放命令别名设置。

bc 计算器

用法

  • 输入bc开始计算

    设定小数精度(数值范围)

    scale=2

    进制转换

    obase=16      #设置输出为16进制
    ibase=2        #设置输入为2进制

    计算平方和平方根:

    10^10
    sqrt(100)

    cd切换用户当前工作目录

    用法

  • cd (选项) (要切换的目录)

    选项

  • -p 如果要切换到的目标目录是一个符号连接,直接切换到符号连接指向的目标目录
  • -L 如果要切换的目标目录是一个符号的连接,直接切换到字符连接名代表的目录,而非符号连接所指向的目标目录。
  • 当仅实用"-"一个选项时,当前工作目录将被切换到环境变量"OLDPWD"所表示的目录。

    实例

    1. 进入用户主目录;
      cd 
    2. 进入用户主目录;
      cd ~
  1. 返回进入此目录之前所在的目录;
    cd - 
  2. 返回上级目录(若当前目录为“/“,则执行完后还在“/";".."为上级目录的意思);
    cd ..
  3. 返回上两级目录;
    cd ../..
  4. 把上个命令的参数作为cd参数使用。
    cd !$

    cp 将源文件或目录复制到目标文件或目录中

    说明

    • cp命令 用来将一个或多个源文件或者目录复制到指定的目的文件或目录。
    • 它可以将单个源文件复制成一个指定文件名的具体的文件或一个已经存在的目录下。
    • cp命令还支持同时复制多个文件,当一次复制多个文件时,目标文件参数必须是一个已经存在的目录,否则将出现错误。

      用法

      cp (选项) (要复制的文件(可多个文件))  (复制到的目录)

      选项

      --a:此参数的效果和同时指定"-dpR"参数相同;
      -d:当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录;
      -f:强行复制文件或目录,不论目标文件或目录是否已存在;
      -i:覆盖既有文件之前先询问用户;
      -l:对源文件建立硬连接,而非复制文件;
      -p:保留源文件或目录的属性;
      -R/r:递归处理,将指定目录下的所有文件与子目录一并处理;
      -s:对源文件建立符号连接,而非复制文件;
      -u:使用这项参数后只会在源文件的更改时间较目标文件更新时或是名称相互对应的目标文件并不存在时,才复制文件;
      -S:在备份文件时,用指定的后缀“SUFFIX”代替文件的默认后缀;
      -b:覆盖已存在的文件目标前将目标文件备份;
      -v:详细显示命令执行的操作。
      参数
      ? 源文件:制定源文件列表。默认情况下,cp命令不能复制目录,如果要复制目录,则必须使用

      clock用于调整电脑内建的硬件时间

      选项

      --debug  详细显示指令执行过程,便于排错或了解程序执行的情形。
      --directisa  告诉clock指令不要通过/dev/rtc设备文件,直接对硬件时钟进行存取。这个参数适用于仅有ISA总线结构的老式电脑。
      --getepoch  把系统核心内的硬件时钟新时代数值,呈现到标准输出设备。
      -s / --hctosys  Hardware Clock to System Time,把系统时间设成和硬件时钟一致。由于这个动作将会造成系统全面更新文件的存取时间,所以最好在系统启动时就执行它。
      --set--date  设置硬件时钟的日期和时间。
      --setepoch--epoch=<年份>  设置系统核心之硬件时钟的新时代数值,年份以四位树字表示。
      --show  读取硬件时钟的时间,并将其呈现至标准输出设备。
      --systohc  System Time to Hardware Clock,将系统时间存回硬件时钟内。
      --test  仅作测试,并不真的将时间写入硬件时钟或系统时间。
      --utc  把硬件时钟上的时间时为CUT,有时也称为UTC或UCT。
      --version  显示版本信息。

cal显示当前日历或指定日期的日历

语法

cal(选项)(参数)

选项

-l:显示单月输出;
-3:显示临近三个月的日历;
-s:将星期日作为月的第一天;
-m:将星期一作为月的第一天;
-j:显示“julian”日期;
-y:显示当前年的日历。

cat连接文件并打印到标准输出设备上

注意:

  当文件较大时,文本在屏幕上迅速闪过(滚屏),用户往往看不清所显示的内容。因此,一般用more等命令分屏显示。为了控制滚屏,可以按Ctrl+S键,停止滚屏;按Ctrl+Q键可以恢复滚屏。按Ctrl+C(中断)键可以终止该命令的执行,并且返回Shell提示符状态。

语法

cat(选项)(参数)

选项

-n或--number:从1开始对所有输出的行数编号;
-b或--number-nonblank:和-n相似,只不过对于空白行不编号;
-s或--squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行;
-A:显示不可打印字符,行尾显示“$”;
-e:等价于"-vE"选项;
-t:等价于"-vT"选项;

实例

设m1和m2是当前目录下的两个文件
cat m1 (在屏幕上显示文件m1的内容)
cat m1 m2 (同时显示文件m1和m2的内容)
cat m1 m2 > file (将文件m1和m2合并后放入文件file中)

df显示磁盘的相关信息

补充说明

  df命令 用于显示磁盘分区上的可使用的磁盘空间。默认显示单位为KB。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。

语法

df(选项)(参数)

选项

-a或--all:包含全部的文件系统;
--block-size=<区块大小>:以指定的区块大小来显示区块数目;
-h或--human-readable:以可读性较高的方式来显示信息;
-H或--si:与-h参数相同,但在计算时是以1000 Bytes为换算单位而非1024 Bytes;
-i或--inodes:显示inode的信息;
-k或--kilobytes:指定区块大小为1024字节;
-l或--local:仅显示本地端的文件系统;
-m或--megabytes:指定区块大小为1048576字节;
--no-sync:在取得磁盘使用信息前,不要执行sync指令,此为预设值;
-P或--portability:使用POSIX的输出格式;
--sync:在取得磁盘使用信息前,先执行sync指令;
-t<文件系统类型>或--type=<文件系统类型>:仅显示指定文件系统类型的磁盘信息;
-T或--print-type:显示文件系统的类型;
-x<文件系统类型>或--exclude-type=<文件系统类型>:不要显示指定文件系统类型的磁盘信息;
--help:显示帮助;
--version:显示版本信息。

date显示或设置系统时间与日期

补充说明

  很多shell脚本里面需要打印不同格式的时间或日期,以及要根据时间和日期执行操作。延时通常用于脚本执行过程中提供一段等待的时间。日期可以以多种格式去打印,也可以使用命令设置固定的格式。在类UNIX系统中,日期被存储为一个整数,其大小为自世界标准时间(UTC)1970年1月1日0时0分0秒起流逝的秒数。

语法

date(选项)(参数)

选项

-d<字符串>:显示字符串所指的日期与时间。字符串前后必须加上双引号;
-s<字符串>:根据字符串来设置日期与时间。字符串前后必须加上双引号;
-u:显示GMT;
--help:在线帮助;
--version:显示版本信息。

参数

<+时间日期格式>:指定显示时使用的日期时间格式。

日期格式字符串列表
%H 小时,24小时制(00~23)
%I 小时,12小时制(01~12)
%k 小时,24小时制(0~23)
%l 小时,12小时制(1~12)
%M 分(00~59)
%p 显示出上午或下午
%r 时间,12小时制
%s 从1970年1月1日0点到目前经历的秒数
%S 秒(00~59)
%T 时间(24小时制)(hh:mm:ss)
%X 显示时间的格式(%H时%M分%S秒)
%Z 按字母表排序的时区缩写
%a 星期名缩写
%A 星期名全称
%b 月名缩写
%B 月名全称
%c 日期和时间
%d 按月计的日期(01~31)
%D 日期(mm/dd/yy)
%h 和%b选项相同
%j 一年的第几天(001~366)
%m 月份(01~12)
%w 一个星期的第几天(0代表星期天)
%W 一年的第几个星期(00~53,星期一为第一天)
%x 显示日期的格式(mm/dd/yy)
%y 年份的最后两个数字(1999则是99)
%Y 年份(比如1970、1996等)
%C 世纪,通常为省略当前年份的后两位数字
%U 一年中的第几周,以周日为每星期第一天
%e 按月计的日期,添加空格,等于%_d

实例

格式化输出:

date +"%Y-%m-%d"
2009-12-07

输出昨天日期:

date -d "1 day ago" +"%Y-%m-%d"
2012-11-19

2秒后输出:

date -d "2 second" +"%Y-%m-%d %H:%M.%S"
2012-11-20 14:21.31

传说中的 1234567890 秒:

date -d "1970-01-01 1234567890 seconds" +"%Y-%m-%d %H:%m:%S"  
2009-02-13 23:02:30   

普通转格式:

date -d "2009-12-12" +"%Y/%m/%d %H:%M.%S"  
2009/12/12 00:00.00

apache格式转换:

date -d "Dec 5, 2009 12:00:37 AM" +"%Y-%m-%d %H:%M.%S"
2009-12-05 00:00.37

格式转换后时间游走:

date -d "Dec 5, 2009 12:00:37 AM 2 year ago" +"%Y-%m-%d %H:%M.%S"
2007-12-05 00:00.37

加减操作:

date +%Y%m%d                   //显示前天年月日
date -d "+1 day" +%Y%m%d       //显示前一天的日期
date -d "-1 day" +%Y%m%d       //显示后一天的日期
date -d "-1 month" +%Y%m%d     //显示上一月的日期
date -d "+1 month" +%Y%m%d     //显示下一月的日期
date -d "-1 year" +%Y%m%d      //显示前一年的日期
date -d "+1 year" +%Y%m%d      //显示下一年的日期

设定时间:

date -s                        //设置当前时间,只有root权限才能设置,其他只能查看
date -s 20120523               //设置成20120523,这样会把具体时间设置成空00:00:00
date -s 01:01:01               //设置具体时间,不会对日期做更改
date -s "01:01:01 2012-05-23"  //这样可以设置全部时间
date -s "01:01:01 20120523"    //这样可以设置全部时间
date -s "2012-05-23 01:01:01"  //这样可以设置全部时间
date -s "20120523 01:01:01"    //这样可以设置全部时间

enable命令

  用于临时关闭或者激活指定的shell内部命令。
若要执行的文件名称与shell内建命令相同,可用enable -n来关闭shell内建命令。若不加-n选项,enable可重新启动关闭的命令。
  linux shell命令执行时,shell总是先在自己的shell builtin中查找该命令,如果找到则执行该命令;如果找不到该命令,则会从环境变量$PATH指定的路径中依次去查找待执行的命令。因为了解了这一点,所以看起来好像没有办法编写用户自己的命令来替代shell builtin命令。幸运的是,有了enable命令我们就能做到了。

语法

enable(选项)(参数)

选项

-n:关闭指定的内部命令;
-a:显示所有激活的内部命令;
-f:从指定文件中读取内部命令。

实例

使用enable命令显示所有激活的内部命令:

[[email protected] ~]# enable -a
enable .
enable :
enable alias
enable bg
enable bind
enable break
enable builtin
enable caller
enable cd
enable command
enable compgen
enable complete
enable continue
enable declare  
.....

echo输出指定的字符串或者变量

语法

echo(选项)(参数)

选项

-e:激活转义字符。
使用-e选项时,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出:

a 发出警告声;
 删除前一个字符;
c 不产生进一步输出 (c 后面的字符不会输出);
f 换行但光标仍旧停留在原来的位置;

 换行且光标移至行首;

 光标移至行首,但不换行;
	 插入tab;
v 与f相同;
 插入字符;

nn 插入nnn(八进制)所代表的ASCII字符; 

使用echo命令关机:echo o > /proc/sysrq-trigger reboots

free显示内存的使用情况

语法

free(选项)

选项

-b # 以Byte为单位显示内存使用情况;
-k # 以KB为单位显示内存使用情况;
-m # 以MB为单位显示内存使用情况;
-g # 以GB为单位显示内存使用情况。 
-o # 不显示缓冲区调节列;
-s<间隔秒数> # 持续观察内存使用状况;
-t # 显示内存总和列;
-V # 显示版本信息

file 用来探测给定文件的类型。

语法

file(选项)(参数)

选项

-b:列出辨识结果时,不显示文件名称;
-c:详细显示指令执行过程,便于排错或分析程序执行的情形;
-f<名称文件>:指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称;
-L:直接显示符号连接所指向的文件类别;
-m<魔法数字文件>:指定魔法数字文件;
-v:显示版本信息;
-z:尝试去解读压缩文件的内容。

history用于显示历史命令

补充说明

  用于显示指定数目的指令命令,读取历史命令文件中的目录到历史命令缓冲区和将历史命令缓冲区中的目录写入命令文件。

  该命令单独使用时,仅显示历史命令,在命令行中,可以使用符号!执行指定序号的历史命令。例如,要执行第2个历史命令,则输入!2。

  历史命令是被保存在内存中的,当退出或者登录shell时,会自动保存或读取。在内存中,历史命令仅能够存储1000条历史命令,该数量是由环境变量HISTSIZE进行控制。

语法

history(选项)(参数)

选项

-c:清空当前历史命令;
-a:将历史命令缓冲区中命令写入历史命令文件中;
-r:将历史命令文件中的命令读入当前历史命令缓冲区;
-w:将当前历史命令缓冲区命令写入历史命令文件中。

hexdump显示文件十六进制格式

语法

hexdump [选项] [文件]...

选项

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

  每个格式字符串由三部分组成,每个由空格分隔,第一个形如a/b,b表示对每b个输入字节应用format1格式,a表示对每a个输入字节应用format2格式,一般a>b,且b只能为1,2,4,另外a可以省略,省略则a=1。format1和format2中可以使用类似printf的格式字符串,如:

%02d:两位十进制
%03x:三位十六进制
%02o:两位八进制
%c:单个字符等

还有一些特殊的用法:

%_ad:标记下一个输出字节的序号,用十进制表示。
%_ax:标记下一个输出字节的序号,用十六进制表示。
%_ao:标记下一个输出字节的序号,用八进制表示。
%_p:对不能以常规字符显示的用 . 代替。

同一行如果要显示多个格式字符串,则可以跟多个-e选项。

实例

hexdump -e ‘16/1 "%02X " "  |  "‘ -e ‘16/1 "%_p" "
"‘ test
00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F  |  ................  
10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F  |  ................  
20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F  |   !"#$%&‘()*+,-./ 

halt关闭正在运行的Linux操作系统

补充说明

halt命令 用来关闭正在运行的Linux操作系统。halt命令会先检测系统的runlevel,若runlevel为0或6,则关闭系统,否则即调用shutdown来关闭系统。

语法

halt(选项)

选项

-d:不要在wtmp中记录;
-f:不论目前的runlevel为何,不调用shutdown即强制关闭系统;
-i:在halt之前,关闭全部的网络界面;
-n:halt前,不用先执行sync;
-p:halt之后,执行poweroff;
-w:仅在wtmp中记录,而不实际结束系统。

实例

halt -p     //关闭系统后关闭电源。
halt -d     //关闭系统,但不留下纪录。

help

hash显示、添加或清除哈希表

说明

  linux系统下会有一个hash表,当你刚开机时这个hash表为空,每当你执行过一条命令时,hash表会记录下这条命令的路径,就相当于缓存一样。
  第一次执行命令shell解释器默认的会从PATH路径下寻找该命令的路径,当你第二次使用该命令时,shell解释器首先会查看hash表,没有该命令才会去PATH路径下寻找。

实例

hash –l  显示详细路径

-p 添加hash表
hash -p /bin/ls bb  //添加hash表,可以看到我把ls命令重新写了一遍,改名为bb

hostname显示和设置系统的主机名

补充说明

  用于显示和设置系统的主机名称。
  环境变量HOSTNAME也保存了当前的主机名。在使用hostname命令设置主机名后,系统并不会永久保存新的主机名,重新启动机器之后还是原来的主机名。
  如果需要永久修改主机名,需要同时修改/etc/hosts和/etc/sysconfig/network的相关内容。

语法

hostname(选项)(参数)

选项

-v:详细信息模式;
-a:显示主机别名;
-d:显示DNS域名;
-f:显示FQDN名称;
-i:显示主机的ip地址;
-s:显示短主机名称,在第一个点处截断;
-y:显示NIS域名。

hostnamectl

语法

hostnamectl (选项)(参数)

选项

status                 显示当前主机名设置  
set-hostname NAME      系统设置主机名  
set-icon-name NAME     设置主机图标名称  
set-chassis NAME       为主机设置机箱类型  
set-deployment NAME    为主机设置部署环境  
set-location NAME      设置主机位置  

hwclock显示与设定硬件时钟

补充说明

  hwclock命令 是一个硬件时钟访问工具,它可以显示当前时间、设置硬件时钟的时间和设置硬件时钟为系统时间,也可设置系统时间为硬件时钟的时间。
  在Linux中有硬件时钟与系统时钟等两种时钟。硬件时钟是指主机板上的时钟设备,也就是通常可在Bios画面设定的时钟。系统时钟则是指kernel中的时钟。当Linux启动时,系统时钟会去读取硬件时钟的设定,之后系统时钟即独立运作。所有Linux相关指令与函数都是读取系统时钟的设定。

--hctosys:将系统时钟调整为与目前的硬件时钟一致;
--set --date=<日期与时间>:设定硬件时钟;
--show:显示硬件时钟的时间与日期;
--systohc:将硬件时钟调整为与目前的系统时钟一致;

init init进程是所有Linux进程的父进程

补充说明

init命令 是Linux下的进程初始化工具,init进程是所有Linux进程的父进程,它的进程号为1

init命令是Linux操作系统中不可缺少的程序之一,init进程是Linux内核引导运行的,是系统中的第一个进程。

语法

init(选项)(参数)

选项

-b:不执行相关脚本而直接进入单用户模式;
-s:切换到单用户模式。

参数

运行等级:指定Linux系统要切换到的运行等级。

实例

几个常用的命令
查看系统进程命令:ps -ef | head
查看init的配置文件:more /etc/inittab
查看系统当前运行的级别:runlevel

运行级别

到底什么是运行级呢?简单的说,运行级就是操作系统当前正在运行的功能级别。这个级别从0到6 ,具有不同的功能。你也可以在/etc/inittab中查看它的英文介绍。

#0  停机(千万不能把initdefault 设置为0)
#1  单用户模式
#2  多用户,没有 NFS(和级别3相似,会停止部分服务)
#3  完全多用户模式 文本界面
#4  没有用到
#5  x11(Xwindow)
#6  重新启动(千万不要把initdefault 设置为6)

id显示用户的ID以及所属群组的ID

补充说明

id命令 可以显示真实有效的用户ID(UID)和组ID(GID)。UID 是对一个用户的单一身份标识。组ID(GID)则对应多个UID。id命令已经默认预装在大多数Linux系统中。要使用它,只需要在你的控制台输入id。不带选项输入id会显示如下。结果会使用活跃用户。

当我们想知道某个用户的UID和GID时id命令是非常有用的。一些程序可能需要UID/GID来运行。id使我们更加容易地找出用户的UID以GID而不必在/etc/group文件中搜寻。如往常一样,你可以在控制台输入man id进入id的手册页来获取更多的详情。

语法

id [-gGnru]--[help][--version][用户名称]

选项

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

用户root的UID号码 = 0,GID号码 = 0。用户root是下面组的成员:

?   root组GID号是:0
?   bin组GID号是:1
?   daemon组GID号是:2
?   sys组GID号是:3
?   adm组GID号是:4
?   disk组GID号是:6
?   wheel组GID号是:10

ifconfig配置和显示Linux系统网卡的网络参数

##补充说明
ifconfig命令 被用于配置和显示Linux内核中网络接口的网络参数。用ifconfig命令配置的网卡信息,在网卡重启后机器重启后,配置就不存在。要想将上述的配置信息永远的存的电脑里,那就要修改网卡的配置文件了。

语法

ifconfig(参数)

参数

add<地址>:设置网络设备IPv6的ip地址;
del<地址>:删除网络设备IPv6的IP地址;
down:关闭指定的网络设备;
<hw<网络设备类型><硬件地址>:设置网络设备的类型与硬件地址;
io_addr<I/O地址>:设置网络设备的I/O地址;
irq<IRQ地址>:设置网络设备的IRQ;
media<网络媒介类型>:设置网络设备的媒介类型;
mem_start<内存地址>:设置网络设备在主内存所占用的起始地址;
metric<数目>:指定在计算数据包的转送次数时,所要加上的数目;
mtu<字节>:设置网络设备的MTU;
netmask<子网掩码>:设置网络设备的子网掩码;
tunnel<地址>:建立IPv4与IPv6之间的隧道通信地址;

ifup:启动指定的网络设备;

-broadcast<地址>:将要送往指定地址的数据包当成广播数据包来处理;
-pointopoint<地址>:与指定地址的网络设备建立直接连线,此模式具有保密功能;
-promisc:关闭或启动指定网络设备的promiscuous模式;
IP地址:指定网络设备的IP地址;
网络设备:指定网络设备的名称。
启动关闭指定网卡:

ifconfig eth0 up  
ifconfig eth0 down  

为网卡配置和删除IPv6地址:

ifconfig eth0 add 33ffe:3240:800:1005::2/64    #为网卡eth0配置IPv6地址  
ifconfig eth0 del 33ffe:3240:800:1005::2/64    #为网卡eth0删除IPv6地址  

用ifconfig修改MAC地址:

ifconfig eth0 hw ether 00:AA:BB:CC:dd:EE  

配置IP地址:

[[email protected] ~]# ifconfig eth0 192.168.2.10
[[email protected] ~]# ifconfig eth0 192.168.2.10 netmask 255.255.255.0
[[email protected] ~]# ifconfig eth0 192.168.2.10 netmask 255.255.255.0 broadcast 192.168.2.255

启用和关闭arp协议:

ifconfig eth0 arp    #开启网卡eth0 的arp协议
ifconfig eth0 -arp   #关闭网卡eth0 的arp协议

设置最大传输单元:

ifconfig eth0 mtu 1500    #设置能通过的最大数据包大小为 1500 bytes

其它实例

ifconfig   #处于激活状态的网络接口
ifconfig -a  #所有配置的网络接口,不论其是否激活
ifconfig eth0  #显示eth0的网卡信息

ls列出当前目录的内容或指定目录

用法

ls [options] [ files_or_dirs ]

示例

ls -a 包含隐藏文件
ls -l 显示额外的信息
ls -R 目录递归通过
ls -ld 目录和符号链接信息
ls -1 文件分行显示
ls –S 按从大到小排序
ls –t 按mtime排序
ls –u 配合-t选项,显示并按atime从新到旧排序
ls –U 按目录存放顺序显示
ls –X 按文件后缀排序

lscpu显示有关CPU架构的信息

语法

lscpu [选项]

选项

-a, --all               打印在线和离线CPU(默认为-e)
-b, --online            仅打印在线CPU(-p的默认值)
-c, --offline           打印离线CPU
-e, --extended[=<list>] 打印出一个扩展的可读格式
-p, --parse[=<list>]    打印出可解析的格式
-s, --sysroot <dir>     将指定的目录用作系统根目录
-x, --hex               打印十六进制掩码,而不是CPU列表
-h, --help     显示此帮助并退出
-V, --version  输出版本信息并退出

参数
可用列:

CPU           逻辑CPU编号
CORE          逻辑核心号码
SOCKET        逻辑套接字号
NODE          逻辑NUMA节点号
BOOK          逻辑书号
CACHE         显示了如何在CPU之间共享高速缓存
POLARIZATION  虚拟硬件上的CPU调度模式
ADDRESS       CPU的物理地址
CONFIGURED    显示管理程序是否分配了CPU
ONLINE        显示Linux是否正在使用CPU

lsblk列出块设备信息

补充说明

  lsblk命令 用于列出所有可用块设备的信息,而且还能显示他们之间的依赖关系,但是它不会列出RAM盘的信息。块设备有硬盘,闪存盘,cd-ROM等等。lsblk命令包含在util-linux-ng包中,现在该包改名为util-linux。这个包带了几个其它工具,如dmesg。要安装lsblk,请在此处下载util-linux包。Fedora用户可以通过命令sudo yum install util-linux-ng来安装该包。

选项

-a, --all            显示所有设备。
-b, --bytes          以bytes方式显示设备大小。
-d, --nodeps         不显示 slaves 或 holders。
-D, --discard        print discard capabilities。
-e, --exclude <list> 排除设备 (default: RAM disks)。
-f, --fs             显示文件系统信息。
-h, --help           显示帮助信息。
-i, --ascii          use ascii characters only。
-m, --perms          显示权限信息。
-l, --list           使用列表格式显示。
-n, --noheadings     不显示标题。
-o, --output <list>  输出列。
-P, --pairs          使用key="value"格式显示。
-r, --raw            使用原始格式显示。
-t, --topology       显示拓扑结构信息。

ln用来为文件创件连接

补充说明

ln命令 用来为文件创件连接,连接类型分为硬连接和符号连接两种,默认的连接类型是硬连接。如果要创建符号连接必须使用"-s"选项。

注意:符号链接文件不是一个独立的文件,它的许多属性依赖于源文件,所以给符号链接文件设置存取权限是没有意义的。

语法

ln [选项]... [-T] 目标 链接名    (第一种格式)
 或:ln [选项]... 目标        (第二种格式)
 或:ln [选项]... 目标... 目录    (第三种格式)
 或:ln [选项]... -t 目录 目标...    (第四种格式)

选项

--backup[=CONTROL]  为每个已存在的目标文件创建备份文件
-b    类似--backup,但不接受任何参数
-d, -F, --directory   创建指向目录的硬链接(只适用于超级用户)
-f, --force     强行删除任何已存在的目标文件
-i, --interactive           覆盖既有文件之前先询问用户;
-L, --logical               取消引用作为符号链接的目标
-n, --no-dereference        把符号连接的目的目录视为一般文件;
-P, --physical              直接将硬链接到符号链接
-r, --relative              创建相对于链接位置的符号链接
-s, --symbolic              对源文件建立符号连接,而非硬连接;
-S, --suffix=SUFFIX         用"-b"参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,预设的备份字符串是符号“~”,用户可通过“-S”参数来改变它;
-t, --target-directory=DIRECTORY  指定要在其中创建链接的DIRECTORY
-T, --no-target-directory   将“LINK_NAME”视为常规文件
-v, --verbose               打印每个链接文件的名称
--help    显示此帮助信息并退出
--version   显示版本信息并退出

参数

源文件:指定连接的源文件。如果使用-s选项创建符号连接,则“源文件”可以是文件或者目录。创建硬连接时,则“源文件”参数只能是文件;
目标文件:指定源文件的目标连接文件。
none, off # 不进行备份(即使使用了--backup 选项)
numbered, t # 备份文件加上数字进行排序
existing, nil # 若有数字的备份文件已经存在则使用数字,否则使用普通方式备份
simple, never # 永远使用普通方式备份

实例

将目录/usr/mengqc/mub1下的文件m2.c链接到目录/usr/liu下的文件a2.c

cd /usr/mengqc
ln /mub1/m2.c /usr/liu/a2.c

  在执行ln命令之前,目录/usr/liu中不存在a2.c文件。执行ln之后,在/usr/liu目录中才有a2.c这一项,表明m2.c和a2.c链接起来(注意,二者在物理上是同一文件),利用ls -l命令可以看到链接数的变化。

在目录/usr/liu下建立一个符号链接文件abc,使它指向目录/usr/mengqc/mub1

ln -s /usr/mengqc/mub1 /usr/liu/abc

执行该命令后,/usr/mengqc/mub1代表的路径将存放在名为/usr/liu/abc的文件中。

知识

  Linux具有为一个文件起多个名字的功能,称为链接。被链接的文件可以存放在相同的目录下,但是必须有不同的文件名,而不用在硬盘上为同样的数据重复备份。另外,被链接的文件也可以有相同的文件名,但是存放在不同的目录下,这样只要对一个目录下的该文件进行修改,就可以完成对所有目录下同名链接文件的修改。对于某个文件的各链接文件,我们可以给它们指定不同的存取权限,以控制对信息的共享和增强安全性。

  文件链接有两种形式,即硬链接和符号链接。

硬链接

  建立硬链接时,在另外的目录或本目录中增加目标文件的一个目录项,这样,一个文件就登记在多个目录中。如图所示的m2.c文件就在目录mub1和liu中都建立了目录项。

  创建硬链接后,己经存在的文件的I节点号(Inode)会被多个目录文件项使用。一个文件的硬链接数可以在目录的长列表格式的第二列中看到,无额外链接的文件的链接数为l。

  在默认情况下,ln命令创建硬链接。ln命令会增加链接数,rm命令会减少链接数。一个文件除非链接数为0,否则不会从文件系统中被物理地删除。

对硬链接有如下限制:

  不能对目录文件做硬链接。
  不能在不同的文件系统之间做硬链接。就是说,链接文件和被链接文件必须位于同一个文件系统中。

符号链接

  符号链接也称为软链接,是将一个路径名链接到一个文件。这些文件是一种特别类型的文件。事实上,它只是一个文本文件(如图中的abc文件),其中包含它提供链接的另一个文件的路径名,如图中虚线箭头所示。另一个文件是实际包含所有数据的文件。所有读、写文件内容的命令被用于符号链接时,将沿着链接方向前进来访问实际的文件。

  与硬链接不同的是,符号链接确实是一个新文件,当然它具有不同的I节点号;而硬链接并没有建立新文件。

  符号链接没有硬链接的限制,可以对目录文件做符号链接,也可以在不同文件系统之间做符号链接。

  用ln -s命令建立符号链接时,源文件最好用绝对路径名。这样可以在任何工作目录下进行符号链接。而当源文件用相对路径时,如果当前的工作路径与要创建的符号链接文件所在路径不同,就不能进行链接。

  符号链接保持了链接与源文件或目录之间的区别:

  删除源文件或目录,只删除了数据,不会删除链接。一旦以同样文件名创建了源文件,链接将继续指向该文件的新数据。
  在目录长列表中,符号链接作为一种特殊的文件类型显示出来,其第一个字母是l。
符号链接的大小是其链接文件的路径名中的字节数。
  当用ln -s命令列出文件时,可以看到符号链接名后有一个箭头指向源文件或目录,例如lrwxrwxrwx … 14 jun 20 10:20 /etc/motd->/original_file其中,表示“文件大小”的数字“14”恰好说明源文件名original_file由14个字符构成。

mkdir用来创建目录

-m<目标属性>或--mode<目标属性>建立目录的同时设置目录的权限;  
-p或--parents 若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录;

在当前目录中建立etc下的file目录,权限设置为文件主可读、写、执行,同组用户可读和执行,其他用户无权访问

mkdir -p-m 777 etc/file

mv用来对文件或目录重新命名

补充说明

  mv命令 用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。   source表示源文件或目录,target表示目标文件或目录。如果将一个文件移到一个已经存在的目标文件中,则目标文件的内容将被覆盖。

  mv命令可以用来将源文件移至一个目标文件中,或将一组文件移至一个目标目录中。源文件被移至目标文件有两种不同的结果:

  如果目标文件是到某一目录文件的路径,源文件会被移到此目录下,且文件名不变。
  如果目标文件不是目录文件,则源文件名(只能有一个)会变为此目标文件名,并覆盖己存在的同名文件。如果源文件和目标文件在同一个目录下,mv的作用就是改文件名。当目标文件是目录文件时,源文件或目录参数可以有多个,则所有的源文件都会被移至目标文件中。所有移到该目录下的文件都将保留以前的文件名。
注意事项:mv与cp的结果不同,mv好像文件“搬家”,文件个数并未增加。而cp对文件进行复制,文件个数增加了。

语法

mv(选项)(参数)

选项

--backup=<备份模式>:若需覆盖文件,则覆盖前先行备份;
-b:当文件存在时,覆盖前,为其创建一个备份;
-f:若目标文件或目录与现有的文件或目录重复,则直接覆盖现有的文件或目录;
-i:交互式操作,覆盖前先行询问用户,如果源文件与目标文件或目标目录中的文件同名,则询问用户是否覆盖目标文件。用户输入”y”,表示将覆盖目标文件;输入”n”,表示取消对源文件的移动。这样可以避免误将文件覆盖。
--strip-trailing-slashes:删除源文件中的斜杠“/”;
-S<后缀>:为备份文件指定后缀,而不使用默认的后缀;
--target-directory=<目录>:指定源文件要移动到目标目录;
-u:当源文件比目标文件新或者目标文件不存在时,才执行移动操作。

参数

  源文件:源文件列表。
目标文件:如果“目标文件”是文件名则在移动文件的同时,将其改名为“目标文件”;如果“目标文件”是目录名则将源文件移动到“目标文件”下。

makewhatis生成man库

mandb创建或更新手册页索引缓存

man 帮助手册

nano

OLDPWD上一次目录路径

pwd绝对路径方式显示用户当前工作目录

poweroff关闭Linux系统

  关闭记录会被写入到/var/log/wtmp日志文件中。

语法

poweroff [选项]

选项

-n 关闭之前不同步
-p 当被称为halt时关闭电源
-v 增加输出,包括消息
-q 降低输出错误唯一的消息
-w 并不实际关闭系统,只是写入/var/log/wtmp文件中
-f 强制关机,不调用shutdown

Ping测试主机之间网络的连通性

补充说明

  ping命令 用来测试主机之间网络的连通性。执行ping指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。

语法

ping(选项)(参数)

选项

-d:使用Socket的SO_DEBUG功能;
-c<完成次数>:设置完成要求回应的次数;
-f:极限检测;
-i<间隔秒数>:指定收发信息的间隔时间;
-I<网络界面>:使用指定的网络界面送出数据包;
-l<前置载入>:设置在送出要求信息之前,先行发出的数据包;
-n:只输出数值;
-p<范本样式>:设置填满数据包的范本样式;
-q:不显示指令执行过程,开头和结尾的相关信息除外;
-r:忽略普通的Routing Table,直接将数据包送到远端主机上;
-R:记录路由过程;
-s<数据包大小>:设置数据包的大小;
-t<存活数值>:设置存活数值TTL的大小;
-v:详细显示指令的执行过程。

参数

目的主机:指定发送ICMP报文的目的主机。

quit

reboot重启

语法:

reboot [-dfinw]

补充说明:执行reboot指令可让系统停止运作,并重新开机。

参数:

-d  重新开机时不把数据写入记录文件/var/tmp/wtmp。本参数具有"-n"参数的效果。
-f  强制重新开机,不调用shutdown指令的功能。
-i  在重开机之前,先关闭所有网络界面。
-n  重开机之前不检查是否有未结束的程序。
-w  仅做测试,并不真的将系统重新开机,只会把重开机的数据写入/var/log目录下的wtmp记录文件。

stat用于显示文件的状态信息

语法

stat(选项)(参数)

选项

-L:支持符号连接;
-f:显示文件系统状态而非文件状态;
-t:以简洁方式输出信息;
--help:显示指令的帮助信息;
--version:显示指令的版本信息。

三个时间戳

access time  访问时间,atime,读取文件内容
modify time  修改时间, mtime,改变文件内容(数据)
change time  改变时间, ctime,元数据发生改变

scp加密的方式在本地主机和远程主机之间复制文件

语法

scp(选项)(参数)

选项

-1:使用ssh协议版本1;
-2:使用ssh协议版本2;
-4:使用ipv4;
-6:使用ipv6;
-B:以批处理模式运行;
-C:使用压缩;
-F:指定ssh配置文件;
-i:identity_file 从指定文件中读取传输时使用的密钥文件(例如亚马逊云pem),此参数直接传递给ssh;
-l:指定宽带限制;
-o:指定使用的ssh选项;
-P:指定远程主机的端口号;
-p:保留文件的最后修改时间,最后访问时间和权限模式;
-q:不显示复制进度;
-r:以递归方式复制。

shutdown以一种安全的方式关闭系统

语法

shutdown(选项)(参数)

选项

-c:当执行“shutdown -h 11:50”指令时,只要按+键就可以中断关机的指令;
-f:重新启动时不执行fsck;
-F:重新启动时执行fsck;
-h:将系统关机;
-k:只是送出信息给所有用户,但不会实际关机;
-n:不调用init程序进行关机,而由shutdown自己进行;
-r:shutdown之后重新启动;
-t<秒数>:送出警告信息和删除信息之间要延迟多少秒。

参数

[时间]:设置多久时间后执行shutdown指令;
[警告信息]:要传送给所有登入用户的信息。

实例

指定现在立即关机:

shutdown -h now

指定5分钟后关机,同时送出警告信息给登入用户:

shutdown +5 "System will shutdown after 5 minutes"

screen

source在当前Shell环境中从指定文件读取和执行命令,命令返回退出状态。

语法

source [文件名] [参数]

例子

读取和执行/root/.bash_profile文件。

[[email protected] ~]# source ~/.bash_profile

timedatectl

显示系统的当前时间和日期

timedatectl  status   #结果中RTC time就是硬件时钟的时间。

Linux系统上的time总是通过系统的timezone设置的,查看当前时区:

# timedatectl | grep Time

3.查看所有可用的时区:

timedatectl list-timezones

4.根据地理位置找到本地的时区:

timedatectl list-timezones |  egrep  -o “Asia/B.*”
timedatectl list-timezones |  egrep  -o “Europe/L.*”
timedatectl list-timezones |  egrep  -o “America/N.*”

5.在Linux中设置本地时区,使用set-timezone开关:

timedatectl set-timezone “Asia/shagnhai”

6.可以使用timedatectl命令设置系统的日期和时间:

timedatectl set-time 15:58:30 #只设置时间的话可以使用set-time开关以及HH:MM:SS(小时,分,秒)的时间格式。

7.只设置日期的话可以使用set-time开关以及YY:MM:DD(年,月,日)的日期格式。

timedatectl set-time 20151120

8.设置日期和时间:

timedatectl set-time ‘16:10:40 2015-11-20‘

9.设置硬件时钟为UTC可以使用 set-local-rtc boolean-value选:

timedatectl | grep local    #首先确定硬件时钟是否设置为本地时区:
timedatectl set-local-rtc 1  #将硬件时钟设置为本地时区:
timedatectl set-local-rtc 0  #将硬件时钟设置为UTC:

touch创建新的空文件

选项

-a:或--time=atime或--time=access或--time=use  只更改存取时间;
-c:或--no-create  不建立任何文件;
-d:<时间日期> 使用指定的日期时间,而非现在的时间;
-f:此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题;
-m:或--time=mtime或--time=modify  只更该变动时间;
-r:<参考文件或目录>  把指定文件或目录的日期时间,统统设成和参考文件或目录的日期时间相同;
-t:<日期时间>  使用指定的日期时间,而非现在的时间;

touch -c -t 05061803 test.php     #将档案时间改为,5月6日18点3分
touch -r abc.php test.php         #将test.php档案改成跟abc.php一样
touch -d "2 days ago" test.php   #将test.php日期修改为2天以前

type显示指定命令的类型

命令类型:

alias:别名。
keyword:关键字
Shell保留字。
function:函数
Shell函数。
builtin:内建命令
Shell内建命令。
file:文件,磁盘文件外部命令。
unfound:没有找到。

语法

type(选项)(参数)

选项

-t:输出“file”、“alias”或者“builtin”,分别表示给定的指令为“外部指令”、“命令别名”或者“内部指令”;
-p:如果给出的指令为外部指令,则显示其绝对路径;
-a:在环境变量“PATH”指定的路径中,显示给定指令的信息,包括命令别名。

tty显示连接到当前标准输入的终端设备文件名

uname显示Linux系统信息

补充说明

uname命令 用于打印当前系统相关信息(内核版本号、硬件架构、主机名称和操作系统类型等)。

语法

uname(选项)

选项

-a或--all:显示全部的信息;
-m或--machine:显示电脑类型;
-n或-nodename:显示在网络上的主机名称;
-r或--release:显示操作系统的发行编号;
-s或--sysname:显示操作系统名称;
-v:显示操作系统的版本;
-p或--processor:输出处理器类型或"unknown";
-i或--hardware-platform:输出硬件平台或"unknown";
-o或--operating-system:输出操作系统名称;
--help:显示帮助;
--version:显示版本信息。

who显示目前登录系统的用户信息

语法

who(选项)(参数)

选项

-H或--heading: 显示各栏位的标题信息列;
-i或-u或--idle:显示闲置时间,若该用户在前一分钟之内有进行任何动作,将标示成"."号,如  果该用户已超过24小时没有任何动作,则标示出"old"字符串;
-m: 此参数的效果和指定"am i"字符串相同;
-q或--count: 只显示登入系统的帐号名称和总人数;
-s:此参数将忽略不予处理,仅负责解决who指令其他版本的兼容性问题;
-w或-T或--mesg或--message或--writable:显示用户的信息状态栏;
--help: 在线帮助;
--version:显示版本信息。

which查找并显示给定命令的绝对路径

补充说明

  which命令 用于查找并显示给定命令的绝对路径,环境变量PATH中保存了查找命令时需要遍历的目录。which指令会在环境变量$PATH设置的目录里查找符合条件的文件。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。which 默认是找 PATH 内所规范的目录

语法

which(选项)(参数)

选项

-n<文件名长度>:制定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名;
-p<文件名长度>:与-n参数相同,但此处的<文件名长度>包含了文件的路径;
-w:指定输出时栏位的宽度;
-V:显示版本信息。

whereis查找二进制程序、代码等相关文件路径

补充说明

  whereis命令 用来定位指令的二进制程序、源代码文件和man手册页等相关文件的路径。
  whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。
  和find相比,whereis查找的速度非常快,这是因为linux系统会将 系统内的所有文件都记录在一个数据库文件中,当使用whereis和下面即将介绍的locate时,会从数据库中查找数据,而不是像find命令那样,通 过遍历硬盘来查找,效率自然会很高。
  但是该数据库文件并不是实时更新,默认情况下时一星期更新一次,因此,我们在用whereis和locate 查找文件时,有时会找到已经被删除的数据,或者刚刚建立文件,却无法查找到,原因就是因为数据库文件没有被更新。

语法

whereis(选项)(参数)

选项

-b:只查找二进制文件;
-B<目录>:只在设置的目录下查找二进制文件;
-f:不显示文件名前的路径名称;
-m:只查找说明文件;
-M<目录>:只在设置的目录下查找说明文件;
-s:只查找原始代码文件;
-S<目录>只在设置的目录下查找原始代码文件;
-u:查找不包含指定类型的文件。

参数

指令名:要查找的二进制程序、源文件和man手册页的指令名。

whatis

  whatis是用于查询一个命令执行什么功能whatis命令在用catman -w命令创建的数据库中查找command参数指定的命令、系统调用、库函数或特殊文件名。whatis命令显示手册部分的页眉行。然后可以发出man命令以获取附加的信息。
  whatis命令等同于使用man -f命令。

who am i打印当前有效的用户名称

以上是关于学习Linux第一周所有命令总结的主要内容,如果未能解决你的问题,请参考以下文章

嵌入式第一周学习总结6班06号王奕群

Linux运维学习第一周总结

20145339《信息安全系统设计基础》第一周学习总结

《JAVA程序设计》第一周学习总结

《嵌入式设计》第一周学习总结

运维第一周总结