CentOS系列之shell

  • shell初步
    • 基础命令
      • 1列出文件和文件夹ls
      • 2显示当前目录的路径pwd
      • 3切换目录cd
      • 4将文件时间修改为当前时间touch
      • 5创建新的空文件touch
      • 6创建新目录mkdir
      • 7复制文件cp oldPath newPath
      • 8mv命令用来对文件或目录重新命名或者将文件从一个目录移到另一个目录中
      • 9rm命令
      • 10man命令
      • 11runlevel命令
      • 12chown命令
      • 13chmod命令
    • 2关机重启注销命令
      • 1shutdown 命令
      • 2halt命令
      • 3 PowerOff命令
      • 4reboot命令
    • 3解压和打包
      • 1tar命令
      • 2gzip命令
    • 更新中

shell初步

在Linux系统中,一切都是文件。在Linux系统中,一切都是文件。与Windows和Mac OS不同,Linux对于文件名是区分大小写的。当为文件和目录命名时,每种操作系统都会有一些禁止使用的字
符。例如,在Mac OS中不允许使用冒号(:);而Windows中则不能使
用反斜杠字符(\)。Linux中也有一些禁止使用的字符。

1.基础命令

1.1、列出文件和文件夹(ls)

ls:列出目录中的文件和子目录。

  • 使用通配符列出文件夹的内容
# 查询出后缀名为.tgz的文件
[root@VM_140_90_centos ~]# ls *.tgz
Python-3.6.4.tgz
  • ls -R: 查看子文件夹中的文件列表(R参数)
  • ls -l (ll):以单独一列显示内容
  • ls -m:一种显示格式选择就是 -m 选项(或 –format=commas )
  • ls -a:查看隐藏的文件和文件夹
  • ls -F:显示文件的类型
  • ls -color:用不同的颜色显示内容
  • ls -r:以相反的顺序显示列表内容
  • ls -X:按文件的扩展名排序
  • ls -t:按日期和时间排序
  • ls -S:按文件大小进行排序
  • ls -h:用 K、M 和 G 显示文件大小

1.2、显示当前目录的路径(pwd)

pwd 命令显示当前目录(或工作目录)的完整的绝对路径。

1.3、切换目录(cd)

  • cd ~:切换到 home 目录
  • cd -:切换到以前的目录

1.4、将文件时间修改为当前时间(touch)

只有获得修改文件的权限,才可以对文件使用 touch 命令,修
改它的时间。否则, touch 命令会运行失败。
- 将文件时间修改为想要的任意时间

$ ls -l
-rw-r--r-- 239 2005-10-19 14:00 wireless.log
$ touch -t 197002160701 wireless.log
$ ls -l
-rw-r--r-- 239 1970-02-16 07:01 wireless.log
$ touch -t 9212310000 wireless.log
$ls -l
-rw-r--r-- 239 1992-12-31 00:00 wireless.log

1.5、创建新的空文件(touch)

它将使用你指定的文件名来生成一个空文件。

1.6、创建新目录(mkdir)

touch 命令能够创建空文件,但是如何创建新文件夹呢?使用mkdir 命令就能解决这个问题。

  • mkdir -p:递归创建子目录
  • 看看 mkdir 到底做了什么
[root@VM_140_90_centos public]# mkdir aaa -v
mkdir: created directory `aaa'

1.7、复制文件(cp oldPath newPath)

复制文件是计算机用户经常做的工作之一,更不用说OS了。Linuxshell使用的各命令中,最棒的命令之一就是 cp ,它用于复制文件和目录。使用 cp 命令最简单的方法就是输入命令,后面再输入你想复制的文件,然后是被复制文件的新名称。可以把该命令的结构看作是“ cp正在从哪复制的文件 正在复制到哪的文”。这种关系的另一种常见表达方式是“ cp 源文件目标文件”。- 使用通配符复制文件

  • cp *:使用通配符复制文件,复制所有文件
  • cp -v:复制文件时显示执行过程
  • cp -i:防止复制时覆盖重要的文件
  • cp -R:复制目录
  • cp -a:复制文件到其他目录以作为完整的备份

1.8、mv命令用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录中。

如果目标文件是到某一目录文件的路径,源文件会被移到此目录下,且文件名不变。
如果目标文件不是目录文件,则源文件名(只能有一个)会变为此目标文件名,并覆盖己存在的同名文件。如果源文件和目标文件在同一个目录下,mv的作用就是改文件名。当目标文件是目录文件时,源文件或目录参数可以有多个,则所有的源文件都会被移至目标文件中。所有移到该目录下的文件都将保留以前的文件名。

  • 语法

    mv(选项)(参数)

  • 选项

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

  • 参数

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

    将文件ex3改名为new1
    mv ex3 new1

1.9、rm命令

rm命令可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉。对于链接文件,只是删除整个链接文件,而原有文件保持不变。

  • 语法

    rm (选项)(参数)

  • 选项

    -d:直接把欲删除的目录的硬连接数据删除成0,删除该目录;
    -f:强制删除文件或目录;
    -i:删除已有文件或目录之前先询问用户;
    -r或-R:递归处理,将指定目录下的所有文件与子目录一并处理;
    –preserve-root:不对根目录进行递归操作;
    -v:显示指令的详细执行过程。

  • 参数

    文件:指定被删除的文件列表,如果参数中含有目录,则必须加上-r或者-R选项。

  • 实例

    rm -i test example
    Remove test ?n(不删除文件test)
    Remove example ?y(删除文件example)

1.10、man命令

man命令是Linux下的帮助指令,通过man指令可以查看Linux中的指令帮助、配置文件帮助和编程帮助等信息。

  • 语法

    man(选项)(参数)

  • 选项

    -a:在所有的man帮助手册中搜索;
    -f:等价于whatis指令,显示给定关键字的简短描述信息;
    -P:指定内容时使用分页程序;
    -M:指定man手册搜索的路径。

  • 参数

    • 数字:指定从哪本man手册中搜索帮助;
    • 关键字:指定要搜索帮助的关键字。

1.11、runlevel命令

runlevel命令用于打印当前Linux系统的运行等级。

  • 在大多数的linux发行版本中,通常有8个runlevel:
    0 停机
    1 单用户模式
    2 多用户,没有 NFS
    3 完全多用户模式
    4 没有用到
    5 图形界面
    6 重新启动

1.12、chown命令

chown命令改变某个文件或目录的所有者和所属的组,该命令可以向某个用户授权,使该用户变成指定文件的所有者或者改变文件所属的组。

  • 语法

    chown(选项)(参数)

  • 选项

    -c或——changes:效果类似“-v”参数,但仅回报更改的部分;
    -f或–quite或——silent:不显示错误信息;
    -h或–no-dereference:只对符号连接的文件作修改,而不更改其他任何相关文件;
    -R或——recursive:递归处理,将指定目录下的所有文件及子目录一并处理;
    -v或——version:显示指令执行过程;
    –dereference:效果和“-h”参数相同;
    –help:在线帮助;
    –reference=<参考文件或目录>:把指定文件或目录的拥有者与所属群组全部设成和参考文件或目录的拥有者与所属群组相同;
    –version:显示版本信息。

  • 参数

    用户:组:指定所有者和所属工作组。当省略“:组”,仅改变文件所有者;
    文件:指定要改变所有者和工作组的文件列表。支持多个文件和目标,支持shell通配符。

  • 实例

    将目录/usr/meng及其下面的所有文件、子目录的文件主改成 liu:
    chown -R liu /usr/meng

1.13、chmod命令

chmod命令用来变更文件或目录的权限。

  • 权限范围的表示法如下:

    u User,即文件或目录的拥有者;
    g Group,即文件或目录的所属群组;
    o Other,除了文件或目录拥有者或所属群组之外,其他用户皆属于这个范围;
    a All,即全部的用户,包含拥有者,所属群组以及其他用户;
    r 读取权限,数字代号为“4”;
    w 写入权限,数字代号为“2”;
    x 执行或切换权限,数字代号为“1”;
    -不具任何权限,数字代号为“0”;
    s 特殊功能说明:变更文件或目录的权限。

  • 语法

    chmod(选项)(参数)

  • 选项

    -c或——changes:效果类似“-v”参数,但仅回报更改的部分;
    -f或–quiet或——silent:不显示错误信息;
    -R或——recursive:递归处理,将指令目录下的所有文件及子目录一并处理;
    -v或——verbose:显示指令执行过程;
    –reference=<参考文件或目录>:把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同;
    <权限范围>+<权限设置>:开启权限范围的文件或目录的该选项权限设置;
    <权限范围>-<权限设置>:关闭权限范围的文件或目录的该选项权限设置;
    <权限范围>=<权限设置>:指定权限范围的文件或目录的该选项权限设置;

  • 参数

    权限模式:指定文件的权限模式;
    文件:要改变权限的文件。

  • 实例

    chown user:market f01  //把文件f01给uesr,添加到market组

2、关机重启注销命令

2.1、shutdown 命令

shutdown命令用来系统关机命令。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”

2.2、halt命令

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 //关闭系统,但不留下纪录。

2.3、 PowerOff命令

poweroff命令用来关闭计算机操作系统并且切断系统电源。

  • 语法

    poweroff(选项)

  • 选项

    -n:关闭操作系统时不执行sync操作;
    -w:不真正关闭操作系统,仅在日志文件“/var/log/wtmp”中;
    -d:关闭操作系统时,不将操作写入日志文件“/var/log/wtmp”中添加相应的记录;
    -f:强制关闭操作系统;
    -i:关闭操作系统之前关闭所有的网络接口;
    -h:关闭操作系统之前将系统中所有的硬件设置为备用模式。

  • 实例

    如果确认系统中已经没有用户存在且所有数据都已保存,需要立即关闭系统,可以使用poweroff命令。

  • 使用poweroff立即关闭系统:poweroff

2.4、reboot命令

reboot命令用来重新启动正在运行的Linux操作系统。

  • 语法

    reboot(选项)

  • 选项

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

  • 实例

    reboot //重开机。
    reboot -w //做个重开机的模拟(只有纪录并不会真的重开机)。

3、解压和打包

3.1、tar命令

tar命令可以为linux的文件和目录创建档案。利用tar,可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件。tar最初被用来在磁带上创建档案,现在,用户可以在任何设备上创建档案。利用tar命令,可以把一大堆的文件和目录全部打包成一个文件,这对于备份文件或将几个文件组合成为一个文件以便于网络传输是非常有用的。

  • 语法

    tar(选项)(参数)

  • 选项

    -A或–catenate:新增文件到以存在的备份文件;
    -B:设置区块大小;
    -c或–create:建立新的备份文件;
    -C <目录>:这个选项用在解压缩,若要在特定目录解压缩,可以使用这个选项。
    -d:记录文件的差别;
    -x或–extract或–get:从备份文件中还原文件;
    -t或–list:列出备份文件的内容;
    -z或–gzip或–ungzip:通过gzip指令处理备份文件;
    -Z或–compress或–uncompress:通过compress指令处理备份文件;
    -f<备份文件>或–file=<备份文件>:指定备份文件;
    -v或–verbose:显示指令执行过程;
    -r:添加文件到已经压缩的文件;
    -u:添加改变了和现有的文件到已经存在的压缩文件;
    -j:支持bzip2解压文件;
    -v:显示操作过程;
    -l:文件系统边界设置;
    -k:保留原有文件不覆盖;
    -m:保留文件不被覆盖;
    -w:确认压缩文件的正确性;
    -p或–same-permissions:用原来的文件权限还原文件;
    -P或–absolute-names:文件名使用绝对名称,不移除文件名称前的“/”号;
    -N <日期格式> 或 –newer=<日期时间>:只将较指定日期更新的文件保存到备份文件里;
    –exclude=<范本样式>:排除符合范本样式的文件。

  • 参数

    文件或目录:指定要打包的文件或目录列表。

  • 实例

    • 将文件全部打包成tar包

      tar -cvf log.tar log2012.log 仅打包,不压缩!
      tar -zcvf log.tar.gz log2012.log 打包后,以 gzip 压缩
      tar -jcvf log.tar.bz2 log2012.log 打包后,以 bzip2 压缩

    • 查阅上述tar包内有哪些文件:

      tar -ztvf log.tar.gz

      注:由于我们使用 gzip 压缩的log.tar.gz,所以要查阅log.tar.gz包内的文件时,就得要加上z这个选项了。

    • 将tar包解压缩:

      tar -zxvf /opt/soft/test/log.tar.gz

    • 只将tar内的部分文件解压出来:

      tar -zxvf /opt/soft/test/log30.tar.gz log2013.log

    • 文件备份下来,并且保存其权限:

      tar -zxvf /opt/soft/test/log30.tar.gz log2013.log

    • 在文件夹当中,比某个日期新的文件才备份:

      tar -zcvpf log31.tar.gz log2014.log log2015.log log2016.log

    • 备份文件夹内容是排除部分文件:

      tar -N “2012/11/13” -zcvf log17.tar.gz test

    • 其实最简单的使用 tar 就只要记忆底下的方式即可:

      压 缩:tar -jcv -f filename.tar.bz2 要被压缩的文件或目录名称
      查 询:tar -jtv -f filename.tar.bz2
      解压缩:tar -jxv -f filename.tar.bz2 -C 欲解压缩的目录

注:首先要弄清两个概念:打包和压缩。打包是指将一大堆文件或目录变成一个总的文件;压缩则是将一个大的文件通过一些压缩算法变成一个小文件。

3.2、gzip命令

gzip命令用来压缩文件。gzip是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多处“.gz”扩展名。

  • 语法

    gzip(选项)(参数)

  • 选项

    -a或——ascii:使用ASCII文字模式;
    -d或–decompress或—-uncompress:解开压缩文件;
    -f或——force:强行压缩文件。不理会文件名称或硬连接是否存在以及该文件是否为符号连接;
    -h或——help:在线帮助;
    -l或——list:列出压缩文件的相关信息;
    -L或——license:显示版本与版权信息;
    -n或–no-name:压缩文件时,不保存原来的文件名称及时间戳记;
    -N或——name:压缩文件时,保存原来的文件名称及时间戳记;
    -q或——quiet:不显示警告信息;
    -r或——recursive:递归处理,将指定目录下的所有文件及子目录一并处理;
    -S或<压缩字尾字符串>或—-suffix<压缩字尾字符串>:更改压缩字尾字符串;
    -t或——test:测试压缩文件是否正确无误;
    -v或——verbose:显示指令执行过程;
    -V或——version:显示版本信息;
    -<压缩效率>:压缩效率是一个介于1~9的数值,预设值为“6”,指定愈大的数值,压缩效率就会愈高;
    –best:此参数的效果和指定“-9”参数相同;
    –fast:此参数的效果和指定“-1”参数相同。

  • 参数

    文件列表:指定要压缩的文件列表。

  • 实例

    • 把test6目录下的每个文件压缩成.gz文件

      gzip *

    • 把上例中每个压缩的文件解压,并列出详细的信息:

      gzip -dv *

    • 详细显示例1中每个压缩的文件的信息,并不解压:

      gzip -l *

    • 压缩一个tar备份文件,此时压缩文件的扩展名为.tar.gz:

      gzip -r log.tar

    • 递归的压缩目录:

      gzip -rv test6

      注: 这样,所有test下面的文件都变成了.gz,目录依然存在只是目录里面的文件相应变成了.gz.这就是压缩,和打包不同。因为是对目录操作,所以需要加上-r选项,这样也可以对子目录进行递归了。

    • 递归地解压目录

      gzip -dr test6

更新中…

本博客全部是根据个人经验和参考http://man.linuxde.net/编写而成

你可能感兴趣的:(Linux)