Linux常用命令

Author:SimpleWu

Linux更多操作参考网站:http://www.runoob.com/linux/linux-tutorial.html

Linux远程连接

  • Linux一般作为服务器使用,而服务器一般在机房,你不可能在机房操作你的Linux。所以一般我们都是远程登录到我们的Linux服务器。
  • Linux是通过ssh实现远程登录的,默认的ssh端口是22
  • Windows上连接远程的软件有
    • SecureRT
    • Putty
    • SSH
    • XShell

安装Xshell

软件下载:http://xiazai.xshellcn.com/wm/Xshell6_wm.exe

下载后一路下一步安装即可。

Linux命令

  • Linux最强大的地方在于Linux是一个完全基于字符操作的操作系统,在Linux中所有的功能都可以通过命令来完成,Linux可视化的操作的页面只是给初学者使用的,Linux中真正的高手都是在字符页面下驰骋的。
  • Linux命令非常多,大概有将近4000个命令。
  • Lixux命令大概分为以下几类
    • 文件管理
    • 系统管理
    • 磁盘管理
    • 系统管理
    • 网络通讯
  • 命令搜索可参考http://man.linuxde.net/

Linux命令提示符

Linux命令提示符,首先我们需要先搞清楚Linux命令提示符表示的含义。

[root@localhost ~]# 
  • root:代表当前登录的用户名
  • localhost:代表当前登录的服务器主机名。
  • ~:代表当前目录,(用户主目录)
  • #:超级用户提示符,普通用户提示符是$

Linux命令格式

  • 命令  选项  参数

  • 注意:个别命令不遵循此格式。

  • 当有多个选项时,可以写在一起。例如-a –l ,可以些成-al

    [root@localhost ~]# ls -al
  • 简化选项和完整选项意义是完全一样的。例如:-a -all

基本操作

Linux的系统相关的操作:

  • shutdown –h now:立刻关机
  • shutdown –r now:立刻重启
  • reboot:立刻重启
  • logout:注销
  • clear:清屏

用户相关:

  • 查看当前用户:whoami

    [root@localhost ~]# whoami 
    root
  • su 用户名:切换到另一个用户

帮助命令

  • 由于Linux命令太多,有些时候容易忘记Linux的命令,可以调用Linux的帮助来查看命令的语法。
  • 帮助命令有以下几种:
    • man 命令:显示详细的命令帮助信息。
    • help 命令:显示命令帮助信息。
    • which 命令:显示命令所在的目录。
    • where 命令:显示命令的指令文件所在的位置。

目录常见操作

  • 我们知道Linux的目录结构为树形结构,最顶级目录为/,要对目录进行操作,首先我们要知道什么是相对路径,什么是绝对路径。
  • 绝对路径: 由根目录开始,例如:/home/user
  • 相对路径:
    • 路径的写法,不是由 / 写起,而是相对当前所在的目录开始。例如:由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成: cd ../man 这就是相对路径的写法。这里的../表示当前目录的上一级目录。
    • /:表示根目录
    • ~:表示当前家目录

目录相关的命令

看几个常见的处理目录的命令吧:

  • ls: 列出目录
  • cd:切换目录
  • pwd:显示目前的目录
  • mkdir:创建一个新的目录
  • rmdir:删除一个空的目录
  • rm: 移除文件或目录
  • cp: 复制文件或目录
  • mv:移动文件或目录

ls命令查看目录

  • 查看目录的命令有两个,一个ls,一个ll,ls以list方式浏览,ll以详情方式浏览。
  • ls可以添加参数
    • -a:表示显示所有文件,包括隐藏该文件。例:ls -a
    • -l:表示以详情方式显示,和ll功能一样。例:ls -l,ls -al
    • -r:表示以反序显示,默认以文件名称升序排列。ls -r
    • -t:将按时间顺序显示。ls –t
    • -lh:将文件大小的单位进行换算。
  • ls 可以查看指定的目录和支持模糊匹配。
    • ls -l /bin :以详情方式查看/bin目录下的文件。
    • ls –l /bin/a:以详情方式查看/bin目录下以a开头的文件。
    • ll /bin/*.txt:查看bin下以txt结尾的文件。

目录操作命令

  • pwd:显示当前目录

    [root@localhost ~]# pwd
    /root
  • cd(Change Directory):更改目录

    • cd 相对路径/绝对路径
    • cd ..:返回上一级
    • cd -:返回上一次所在的目录。
    • cd /:返回根目录
    • cd ~:返回家目录

mkdir创建新目录

  • 语法:mkdir [-mp] 目录名称

  • 参数说明:

    • -p:可以一次直接创建多层级目录
    • -m:配置文件的权限喔!直接配置,不需要看默认权限 (umask) 的脸色~
  • 举例:

    [root@localhost tmp]# mkdir test1
    [root@localhost tmp]# mkdir -p test2/1/2
    [root@localhost tmp]# 

rmdir删除空目录

  • 语法:rmdir [–p] 目录名称

  • 参数说明:-p:连同上一级目录[空目录]也一起删除。

  • 实例:

    [root@localhost tmp]# rmdir test1/
    [root@localhost tmp]# rmdir -p test2/1/2/
    [root@localhost tmp]# 
  • 如果目录不为空,则删除会失败,如果要删除非空目录,则使用rm命令进行删除。

    [root@localhost tmp]# rmdir test/
    rmdir: failed to remove `test/': Directory not empty

rm删除文件或子目录

  • 参数说明:

    • -f :就是 force 的意思,强制删除。
    • -i :互动模式,在删除前会询问使用者是否动作。
    • -r :递归删除,可以删除目录和文件。
  • 示例:

    [root@localhost tmp]# rm -r aaa
    rm: remove regular empty file `aaa'? y
    [root@localhost tmp]# rm -i aaa 
    rm: remove regular empty file `aaa'? n
  • rm –rf / Linux自杀命令绝对不能执行

cp复制文件

  • 语法
    • cp [-adfilpr] 来源 目标档
    • cp [options] source1 source2 source3 …. directory
  • 选项与参数:
    • -a:此选项通常在复制目录时使用,它保留链接、文件属性,并复制目录下的所有内容。其作用等于dpR参数组合。
    • -d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。
    • -f:覆盖已经存在的目标文件而不给出提示。
    • -i:与-f选项相反,在覆盖目标文件之前给出提示,要求用户确认是否覆盖,回答”y”时目标文件将被覆盖。
    • -p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
    • -r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
    • -l:不复制文件,只是生成链接文件。

移动或重新命名文件

  • 语法:
    • mv [-if] 来源 目标档
    • mv [options] source1 source2 source3 …. directory
命令格式 运行结果
mv 文件名 文件名 将源文件名改为目标文件名
mv 文件名 目录名 将文件移动到目标目录
mv 目录名 目录名 目标目录已存在,将源目录移动到目标目录;目标目录不存在则改名
mv 目录名 文件名 出错

链接命令

  • 链接分为软链接(symbolic link)和硬链接(hard link),硬链接的意思是一个档案可以有多个名称,而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置,类似window中的快捷方式。

  • 语法:ln [参数] [目标] [文件或目录]

  • 参数说明: -s:软链接,添加-s为创建软链接,不要则为硬链接。

    [root@localhost tmp]# ln -s a.txt bb.txt
  • 这里要注意:如果软链接的源文件和链接文件在同一个目录下,可以使用相对路径,但是如果不在同一个目录下,必须使用绝对路径。

软连接和硬链接的区别

软链接:

  • 软链接以路径的形式存在,类似Window操作系统中的快捷方式
  • 软链接的文件类型会被标识为l。
  • 当删除软链接原始文件,软链接将无法使用。
  • 软链接可以对一个不存在文件名进行链接。
  • 软链接可以对目录进行链接。
  • 软链接可以跨分区使用,硬链接不可以

硬连接

  • 硬链接,以文件副本形式存在,不占用实际空间。
  • 硬链接文件类型为普通文件类型。
  • 删除任何一个硬链接文件不会影响另一个文件。
  • 不允许给目录创建硬链接。
  • 硬链接跨分区使用。

推荐使用软链接,硬链接和原始文件区分太小,无法区分。

文件相关操作

Linux系统中使用以下命令来查看文件的内容:

  • cat 由第一行开始显示文件内容
  • tac 从最后一行开始显示,可以看出 tac 是 cat 的倒著写!
  • nl 显示的时候,顺道输出行号!
  • more 一页一页的显示文件内容
  • less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
  • head 只看头几行
  • tail 只看尾巴几行

cat与tac

  • cat由第一行显示文件内容,tac由最后一行显示文件内容。语法完全一致。

  • 语法:cat [AbEbTv]

    [root@localhost tmp]# cat a
    asdflasf
  • 选项与参数:

    • -A :相当於 -vET 的整合选项,可列出一些特殊字符而不是空白而已;
    • -b :列出行号,仅针对非空白行做行号显示,空白行不标行号!
    • -E :将结尾的断行字节 $ 显示出来;
    • -n :列印出行号,连同空白行也会有行号,与 -b 的选项不同;
    • -T :将 [tab] 按键以 ^I 显示出来;
    • -v :列出一些看不出来的特殊字符

more

  • more一页页翻动
  • 语法:more 文件名
  • 在程序运行时,可以按一下几个键:
    • enter:下翻一行
    • space:下翻一页
    • /字符串:指向下搜索指定的字符串
    • :f:立刻显示出档名以及目前显示的行数;
    • q:代表立刻离开 more ,不再显示该文件内容。
    • b 或 [ctrl]-b:代表往回翻页,不过这动作只对文件有用,对管线无用。

less

  • 翻页浏览
  • 语法:less 文件名
  • 在程序运行时,可以可以按一下几个键:
    • 空白键 :向下翻动一页;
    • [pagedown]:向下翻动一页;
    • [pageup] :向上翻动一页;
    • /字串 :向下搜寻『字串』的功能;
    • ?字串 :向上搜寻『字串』的功能;
    • n :重复前一个搜寻 (与 / 或 ? 有关!)
    • N :反向的重复前一个搜寻 (与 / 或 ? 有关!)
    • q :离开 less 这个程序;

head/tail

  • head取出文件前面几行,tail取后面几行

  • 语法:head [-n number] 文件

  • 参数说明:-n:后面的number表示取的行数。

  • 例:

    [root@localhost tmp]# head /etc/sudo.conf
    [root@localhost tmp]# head –n 20 /etc/sudo.conf
    [root@localhost tmp]# tail /etc/sudo.conf
    [root@localhost tmp]# tail –n 20 /etc/sudo.conf

文件基本属性

  • 使用ll命令或者ls -l浏览文件信息时,会显示文件详情。
  • 其中drwxrwxr-x表示文件的类型和权限。第一个字母表示文件类型

当为[ d ]则是目录。

当为[ – ]则是文件;

若是[ l ]则表示为链接文档(link file);

若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);

若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。

chmod修改权限

  • 语法:

chmod[-R] xyz 文件或目录

  • 参数说明:

-R:进行递归变更,修改该目录下所有的子目录和文件。
xyz:对应前面提到的数字权限,比如770。

  • 示例:

    chmod 751 mydir     # 将mydir文件的权限改为drwxr-x--x

更改文件所属组

chgrp:更改文件所属组

  • 语法:

chgrp [-R] 用户组名称 文件名

  • 参数:

-R表示递归更改某个目录文件的属性,如果加上这个参数,表示该文件夹下的所有文件都会同时被修改。

  • 示例:

    chgrp root mydir   #将mydir的用户组改为root。

更改文件所有者

chown:更改文件所有者

  • 语法:

chown [-R] 所有者 文件名

  • 参数:

-R表示递归更改某个目录文件的属性,如果加上这个参数,表示该文件夹下的所有文件都会同时被修改。

  • 示例:

    chown root mydir  # 将mydir的所有者改为root用户。

vi/vim 文本编辑器

  • Linux中内建了一个vim文本编辑器,通过这个编辑器,可以在Linux中编辑文件。
  • vim分为三种模式:

命令模式:用户刚进入vim就是命令模式。

输入模式:在命令模式输入i进入输入模式。

底部命令模式:在命令模式下按:进入底部命令模式。

命令模式

  • 此状态下敲击键盘动作会被Vim识别为命令,而非输入字符。比如我们此时按下i,并不会输入一个字符,i被当作了一个命令。
  • 几个常见的命令:

i:切换到输入模式,以输入字符。

x:删除当前光标所在处的字符。

::切换到底部命令模式,在最后一行输入字符。

  • 命令模式只有一些最基本的命令,因此仍要依靠底线命令模式输入更多命令。

输入模式

在此模式下,对文件内容进行编辑。在输入模式下可以使用以下按键:

  • 字符按键以及Shift组合,输入字符
  • ENTER,回车键,换行
  • BACK SPACE,退格键,删除光标前一个字符
  • DEL,删除键,删除光标后一个字符
  • 方向键,在文本中移动光标
  • HOME/END,移动光标到行首/行尾
  • Page Up/Page Down,上/下翻页
  • Insert,切换光标为输入/替换模式,光标将变成竖线/下划线
  • ESC,退出输入模式,切换到命令模式

底部命令模式

  • 在命令模式下按下:(英文冒号)就进入了底线命令模式。
  • 常用底部命令:
    • :w:保存
    • :q:退出,:wq保存并退出。
    • :q!:强制退出,不保存。
    • :e file:打开文件

文件搜索命令

经常我们需要在系统中检索我们需要的文件,在windows中可以使用F3进行搜索。在Linux中提供了多种文件搜索方式。

  • locate
  • find
  • grep

locate

  • 语法:locate文件名

  • locate是在后台数据库中,按文件名进行检索,速度非常快。但是最新更新的数据不一定能搜索出来。

  • locate的后台数据库:/var/lib/mlocate。

  • locate数据库默认一天已更新,也看使用命令手动更新更新数据库:updatedb,需要root权限。

    [root@localhost znsd]# locate test
    locate: can not stat () `/var/lib/mlocate/mlocate.db': No such file or directory 
    [root@localhost znsd]# updatedb 
    [root@localhost znsd]# locate test
  • 如果执行locate出现locate: can not stat () /var/lib/mlocate/mlocate.db': No such file or directory 错误,请执行updatedb命令更新linux检索索引。

locate的配置文件

  • /etc/updatedb.conf文件是locate命令搜索的配置文件,在这个文件中,定义了locate搜索的规则。
  • PRUNE_BIND_MOUNTS=“yes”:表示以下配置是否有效。
  • PRUNEFS=“”:表示搜索时,不搜索的文件系统。
  • PRUNENAMES=“”:表示搜索时,不搜索的文件类型。
  • PRUNEPATHS=“”:表示搜索时,不搜索的文件路径。

find

  • 语法:

find [搜索范围][搜索条件] 文件名

  • find默认会按照完整文件名进行搜索,如果要进行模糊搜索,可以使用通配符,Linux中的通配符常用的有三种

*:匹配任意多个字符

?:匹配任意一个字符

[ ]:匹配任意一个中括号中的字符。

find /home –name a.txt             # 在/home目录下按照名称搜索a.txt
find /home –iname a.txt            # -iname指不区分文件名大小写
find /etc -name *.conf             # 在/etc目录下搜索以.conf结尾的文件。
find -user zhengcheng              # 查找属于zhengcheng的文件
find –type d/f                     # 根据文件类型查找,f普通文件,d目录。
find –mtime -1/+1                  # 查找1天以前或之后更新的文件。
find –ctime -1/+1                  # 查找1天钟以前或之后创建的文件。
  • find相对于locate会更慢,因为find扫描硬盘进行文件搜索,但是find功能更加强大,locate只能根据文件名进行搜索,find可以添加其他的参数,也可以支持通配符搜索,但是要注意的是,使用find避免在大范围进行搜索,效率太低。

locate和find的区别

  • 效率:find相对于locate会更慢,因为find扫描硬盘进行文件搜索。
  • 功能:但是find功能更加强大,可以添加其他的参数,也可以支持通配符搜索,locate只能根据文件名进行搜索,
  • 即时性:find搜索的数据是即时的,locate不是。
  • 模糊匹配:find默认是精确搜索,locate是模糊搜索。

用户和用户组

  • Linux是一个多用户多任务的系统,管理员可以添加多个用户来帮助管理Linux系统。
  • 用户管理主要包括以下内容:
    • 用户的添加,修改,和删除。
    • 用户口令的管理。
    • 用户组的管理。

添加用户

  • 语法:

useradd 选项 用户名

  • 参数说明

-c:comment 指定一段注释性描述。

-d:目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。

-g:用户组 指定用户所属的用户组。

-s:Shell文件 指定用户的登录Shell。

-u:用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。

  • 示例:

    useradd –u user1                  # 添加新用户 user1
    useradd –d /home/user1 –u user2   # 添加新用户,并指定用户家目录。

设置用户密码

  • 语法:

passwd 选项 用户名

  • 选项说明

-l 锁定口令,即禁用账号。

-u 口令解锁。

-d 使账号无口令。

-f 强迫用户下次登录时修改口令。

  • 如果是第一次修改密码,直接输入密码即可,如果是修改密码,则需要输入旧密码。

    passwd user1   # 修改用户 user1的密码

修改和删除用户

修改用户

  • 语法:

usermod 选项 用户名

  • 选项说明和useradd一致。

  • 实例:

    usermod -l newtest test   # 修改test的用户名为newtest
    usermod -G staff newuser2 # 将newuser2添加到组staff中

删除用户

  • 语法:

userdel 选项 用户名

  • 选项说明

-r:将用户所在的目录一起删除。

  • 示例:

    userdel -r user1      # 删除用户 user1

添加用户组

  • 添加用户时,如果不指定用户组,会创建和用户名相同的一个用户组。
  • 语法:

groupadd 选项 组名

  • 选项说明:

-g GID 指定新用户组的组标识号(GID)。

-o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同。

  • 示例:

    groupadd usergroup1            # 添加用户组 usergroup1
    groupadd –g 101 usergroup1     # 添加用户组 usergroup1,并指定gid

删除用户组

  • 语法:

groupdel 用户组

  • 示例:

    groupdel usergroup1      # 添加用户组 usergroup1

与用户相关的文件

完成用户管理的工作有许多种方法,但是每一种方法实际上都是对有关的系统文件进行修改。

  • /etc/passwd:存放用户和用户组的关系,用户对应的目录,指令集等。以用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell格式存储。
  • /etc/shadow:/etc/shadow中的记录行与/etc/passwd中的一一对应,它由pwconv命令根据/etc/passwd中的数据自动产生。它的存储格式:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
  • /etc/group:用户组的所有信息都存放在/etc/group文件中,存储格式:组名:口令:组标识号:组内用户列表

版权声明:本文为SimpleWu原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/SimpleWu/p/10059655.html