Linux常用命令

执行.sh脚本:在任意路径下,sh 加上文件路径及文件名称:

sh /root/datelog.sh

pwd 命令,是 Print Working Directory (打印工作目录)的缩写

命令 yum,安装命令

例子:yum -y install tree

命令:tree,查看目录,文件夹结构

例子:tree 文件夹

命令 touch 创建文件

cat 命令,用于连接文件并打印显示。cat主要有三大功能:

1.一次显示整个文件。

$ cat   filename

2.从键盘创建一个文件。

$ cat  >  filename

只能创建新文件,不能编辑已有文件.

3.将几个文件合并为一个文件。

$cat   file1   file2  > file

文件读写权限/所有权问题:https://www.cnblogs.com/sxdcgaq8080/p/7498906.html

命令 grep:grep 只支持匹配而不能替换匹配到

详细解释:https://www.cnblogs.com/sparkdev/p/11294517.html

/

命令 cd

  1. 如何进入上级目录
    cd ..

  2. 如何进入当前用户主目录
    cd ~

  3. 如何进入上两级目录
    cd ../..

  4. 进入当前目录命令
    cd .

  5. 如何进入目录 /usr/isTester
    cd /usr/isTester

/

命令 mv

参数说明:
-i: 若指定目录已有同名文件,则先询问是否覆盖旧文件;
-f: 在 mv 操作要覆盖某已有的目标文件时不给任何指示;

例子:用于改名:mv aaa bbb

将/usr/student下的所有文件和目录移到当前目录下,命令行为:
$ mv /usr/student/* .

  1. 移动一个文件夹(isTester文件夹,移动到/APP/www目录)
    mv ~/isTester/ /APP/www

  2. 移动一个文件(isTester.ini 移动到/APP/www目录)
    mv isTester.ini /APP/www

  3. 当前目录istester.tar.gz 移动到 /usr/ido 目录,并重命名为istester1228.tar.gz
    mv isTester.tar.gz /usr/ido/ido.tar.gz

  4. 移动文件到上级目录
    mv isTester.tar.gz ../

  5. 一条命令,移动两个文件 isTester.tar idoxu.tar 到目录 /APP/www
    mv isTester.tar idoxu.tar -t /APP/www

/

命令 cp

参数说明:-r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。

  1. 复制当前目录部署包isTester.tar.gz 到备份目录/APP/www/bak 目录
    cp isTester.tar.gz /APP/www/bak

  2. 复制文件夹 isTester 到部署目录 /APP/www
    cp -r isTester/ /APP/www

补充:https://www.cnblogs.com/uncle-qi/p/9359741.html

cp同时拷贝多个文件:

方法一:使用cp命令
cp /home/usr/dir/{file1,file2,file3,file4} /home/usr/destination/
需要注意的是这几个文件之间不要有空格

具有共同前缀
cp /home/usr/dir/file{1..4} ./
复制的文件是file1, file2, file3, file4

方法二

拷贝当前文件夹下以.py结尾的文件到test2文件夹下
cp *.py ~/test2/

/

命令 mkdir

参数说明:-p 确保目录名称存在,不存在的就建一个。

在目录/APP/www 下,
cd /APP/www

  1. 新建一个文件夹 isTester
    mkdir isTester

  2. 新建三个文件夹 isTester1 isTester2 isTester3
    mkdir isTester1 isTester2 isTester3

  3. 新建一个多层级文件夹 idoxu/20181230/01
    mkdir -p idoxu/20181230/01

补充:在BBB目录中,建立一个名为 Test 的子目录。 若 BBB 目录原本不存在,则建立一个。(注:本例若不加 -p,且原本 BBB目录不存在,则产生错误。)

mkdir -p BBB/Test

/

命令 history

  1. 查看历史命令执行记录
    history

  2. 查看命令mkdir 的历史执行记录
    history | grep mkdir

  3. 执行历史记录中,序号为178的命令
    !178

/

命令 tail(n.尾巴 v.跟踪)

参数:-f 循环读取

例子:tail notes.log,此命令显示 notes.log 文件的最后 10 行。
要跟踪名为 notes.log 的文件的增长情况,请输入以下命令:tail -f notes.log。当将某些行添加至 notes.log 文件时,tail 命令会继续显示这些行。显示一直继续,直到您按下(Ctrl-C)组合键停止显示。

举例:

  1. 实时刷新log
    tail -f isTester.log

  2. 实时刷新最新500条log
    tail -500f isTester.log

/

命令 tar,(-c只是打包,-zc才是打包后压缩)

参数说明:1.必选其中之一参数(而且一次只能使用其中一个,不能同时使用多个)

-c:建立一个打包文件的参数指令(create 创建,备份的意思);
-x:解开一个压缩文件的参数指令!
-t:查看 tarfile 里面的文件!
-r:向压缩归档文件末尾追加文件
-u:更新原压缩包中的文件
特别注意,在参数的下达中, c/x/t/r/u 仅能存在一个!不可同时存在!因为不可能同时压缩与解压缩。

可选参数

-z:有gzip属性,即需要用 gzip 压缩
-j:有bz2属性,即需要用 bzip2 压缩
-Z:有compress属性的
-v :压缩的过程中显示文件(显示所有过程)!这个常用,但不建议用在背景执行过程!
-O:将文件解开到标准输出
-f :使用档名,请留意,在 f 之后要立即接档名!不要再加参数!例如使用『 tar -zcvfP tfile sfile』就是错误的写法,要写成『 tar -zcvPf tfile sfile』才对喔!
-p :使用原文件的原来属性(属性不会依据使用者而变)
-P :可以使用绝对路径来压缩!
-N :比后面接的日期(yyyy/mm/dd)还要新的才会被打包进新建的文件中!
--exclude FILE:在压缩的过程中,不要将 FILE 打包!
-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。

举例:

  1. 打包一个文件 isTester.ini 为 isTester.tar

tar -cvf isTester.tar isTester.ini

加上 z 才是压缩:

压缩为 isTester.tar.gz 用 tar -zcvf isTester.tar isTester.ini

  1. 打包多个文件 isTester.ini readme.ini

tar -cvf all.tar isTester.ini readme.ini

  1. 打包文件夹 isTester/

    tar -cvf isTester.tar isTester/

  2. 将当前目录,所有jpg文件打包成isTesterjpg.tar

tar -cvf isTesterjpg.tar *.jpg

  1. 将当前目录,所有jpg文件压缩成isTesterjpg.tar.gz

tar -zcvf isTesterjpg.tar.gz *.jpg

  1. 解开包到当前文件夹下 isTesterjpg.tar

tar -xvf isTesterjpg.tar

  1. 解压到当前文件夹下 isTesterjpg.tar.gz

tar -zxvf isTesterjpg.tar.gz

补充:tar中的参数 cvf,xvf,cvzf,zxvf的区别

tar cvf etcbak.tar etc/ 打包一个tar

tar xvf etcbak.tar 解开一个tar

tar cvzf etcbak.tar.gz etc/ 打包压缩一个 tar

tar zxvf etcbak.tar.gz 解压一个tar

1 将tgz文件解压到指定目录

tar zxvf test.tgz -C 指定目录

比如将/source/kernel.tgz解压到 /source/linux-2.6.29 目录

tar zxvf /source/kernel.tgz -C /source/ linux-2.6.29

2 将指定目录压缩到指定文件

比如将linux-2.6.29 目录压缩到 kernel.tgz

tar czvf kernel.tgz linux-2.6.29

/

命令 ls

  1. 列出当前目录中所有的子目录和文件。
    ls

  2. 列出目录下的所有文件(包含隐**件)
    ls -a

  3. 列出文件的详细信息(包括权限、所有者、文件大小等)
    ls -l

  4. 列出当前目录中所有以“isTester”开头的详细内容
    ls -l isTester*

/

命令 ps

  1. 查看所有进程
    ps -A

  2. 查看java进程

    ps -ef | grep java
  3. 显示所有进程信息,连同命令行

    ps -ef

详细解释:https://www.cnblogs.com/moonbaby/p/10528443.html

/

命令 top

  1. 显示进程信息
    top

  2. 监控每个逻辑CPU的状况
    top ,按 1

  3. 高亮显示当前运行进程
    top ,按 b

  4. 显示 完整命令
    top ,按 c

  5. 退出top程序
    按 q

/

命令wget

Linux系统中的wget是一个下载文件的工具,对于Linux用户是必不可少的工具

文件地址
http://51.istester.com/isTester.png

  1. 下载isTester.jpg文件
    wget http://51.istester.com/isTester.png

  2. 下载isTester.jpg文件,并存储名为isTester_Logo.jpg
    wget -o isTester_Logo.jpg
    http://51.istester.com/isTester.png

  3. 下载isTester.jpg文件,后台形式下载
    wget -b http://51.istester.com/isTester.png

/

命令 find
find命令,非常强大,也非常实用,分两次完成,今日第一次 。
给大家布置的作业,是比较实用的几个场景 。

  1. 在/root/isTester 目录及其子目录下面查找名字为isTester.ini的文件
    find /root/isTester/ -name isTester.ini

  2. 在当前目录及其子目录中查找任何扩展名为“ini”的文件
    find . -name "*.ini"

  3. 在/root/isTester目录下查找更改时间在5日以内的文件
    find /root/isTester/ -mtime +5

  4. 在/root/isTester目录下查找更改时间在3日以前的文件
    find /root/isTester/ -mtime -3

  5. 在/root/isTester目录下查找所有的目录
    find . -type d

  6. 在/root/isTester目录下查找所有的文件
    find /root/isTester/ -type f

/

命令 继续find(进阶)

find命令,非常强大,也非常实用,分两次完成,今日第一次 。
给大家布置的作业,是比较实用的几个场景 。

  1. 在当前目录,所有的普通文件中搜索istester这个词
    find ./ -type f |xargs grep "istester"

  2. 在当前目录,删除1天以内的所有东西
    find ./ -mtime -1 -print | xargs rm -rf

  3. 在当前目录,删除10天以前的所有东西(实操的时候,需谨慎,确保在自己建的目录内,别把系统目录删了…)
    find ./ -mtime +10 -print | xargs rm -rf

  4. 删除文件大小为零的文件
    find ./ -size 0 | xargs rm -rf

/

命令 rm

rm是常用的命令,该命令的功能为删除目录/文件(可同时删除,多个文件 / 多个目录)
当然,这也是一个非常危险的命令,建议少用(比如经常出现的误操作 rm * -rf 此命令慎用)

  1. 删除/root/isTester/目录下的文件isTester.ini (系统会询问是否删除)
    rm /root/isTester/isTester.ini

  2. 强行删除/root/isTester/目录下的文件isTester.ini(直接删除,系统不会提示)
    rm -f /root/isTester/isTester.ini

  3. 删除/root/isTester/目录下的所有.log文件
    rm -f /root/isTester/*.log

  4. 删除/root/isTester/目录下的 ido/文件夹
    rm -r /root/isTester/ido/

  5. 强行删除/root/isTester/目录下的 ido/文件夹
    rm -rf /root/isTester/ido/

  6. 删除/root/isTester/目录下的所有内容
    rm -rf /root/isTester/*

/

文件操作系列 命令

  1. 创建文件,你知道有哪几个命令 ?(写出至少两种方式)
    1) touch isTester.ini
    2) vi isTester.md
    3) echo ‘only test’ > isTester.com
    4) cp isTester.ini isTester666.ini
    5) ls > fileList.txt

  2. 同时创建文件 isTester6.ini idoxu.ini
    touch isTester6.ini idoxu.ini

  3. 同时创建2000个文件 isTester0001.ini - isTester2000.ini
    touch istester{0001..2000}.ini

  4. 更改文件 isTester.ini时间为当前时间
    touch isTester.ini

/

查看文件系列 命令

Linux有三个查看文件的命令,若希望在查看文件内容过程中可以用光标上下移动来查看文件内容,应使用命令。 more #可以分页查看
$ less #使用光标向上或向下移动一行

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

  1. 查看文件 isTester.ini的内容
    cat isTester.ini

  2. 看文件 isTester.ini前20行内容
    head -n 20 isTester.ini

  3. 看文件 isTester.ini最后30行内容
    tail -n 30 isTester.ini

  4. 显示文件isTester.ini 的第10至20行的内容
    head -n 20 isTester.ini | tail -n 10

  5. 倒序显示文件isTester.ini 前10行的内容
    tac isTester.ini | head -n 10

  6. 显示文件isTester.ini 前10行的内容,并显示行号
    nl isTester.ini | head -n 10

/

命令 yum & scp

假设 当前服务器ip 192.168.1.23

  1. 从Linux服务器192.168.1.22 拷贝文件isTester.ini 到服务器192.168.1.23
    scp root@192.168.1.22:/root/idoxu/isTester.ini /root/idoxu

  2. 从Linux服务器192.168.1.22 拷贝目录 isTester/ 到服务器192.168.1.23
    scp -r root@192.168.1.22:/root/idoxu/isTester/ /root/idoxu

  3. Linux下安装scp命令(假设是centos服务器,命令用yum)
    yum install openssh-clients

/

命令
clear
df
du
ifconfig

  1. 查看当前服务器ip
    ifconfig

  2. 查看当前服务器硬盘空间
    df -h

  3. 查看目录isTester/ 所占有的空间
    du -sh isTester

  4. 清空当前终端屏幕
    clear

/

命令 vi + chmod

/**
vi 创建文件 + 编辑文件 。
chmod命令用于改变linux系统文件或目录的访问权限 。
**/

  1. 创建文件 isTester.ini
    vi isTester.ini

  2. 更新文件内容为“21 day Linux Learn ,I'm Idolaoxu,in shenzhen .

    输入 i ,进入编辑模式,输入内容,esc进入命令模式 :wq 保存 。

  3. 将文件 isTester.ini 设为所有人皆可读取
    chmod +r isTester.ini

  4. 将 isTester.ini 设定为只有该文件拥有者可以执行
    chmod u+x isTester.ini

  5. 给文件 isTester.ini 设置所有权限
    chmod 777 isTester.ini (或者 chmod a=rwx isTester.ini)

详细解释:

文件exer1的访问权限为rw-r--r--,现要增加所有用户的执行权限和同组用户的写权限,

命令为:
方法1:chmod a+x, g+w exer1
方法2:chmod 775 exer1

chmod 命令用来修改文件权限

  1. 用数字来设定权限
    r : 4、w : 2、x : 1
    4 = 100 2 = 010 1 = 001

实际上是按二进制取1的位来设置的权限
chmod 777 test.txt
7 = 111, 给test拥有者、所属群组、其他人所有权限

  1. 用符号设定权限
    chmod [ugoa] [+-=] [rwx] dirname/filename
    u:拥有者
    g:所属群组
    o:其他人
    a:所有人

+:添加权限
-:移除权限
=:设定权限

为 test.txt 文件的所有用户添加读权限。
chmod a+r test.txt
详细补充:https://www.cnblogs.com/sxdcgaq8080/p/7498906.html

/

End ,命令,这些差不多够用了 。
如果遇到一些非高频的命令,自行百度/Google搞定即可 。

入了门,对Linux有感觉了,甚至是有兴趣了,其他命令,都没啥问题 ,看下帮助文档即可 。

比如,想了解 top命令咋用 ?
终端输入 top --help 即可

/

全部评论

相关推荐

10-30 22:18
已编辑
毛坦厂中学 C++
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
1
分享
牛客网
牛客企业服务