1. 基本命令

1.1 关机

1
2
3
shutdown -h now        #立刻关机
shutdown -h 5 #5分钟后关机
poweroff #立刻关机

1.2 重启

1
2
3
shutdown -r now        #立刻重启
shutdown -r 5 #5分钟后重启
reboot #立刻重启

2. 文件目录操作

2.1 目录切换 cd

1
2
3
4
5
cd /                  #切换到根目录
cd /usr #切换到根目录下的usr目录
cd ../ #切换到上一级目录 或者 cd ..
cd ~ #切换到home目录
cd - #切换到上次访问的目录

2.2 目录查看 ls [-al]

1
2
3
4
ls                    #查看当前目录下的所有目录和文件
ls -a #查看当前目录下的所有目录和文件(包括隐藏的文件)
ls -l 或 ll #列表查看当前目录下的所有目录和文件(列表查看,显示更多信息)
ls /dir #查看指定目录下的所有目录和文件 如:ls /usr
  1. 以时间顺序查看并显示年月日:ls -ltr --time-style=long-iso
  2. 以时间逆序查看并显示年月日:ls -lt --time-style=long-iso

2.3 目录操作

2.3.1 创建目录【增】

1
2
3
##命令:mkdir 目录
mkdir aaa #在当前目录下创建一个名为aaa的目录
mkdir /usr/aaa #在指定目录下创建一个名为aaa的目录

2.3.2 删除目录或文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
##命令:rm [-rf] 目录
#删除文件:
rm 文件 #删除当前目录下的文件
rm -f 文件 #删除当前目录的的文件(不询问)

#删除目录:
rm -r aaa #递归删除当前目录下的aaa目录
rm -rf aaa #递归删除当前目录下的aaa目录(不询问)

#全部删除:
rm -rf * #将当前目录下的所有目录和文件全部删除
rm -rf /* #【自杀!慎用!慎用!慎用!】将根目录下的所有文件全部删除

#删除当前路径下10天前的文件所有文件
find ./ -mtime +10 -name "*.*" -exec rm -rf {} \;

注意:rm不仅可以删除目录,也可以删除其他文件

2.3.3 目录修改【改】

  • 重命名/移动目录

    1
    2
    命令:mv [当前目录] [新目录]
    例如:mv aaa bbb 将目录aaa移动/重命名bbb

    注意:mv的语法可以对目录和文件进行重命名的操作

  • 剪切目录

    1
    2
    命令:mv [目录名称] [目录的新位置]
    示例:将/usr/tmp目录下的aaa目录剪切到 /usr目录下面 `mv /usr/tmp/aaa /usr`

    注意:mv语法不仅可以对目录进行剪切操作,对文件和压缩包等都可执行剪切操作

  • 拷贝目录

    1
    2
    命令:cp -r [目录名称] [目录拷贝的目标位置]             #-r代表递归
    示例:将/usr/tmp目录下的aaa目录复制到 /usr目录下面 `cp /usr/tmp/aaa /usr`

    注意:cp命令不仅可以拷贝目录还可以拷贝文件,压缩包等,拷贝文件和压缩包时不 用写-r递归

2.3.4 搜索目录

  • 查找

    1
    2
    命令:find [目录] [参数] [文件名称]
    示例:find /usr/tmp -name 'a*' # 查找/usr/tmp目录下的所有以a开头的目录或文件
  • 统计

    1
    2
    3
    4
    ls -lR | grep "^-"| wc -l    # 统计文件夹下文件个数,包括子文件
    ls -l | grep "^-"| wc -l # 统计文件夹下文件个数,不包括子文件
    ls -lR | grep "^d"| wc -l # 统计文件夹下文件夹个数,包括子文件夹
    ls -l | grep "^d"| wc -l # 统计文件夹下文件夹个数,不包括子文件夹

2.4 文件命令

  1. 新建文件

    1
    2
    命令:touch [文件名]
    示例:在当前目录创建一个名为aa.txt的文件 touch aa.txt
  2. 删除文件

    1
    命令:rm -rf [文件名]

2.5 其他文件命令

  1. 计算文件大小

    1
    2
    3
    4
    5
    6
    7
    8
    #查看单个文件的大小
    ls -lht
    # 会列出当前目录下每个文件的大小,同时也会给出当前目录下所有文件大小总和
    # 也可指定后面指定某个文件名

    #把\*替换为具体的文件名,会给出具体文件的大小
    du -sh ./*
    #也会列出当前文件夹下所有文件对应的大小

3. 查找命令

3.1 grep

  grep命令是一种强大的文本搜索工具

  • 使用实例:

    1
    2
    3
    ps -ef | grep sshd                      #查找指定ssh服务进程 
    ps -ef | grep sshd | grep -v grep #查找指定服务进程,排除gerp身
    ps -ef | grep sshd -c #查找指定进程个数

3.2 find

  find命令在目录结构中搜索文件,并对搜索结果执行指定的操作。

  find 默认搜索当前目录及其子目录,并且不过滤任何结果(也就是返回所有文件),将它们全都显示在屏幕上。

  • 使用实例:

    1
    2
    3
    4
    5
    find . -name "*.log" -ls           #在当前目录查找以.log结尾的文件,并显示详细信息。 
    find /root/ -perm 600 #查找/root/目录下权限为600的文件
    find . -type f -name "*.log" #查找当目录,以.log结尾的普通文件
    find . -type d | sort #查找当前所有目录并排序
    find . -size +100M #查找当前目录大于100M的文件

3.3 locate

  locate 让使用者可以很快速的搜寻某个路径。默认每天自动更新一次,所以使用locate 命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。如果数据库中没有查询的数据,则会报出locate: can not stat () '/var/lib/mlocate/mlocate.db': No such file or directory该错误,updatedb即可!

  如果是精简版CentOS系统需要安装locate命令

1
yum -y install mlocate
  • 使用实例:

    1
    2
    3
    updatedb
    locate /etc/sh #搜索etc目录下所有以sh开头的文件
    locate pwd #查找和pwd相关的所有文件

3.4 whereis

  whereis命令是定位可执行文件、源代码文件、帮助文件在文件系统中的位置。这些文件的属性应属于原始代码,二进制文件,或是帮助文件。

  • 使用实例:

    1
    2
    which pwd                   #查找pwd命令所在路径 
    which java #查找path中java的路径

3.5 which

  which命令的作用是在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。

  • 使用实例:

    1
    2
    which pwd                   #查找pwd命令所在路径 
    which java #查找path中java的路径

4. 权限操作

  1. 更改文件所属用户
1
2
chown [-R] [账号名称] [文件或目录]
chown [-R] [账号名称]:[用户组名称] [文件或目录]
  1. 更改文件所属用户组
1
chgrp [-R] [用户组名称] [文件或目录]
  1. 更改文件权限
1
chmod [-R] [权限级别] [文件或目录]
  • r(Read,读取,权限值为4):对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目 录的权限。
  • w(Write,写入,权限值为2):对文件而言,具有新增、修改文件内容的权限;对目录来说,具有删除、移动目录内文件的权限。
  • x(eXecute,执行,权限值为1):对文件而言,具有执行文件的权限;对目录了来说该用户具有进入目录的权限。
    • 777有3位,最高位7是设置文件所有者访问权限,第二位是设置群组访问权限,最低位是设置其他人访问权限。

5. 系统相关

  1. 查看当前内存使用

    1
    2
    free -m
    free -g

    -m 以MB为单位展示,
    -g 以G为单位

    -s 定时查询,后面带参数,如 -s 3 表示每3秒刷新一下

    输出参数详解

    Mem 行(第二行)是内存的使用情况。
    Swap 行(第三行)是交换空间的使用情况。
    total 列显示系统总的可用物理内存和交换空间大小。
    used 列显示已经被使用的物理内存和交换空间。
    free 列显示还有多少物理内存和交换空间可用使用。
    shared 列显示被共享使用的物理内存大小。
    buff/cache 列显示被 buffer 和 cache 使用的物理内存大小。
    available 列显示还可以被应用程序使用的物理内存大小。

  2. 查看内存详情

    1
    2
    top
    # 使用top命令,即可按字节展示,再按shift+m键将进程按照内存使用情况排序,并转换成以M为单位
  3. 手动刷新RAM,释放cache

    1
    echo 1 > /proc/sys/vm/drop_caches

6. 其他相关

6.1. Centos挂载磁盘

  1. 查看当前未挂载的硬盘

    1
    fdisk -l

  2. 确认挂载目标

      挂载Windows下的E盘,我的E盘在1T盘上,大小为300G,猜测是sdb1

  3. 建立挂载目录

    1
    mkdir /medir/windowsE
  4. 挂载硬盘

    1
    2
    3
    4
    5
    mount /dev/sdb2 /medir/windowsE

    # 如果系统报错,无法识别ntfs系统,则需要再下载安装一个插件
    # yum install -y ntfs-3g
    # mount -t ntfs-3g /dev/sdb2 /media/windowsE/
  5. 挂载成功