Linux常用命令

文件目录指令

pwd:查看当前工作目录的绝对路径

ls:显示当前目录所有文件

  • 基本语法:ls [选项] [目录或文件]

  • 常见选项:

    -a:显示当前目录所有的文件,包括隐藏文件

    -l:以列表的方式显示信息

  • 实例:

    ls:默认显示所有文件

    ls -a:显示当前目录所有的文件,包括隐藏文件

    ls -al:以列表的方式显示所有文件包括隐藏文件

cd:切换到指定目录

  • 基本语法:cd [目录]

  • 实例:

    cd ~ :返回家目录

    cd .. :回到当前目录的上一级目录

    cd / :返回根目录

    cd /opt/java/jar:跳转到/opt/java/jar目录

mkdir:新建目录

  • 基本语法:mkdir [选项] 目录名

  • 常用选项:

    -p:创建多级目录

  • 实例:

    mkdir /home/dog:创建一个目录

    mkdir -p /home/ainal/tiger:创建多级目录

touch:创建一个空文件

  • 基本语法:touch 文件名称

  • 实例:

    touch test.txt:创建一个空文件test.txt

    touch a.txt b.txt:一次性创建两个空文件a.txt和b.txt

cp:拷贝文件到指定目录

  • 基本语法:cp [选项] source dest

  • 常用选项:

    -r:递归复制整个文件夹

  • 实例:

    cp /home/a.txt /home/b:将home目录下的a.txt拷贝到home目录下的b目录里面。

    cp -r /home/dog /home/animal:将home目录下的dog文件夹及里面的内容全部拷贝到home目录下的animal目录里。

  • 提示:当目录下已经有和要复制过去的文件同名的文件,系统会提示是否覆盖,提示时输入y则表示覆盖,或者在cp指令前加上\表示强制覆盖。例如:\cp /home/a.txt /home/b,表示如果b中已经有a.txt,则使用复制过去的a.txt强制覆盖b中原有的a.txt。

rmdir:删除空目录

  • 基本语法:rmdir [选项] 要删除的空目录

  • 实例:

    rmdir /home/dog:删除home下的dog空目录

  • 使用细节:

    rmdir删除的是空目录,如果目录下有内容时无法删除,如果要删除非空目录,使用rm -rf 要删除的目录。

rm:删除文件或目录

  • 基本语法:rm [选项] 要删除的文件或目录

  • 常用选项:

    -r:递归删除整个文件夹

    -f:强制删除不提示

  • 示例:

    rm -rf /home/java:强制递归删除home文件夹下的java文件夹内的所有内容

mv:移动文件或重命名

  • 基本语法:

    mv oldNameFIle newNameFile:重命名

    mv source dest:移动文件,将文件从source移动到dest,若dest没有带文件名,则移动过去保留源文件名,若dest带了文件名,则表示移动并重命名。

  • 实例:

    mv a.txt b.txt:将a.txt文件重命名为b.txt

    mv /home/a.txt /home/a:将home目录下的a.txt文件移动到home目录下的a目录下。

    mv /home/a.txt /home/a/b.txt:将home目录下的a.txt文件移动到home目录下的a目录下,并重命名为b.txt

cat:查看文件内容

  • 基本语法:cat [选项] 要查看的文件

  • 常用选项:

    -n:显示行号

  • 实例:

    cat -n /etc/profile:查看profile文件,并显示行号

>覆盖和>>追加

  • 基本语法:

    ls -l > 文件:将ls显示的列表内容写入到文件中(覆盖)

    ls -al » 文件:将列表内容追加到文件中(追加)

    cat 文件1 > 文件2:将文件1中的文件内容写入到文件2中(覆盖)

    echo “内容” » 文件:将内容写入到文件中(追加)

  • 提示:文件存在直接写入,不存在则新建再写入。

head:查看文件的开头部分内容

  • 基本语法:head 文件

  • 常用选项:

    -n:查看文件头n行内容

  • 示例:

    head -n 20 a.txt:查看a.txt前20行内容。

tail:查看文件的尾部的内容

  • 基本语法:tail [选项] 文件

  • 常用选项:

    -n:查看文件后n行内容

    -f :实时追踪该文件的所有更新

  • 实例:

    tail -n 20 -f a.txt:查看a.txt后20行内容,并实时追踪该文件的所有更新。

history:查看已经执行过历史命令,也可以执行历史指令

  • 实例:

    history:显示所有执行过的历史指令

    history 10:显示最近执行的10个指令

    !99:执行编号为99的指令

时间日期类

date:显示当前日期

  • 基本语法:

    date:显示当前时间

    date +%Y:显示当前年份

    date +%m:显示当前月份

    date +%d:显示当前是哪一天

    date “+%Y-%m-%d-%H-%M-%S”:显示年月日时分秒

    date -s “2020-9-22 21:21:32”:设置当前系统时间为2020-9-22 21:21:32

cal:查看日历指令

  • 基本语法:

    cal:查看当前日历

    cal 2020:显示2020年日历

搜索查找类

find:从指定目录向下递归的遍历其各个子目录,将满足条件的文件或者目录显示在终端,可使用通配符:*

  • 基本语法:

    find [搜索范围] [选项]

  • 常用选项:

    -name:按照指定的文件名查找

    -user:查找属于指定用户的所有文件

    -size:按照指定的文件大小查找文件

  • 实例

    find /home -name a.txt:在home目录下查找名称为a.txt的文件

    find /home -user root:在home目录下查找属于root用户的文件

    find / -size +20M:查找系统根目录下大于20M的文件,+大于,-小于,没有+和-就是等于。

    find / -name *.txt:查找系统根目录下后缀为txt的所有文件,使用通配符时需要使用转移字符 \

locate:可以快速定位文件路径,locate指令利用事先建立的系统中所有文件名称及路径的locate数据库实现快速定位给定的文件。locate指令无需遍历整个文件系统,查询速度极快,为了保证查询结果的准确度,管理员必须定期更新locate时刻。

  • 基本语法:locate 搜索文件

  • 特别说明:

    由于locate指令基于数据库进行查询,所以第一次运行前,必须使用updatedb指令创建locate数据库

  • 实例:

    updatedb:更新locate数据库

    locate a.txt:查找a.txt文件的路径

grep:grep过滤查找,管道符“|”表示将前一个命令的处理结果输出传递给后面的命令处理。

  • 基本语法:grep [选项] 查找内容 源文件

  • 常用选项:

    -n:显示匹配行及行号

    -i:忽略字母大小写

  • 实例

    cat hello.txt | grep -n yes:查找hello.txt文件中关键词yes所在的行号

压缩和解压缩类

gzip/gunzip:gzip用于压缩,gunzip用于解压,使用gzip对文件进行压缩后,不会保留源文件,同样gunzip解压后也不会保留源文件

  • 基本语法:

    gzip 文件:压缩文件,可同时压缩多个文件

    gunzip 文件.gz:解压文件,可同时解压多个文件

zip/unzip:zip用于压缩文件,unzip用于解压文件

  • 基本语法:

    zip [选项] xxx.zip 文件:将文件压缩为xxx.zip

    unzip [选项] xxx.zip:解压xxx.zip文件

  • zip常用选项:

    -r:递归压缩,即压缩整个目录

  • unzip常用选项:

    -d:指定解压后文件的存放目录

  • 实例:

    zip hello.zip hello.txt:将hello.txt压缩为hello.zip,会保留源文件,压缩文件夹时需要加 -r 参数

    unzip -d /opt hello.zip:将hello.zip解压到/opt目录中

tar:打包指令,最后打包后的文件是.tar.gz文件

  • 基本语法:tar [选项] xxx.tar.gz 打包的内容

  • 常用选项:

    -c:产生.tar打包文件

    -v:显示详细信息

    -f:指定压缩后的文件名

    -z:打包同时压缩

    -x:解包.tar文件

  • 实例:

    tar -zcvf a.tar.gz a1.txt a2.txt:将a1.txt和a2.txt打包成一个a.tar.gz压缩文件

    tar -zcvf home.tar.gz /home/:将home目录下的所有文件打包成home.tar.gz

    tar -zxvf a.tar.gz:将a.tar.gz解压

    tar -zxvf home.tar.gz -C /opt:将home.tar.gz解压到/opt目录中,前提是解压到的目录要存在。

系统管理

ps:查看进程状态

  • 基本语法:ps [选项]

  • 常用选项:

    -A:列出所有进程

    -e:同 -A 一样的效果

    -f:做一个更为完整的输出

  • 实例:

    ps -ef | grep java:查找java进程

kill:删除执行中的程序或工作

  • 基本语法:kill [选项] 进程号

  • 常用选项

    -1:重新加载进程

    -9:彻底杀死进程

    -15:正常停止一个进程

  • 实例:

    kill -1 12345:重新加载12345号进程

    kill -9 12345:彻底杀死12345号进程

    kill -15: 12345:正常停止12345号进程

1
top:实时显示进程动态
  • 基本语法:top [选项]

  • 常用选项:

    -d : 改变显示的更新速度,或是在交谈式指令列( interactive command)按 s

    -q : 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行

    -c : 切换显示模式,共有两种模式,一是只显示执行档的名称,另一种是显示完整的路径与名称

    -S : 累积模式,会将己完成或消失的子进程 ( dead child process ) 的 CPU time 累积起来

    -s : 安全模式,将交谈式指令取消, 避免潜在的危机

    -i : 不显示任何闲置 (idle) 或无用 (zombie) 的进程

    -n : 更新的次数,完成后将会退出 top

    -b : 批次档模式,搭配 “n” 参数一起使用,可以用来将 top 的结果输出到档案内

  • 实例

    top:显示进程信息

    top -c:显示完整命令

    top -n 2:更新两次后终止更新显示

    top -d 3:更新周期为3秒

    top -p 12345:显示进程号为12345的进程信息

shutdown:关机

  • 基本语法:shutdown [选项]

  • 常用选项:

    -t seconds : 设定在几秒钟之后进行关机程序。

    -r : 关机后重新开机

    -h : 关机后停机

    -n : 不采用正常程序来关机,用强迫的方式杀掉所有执行中的程序后自行关机

    -c : 取消目前已经进行中的关机动作

  • 实例

    shutdown -h now:立即关机

    shutdown -h 10:10分钟后关机

    shutdown -r now:立即重启

free:显示内存状态

  • 基本语法:free [选项]

  • 常用选项:

    -b:以Byte为单位显示内存使用情况

    -k:以KB为单位显示内存使用情况

    -m:以MB为单位显示内存使用情况

    -t:显示内存总和列

    -s seconds:每隔多少秒执行一次

  • 实例

    free:显示内存使用信息

    free -t:以总和的形式查询内存的使用信息

    free -s 10:每10s 执行一次

clear:清楚屏幕

  • 基本语法:clear