Linux命令速成

Linux

一、Linux要点
  • 要在一个命令行上输入多条命令,可使用分号来分隔命令。比如 cd /etc; ls –l。

  • 反斜杠“\”将一个较长的命令分成多行表达,换行后,shell自动显示提示符“>”,表示正在输入一个长命令,此时可继续在新行上输入命令的后续部分。

  • Linux命令由”命令+选项+参数“组成。

  • 超级用示户的提符是#;一般用户的提示符是$。

  • Linux命令区分大小写

二、基础命令
  • 注销:logout、ctrl+d、exit

  • 关机和重启:–shutdown、halt、reboot、init

  • 更改密码:passwd

  • 显示系统文档中的man页内容:man passwd

  • 是一个基于菜单的超文本系统:info passwd

  • 用于查看当前登录到系统的用户信息:who

  • 显示正在使用的Linux系统信息:uname

  • 显示或设置系统的时间:date [+%adDhHjmMrSTwWy]

  • 在屏幕上输出日历信息:cal [month] [year]

  • 用于回显输入内容:echo strings

  • 清除shell窗口中的内容:clear

  • 切换到其他用户:su

  • 退回到原来用户:exit

三、Linux文件系统
  • shell是命令解释器;shell是用户与操作系统内核打交道的接口;shell实际是一种独立于内核的软件;Linux默认使用Bash。

  • Linux文件系统采用树形结构,从根目录(/)开始。

  • Linux允许众多不同类型的文件系统共存,并支持跨文件系统的操作,这是由于虚拟文件系统(VirtualFile System,简称VFS)的存在。虚拟文件系统是Linux内核中的一个“软件层”,用于给“用户空间的程序”提供文件系统接口。

3.1、根文件系统
  • /bin:存放二进制可执行文件

  • /sbin:存放系统管理员的系统管理程序

  • /home:普通用户的宿主(家)目录

  • /lib:动态链接共享库文件

  • /etc:存放系统管理时要用到的各种配置文件

  • /dev:存放设备的文件名(并不是存放设备的驱动程序)

  • /usr:包含所有的用户程序(/usr/bin)、库文件(/usr/lib)、文档(/usr/share/doc)等,是占用空间最大的目录

  • /proc:虚拟目录,该目录中的文件是当前内存中的一个映射

  • /root:系统管理员的主目录

  • /var:存放系统产生的经常变化文件

  • /mnt:这个目录在一般情况下也是空的。可以临时将别的文件系统挂载在这个目录下

3.2、EXT文件系统
  • ext是第一个专门为Linux设计的文件系统(虚拟文件系统)

  • EXT3特点:高可用性、数据的完整性、文件系统的速度、数据转换、多种日志模式

  • EXT3三种日志模式:Journal模式、Ordered模式、写回(Writeback)模式

四、Linux文件系统操作命令
  • 显示目录内容的命令:ls

  • 切换工作目录命令:cd

  • 显示工作目录命令:pwd

  • 创建目录命令:mkdir

    -m或--mode=MODE:对新建目录设置存取权限。

    -p 或--parents:若所建目录的上层目录不存在,会一并建立。

  • 删除目录命令:rmdir

    -p或--parents,删除指定目录后,若该目录的上层目录已变成空目录,则其一并删除。

  • 显示文件内容命令:cat -b或--number-nonblank:从1开始对所有非空输出行进行编号。 -n或--number:从1开始对所有输出行编号。 -s或--squeeze-blank:将连续两行以上的空白行合并成一行空白行。 提示:命令选项可以用长格式(用--作为前缀),也可以用短格式(用-作为前缀)

  • 文件内容统计命令:wc

    -c或--bytes:统计字节数。 q -m或--chars:统计字符数。 q -l或--lines:统计行数。 q -w或--words:统计字数。字是由空格字符区分开的最大字符串

  • 显示文件内容命令:more

    -num:指定一个整数,表示一屏显示多少行。 -d:在每屏底部显示提示信息,包括当前显示的百分 比,按键提示等。 +/pattern:定义一字符串,在文件中查找该字符串,从该字符串后开始显示。

    (1)Space键 :默认显示文本的下一屏内容。 (2)Enter键:默认显示文本的下一行内容。 (3)d键或CTRL+D:向下显示文本半屏,默认为11行。 (4)b键或CTRL+B:默认显示文本的上一屏内容。 (5)q or Q or INTERRUPT键:退出more命令。

  • 显示文件内容命令:less

    -m或--long-prompt:显示读取文件的百分比。

    -i或--ignore-case:搜索时忽略大小写,除非搜索串中包含大写字母。

  • 显示文件内容命令:head

    -c或--bytes=num:显示文件前面num个字节。 -n或--lines=num:显示文件前面num行,不指定此参数显示前10行。

  • 显示文件内容命令:tail

    -c或--bytes=num:显示文件最后面num个字节。 -n或--lines=num:显示文件最后面的num行,不指定此参数显示10行。

  • 文本字符替换命令:tr

    格式:tr [原始字符] [目标字符]

  • 排序命令:sort

    d或--dictionary-order:按字典顺序排序。

    f或--ignore-case:忽略字母大小写。

    r或--reverse:按逆序输出排序结果,默认排序输出时按升序的。

    -o 文件名:将排序输出写到输出文件中而不是标准输出

    将当前目录下的文件fruits按逆序排序后结果输出到文件fruitsort中。

  • 去掉重复行命令:uniq

    uniq [选项]... [输入文件 [输出文件]]

  • 比较内容命令:comm

    格式:comm [选项]… 文件1 文件2

  • 比较内容命令:diff

    格式:diff [选项] … 文件列表

  • 创建空文件命令:touch

    -a: 仅修改“读取时间”(atime) -m: 仅修改“修改时间”(mtime) -d: 同时修改atime和mtime

  • 复制文件命令:cp

    格式:cp [选项] 源文件或目录 目标文件或目录

    -a 或--archive:等同于 –dpR。 q -d:复制符号链接时,把目标文件或目录也建立为符号链接, 并指向与源文件或目录链接的原始文件或目录。 q -f 或--force:强行复制文件或目录 q -i或--interactive:覆盖目标文件前需要确认。 q -n或--no-clobber:不覆盖已存在的目标文件。 q -p:复制源文件或目录内容的同时也复制文件属性 q -R,-r 或--recursive:递归复制目录,将源目录下所有文件及子目录都复制到目标位置。

  • 删除文件命令:rm

    -f 或 --force:强制删除文件或目录。 -i 或--interactive:删除文件或目录前提示要用户确认。 -r,-R, 或--recursive:递归删除指定目录及其下属各级子目录和相应的文件。

  • 移动文件命令:mv

    -i或--interactive:覆盖文件前需要确认。 -f 或--force:若目标文件或目录已存在,直接覆盖。 -n或--no-clobber:不覆盖已存在的文件。 -u 或--update:移动或更改文件名时,若目标文件已存在,且文件日期比源文件新,则不覆盖目标文件。

五、shell进阶命令
  • 文本搜索命令:grep

    格式:grep [选项] 查找模式 [文件…]

    -i或--ignore-case:忽略字符大小写。 -n 或--line-number:在显示包含匹配字符串的行之前,标示出该行行号。 -v:反转查找,显示不包含匹配字符串的文本行。

    -c或--count:计算符合匹配字符串的行数。

  • 输入/输出重定向

    输出重定向的一般形式为:command [参数] > 文件名

    “>>”(追加)重定向符

    cat 实现文件合并:

    从键盘输入信息到当前目录下的文件testfile4中:Ctrl+D 存盘退出

    错误重定向“2>”:可以把命令行出错的信息保存到指定的文件中去:

    避免文件重写:Shell提供了一种称为noclobber的功能,该功能可防止 重定向时不经意地重写了已存在的文件

    输入重定向的一般形式为:command [参数] < 文件名

    “<<”为此处操作符(here operator),该操作符在从标准输入中读入,读到指定的字符串时,便停止读取,然后将所读的内容输出。

  • 管道

六、shell编程
6.1、shell基础
  • 执行过程

    内置在其源代码中的命令,而不是文件系统中的可执行文件,执行速度快。不同的Shell内置命令有所不同。

  • type 来确定一个命令是否是内置命令:

  • 命令的执行会启动一个新进程,shell进程睡眠,当命令执行完毕,shell被唤醒,显示提示符,等待下一个命令的输入。

  • 特殊字符:

    由单引号括起来的字符都作为普通字符出现。

    由双引号括起来的字符,除“$”、“\”、“’”、和“””这几个字符仍是特殊字符并保留其特殊功能外,其余字符作为普通字符对待。

    $:引用变量的值

    \:是转义字符

    反引号(`)括起来的字符串被shell解释为命令,在执行时,shell首先执行该命令,并以它的输出结果取代整个反引号(包括两个反引号)部分。

    以字符“#”开头的行表示注释行。

  • 别名

    不加参数的alias命令执行结果将显示当前系统中定义的所有命令别名。

  • 历史命令

    若想重复执行命令历史中指定的命令,可使用如下格式:!命令编号

6.2、shell脚本
  • 什么是shell脚本

    1、用shell命令编写的文件

    2、shell不需要编译链接成可执行的二进制程序

    3、shell是按行一条接着一条地解释并执行shell脚本中的命令

  • 执行方式

    1、为脚本文件加上可执行权限,然后在命令行直接输入shell脚本文件名执行

    2、sh shell脚本名

    3、. shell脚本名

  • 编写方式

    基于bash的脚本编程,开头必须有#! /bin/bash

6.3、shell变量

七、用户管理
  • 用户三种类型

    超级用户:root (可以对系统做任何操作) 普通用户:由root创建的用户 特殊用户:与系统和服务相关的用户。注意:默认情况下特殊用户无法登录。

  • 管理内容

    (1)用户账号的增加、修改和删除。 (2)组账号的增加、修改和删除。 (3)用户账号属性信息的修改,包括登录shell,用主目录,用户注释信息等。 (4)组账号属性信息的修改,包括组内用户、组ID等。 (5)用户和组账号密码的设置与修改,包括密码有效期、更改密码等。

  • 管理方法

    (1)通过GUI方式管理(不介绍) (2)通过修改配置文件管理(了解) (3)通过系统管理命令管理(重点)

  • 配置文件

    (1)/etc/passwd文件:存放用户账号相关的信息

    (2)/etc/shadow文件:存放用户的加密口令,只有root用户可以读取。(3)/etc/group文件:存放用户组相关的信息

    (4)/etc/gshadow文件:存放用户组口令, 只有root用户可以读取。

  • 用户和组管理相关命令 (1)useradd:添加用户

    useradd [options] username 示例:# useradd lisi -d dir: 指定用户主目录 -u uid: 指定用户ID -g group:已存在一个组,新增用户要加入的主要组 -G group:已存在一个组,新增用户要加入的附加组 -c comment :用户的注释信息

    (2)usermod:改变用户属性

    usermod [-options] [arguments] username -d dir: 修改用户主目录 -u uid: 修改用户ID -g group:已存在一个组,修改用户要加入的主要组 -G group:已存在一个组,修改用户要加入的附加组 -s Shell :修改用户登录shell -e expire:修改用户的过期日期 -L 锁定用户密码,使密码无效,用户不能登录 -U 解除密码锁定

    (3)userdel:删除用户

    userdel [-r] username 选项“-r”是用来删除用户主目录以及目录中所有文件,不加“-r” ,则仅除用户账号,还必须手工清除用户的主目录。

    (4)groupadd:添加组 (5)groupmod:修改组属性 (6)groupdel:删除组 (7)groups:查看自己属于哪个组

    groupadd[-g gid] groupname, q groupmod[-g gid] [-n newgroupname] groupname q groupdel groupname q groups 查看自己属于哪个组

你可能感兴趣的:(linux,服务器,运维)