Linux 常见的命令

cd命令详解

如何进入上级目录

cd ..

如何进入当前用户主目录

cd ~

如何进入上两级目录

cd ../..

进入当前目录命令

cd .

如何进入/usr/local目录

cd /usr/local

mkdir命令详解

新建一个文件夹 yyds

mkdir yyds

新建三个文件夹 yyds1 yyds2 yydst3

mkdir yyds1 yyds2 yyds3

新建一个多层级文件夹 yy/test/cool

mkdir -p yy/test/cool

新建一个文件夹yyCool,并设置权限

mkdir -m 777 yyCool

mv命令详解: 剪切

移动当前用户文件夹下的test文件夹,移动到/usr/local目录

mv ~/test/ /usr/local

移动一个文件test.ini ,移动到/usr/local目录

mv test.ini  /usr/local

当前目录的test.tar.gz 移动到 /usr/local目录,并重命名为testtest.tar.gz

mv test.tar.gz /usr/local/testtest.tar.gz

移动文件到上级目录

mv test.tar.gz ../

一条命令,移动两个文件 test1.tar test2.tar 到目录 /usr/local

mv test1.tar test2.tar -t /usr/local
mv  -t /usr/local  test1.tar test2.tar 

–target-deirectory这个长选项后面必须接参数,所以-t这个短选项也必须带参数(即目标目录),但不是用“=”相连,而是用空格。

移动test.txt到/usr/local下,但/usr/local已存在test.txt,强制覆盖

mv test.txt -f /usr/local

移动test.txt到/usr/local下,但/usr/local已存在test.txt,会询问是否覆盖

mv test.txt -i /usr/local

cp命令详解:复制

把源文件更新覆盖给目标文件,如果原来的比较新或者没有目的文件,那么不会进行copy的动作

cp -u A.log B.log

其中A.log是源文件

创建文件的软链接

cp -s  a/b/c/d/e/orginalFile.txt  softlink.txt

创建文件的硬链接

cp -l  a/b/c/d/e/orginalFile.txt  hardlink.txt

注意:当被链接的文件删除时,软链接文件也无法访问了,而硬链接文件仍能正常访问。

复制文件test.txt到/usr/local目录

cp test.txt /usr/local

复制文件夹 yyTest到/usr/local目录

cp -r yyTest/ /usr/local

再次复制文件test.txt到/usr/local目录,强制覆盖

cp -f test.txt /usr/local

再次复制文件test.txt到/usr/local目录,询问是否强制覆盖

cp -i test.txt /usr/local

复制文件tests.txt到/usr/local目录,并把修改时间和访问权限也复制

cp -p test.txt /usr/local

history命令详解

查看历史命令执行记录

history 

查看命令mkdir 的历史执行记录

history | grep mkdir 

执行历史记录中,序号为330的命令

!330
[root@iZ2zebqeq8f5murg3r515qZ ~]# !330
ll
total 32
drwxr-xr-x 3 root root    22 Dec 25 10:44 auto
-rw-r--r-- 1 root root 25166 Jan  5 15:36 install.sh
drwxr-xr-x 8 root root  4096 Jan 10 21:52 oneinstack
[root@iZ2zebqeq8f5murg3r515qZ ~]# 

执行上一条命令(直接输入两个感叹号)

!!

查找最后10条历史记录(两种方式)

history 10
history | tail -10

清除历史记录

history -c

将当前所有历史记录写入历史文件中,默认写入 ~/.bash_history

history -w
cat ~/.bash_history

tar命令详解

命令

说明

-c

建立压缩档案

-x

解压

-t

查看内容

-r

向压缩归档文件末尾追加文件

-u

更新原压缩包中的文件

这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。

命令

说明

-z

有gzip属性的

-j

有bz2属性的

-Z

有compress属性的

-v

显示所有过程

-O

将文件解开到标准输出

下面的参数-f是必须的

-f: 使用档案名字,切记,这个参数是最后一个参数,后面只能接档案名。

压缩一个文件 yyTest.ini

tar -zcvf yyTest.tar.gz yyTest.ini 

压缩多个文件 yyTest.ini readme.ini

tar -zcvf all.tar.gz yyTest.ini readme.ini

压缩文件夹 yyTest/

tar -zcvf yyTest.tar.gz yyTest/

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

tar -cvf yyTestjpg.tar *.jpg

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

tar -zcvf yyTestjpg.tar.gz *.jpg

解压 yyTestjpg.tar

tar -xvf yyTestjpg.tar

解压 yyTestjpg.tar.gz

tar -zxvf yyTestjpg.tar.gz

tail命令详解

实时刷新log

tail -f test.log

实时刷新最新500条log

tail -500f test.log

显示最后5条log(两种写法)

tail -n 5 test.log
tail -5 test.log

显示第五条后面的所有log

tail -n +5 test.log

ls命令详解

列出当前目录中所有的子目录和文件(不包含隐藏文件 .开头的)

ls

列出目录下的所有的子目录和文件(包含隐藏文件 .开头的)

ls -a

列出文件的详细信息(包括权限、所有者、文件大小等) 两种方式

ls -lll

列出当前目录中所有以“test”开头的详细内容

ls -l test*

按文件最后修改时间排序,降序

ls -t

按文件大小排序,从大到小

ls -S

查看文件大小时增加可读性(1K 2M 2G)

ls -lh

ps命令详解

查看所有进程

ps -A

查看java进程

ps -ef | grep java

显示所有进程信息,连同命令行

ps -ef

ps 与grep 常用组合用法,查找特定进程

ps -ef | grep java

ps -ef返回列表各个字段的含义

[root@iZ2zebqeq8f5murg3r515qZ /]# ps -ef 

image-1649756240150

  • UID:表示用户ID

  • PID:表示进程ID

  • PPID:表示父进程号

  • C:表示CPU的占用率

  • STIME:进程的启动时间

  • TTY:登入者的终端机位置

  • TIME:表示进程执行起到现在总的CPU占用时间

  • CMD:表示启动这个进程的命令

显示所有进程更详细的信息,包括进程占用CPU、内存

ps -aux

根据CPU、内存使用来降序排序

ps -aux --sort -pcpups -aux --sort -pmem

ps -aux返回列表各个字段的含义

[root@iZ2zebqeq8f5murg3r515qZ /]# ps -aux

image

  • USER:表示哪个用户启动了这个进程

  • PID :进程ID

  • %CPU:进程CPU的占用率

  • %MEM:进程物理内存的占用率

  • VSZ :进程占用的虚拟内存量 (Kbytes)

  • RSS :进程当前实际上占用了多少内存

  • TTY :进程是在哪个终端机上面运作,若与终端机无关,则显示 ?,另外, tty1-tty6 是本机上面的登入者程序,若为 pts/0 等等的,则表示为由网络连接进主机的程序。

  • STAT:该程序目前的状态,主要的状态有

    • R :运行;该程序目前正在运作,或者是可被运作

    • D:不可中断:一般是IO进程

    • S :中断;该程序目前正在睡眠当中 (可说是 idle 状态),但可被某些讯号 (signal) 唤醒。

    • T :停止:该程序目前正在侦测或者是停止了

    • Z :僵尸:该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie (僵尸) 程序的状态

  • START:该进程启动的时间点

  • TIME :进程从启动后到现在,实际占用CPU的总时间

  • COMMAND:启动该进程的命令

wget命令详解

下载isTester.jpg文件

wget https://p0.meituan.net/dpgroup/839f00ac763de998d9a1b5436f422b0b6399308.jpg

下载isTester.jpg文件,并存储名为isTester_Logo.jpg

wget -o isTester_Logo.jpg https://p0.meituan.net/dpgroup/839f00ac763de998d9a1b5436f422b0b6399308.jpg

下载isTester.jpg文件,后台形式下载

wget -b https://p0.meituan.net/dpgroup/839f00ac763de998d9a1b5436f422b0b6399308.jpg

diff 命令

比较两个文件之间的不同
语法:
diff [-abBcdefHilnNpPqrstTuvwy][-<行数>][-C <行数>][-D <巨集名称>][-I <字符或字符串>][-S <文件>][-W <宽度>][-x <文件或目录>][-X <文件>][--help][--left-column][--suppress-common-line][文件或目录1][文件或目录2]

diff -u  log2014.log log2013.log  以合并的方式来显示文件内容的不同
diff -c  log2014.log log2013.log   显示全部内文,并标出不同之处。

cmp 命令

Linux cmp 命令用于比较两个文件是否有差异。

语法:

cmp [-clsv][-i <字符数目>][--help][第一个文件][第二个文件]

参数:

-c或–print-chars  除了标明差异处的十进制字码之外,一并显示该字符所对应字符。
-i<字符数目>或–ignore-initial=<字符数目>  指定一个数目。
-l或–verbose  标示出所有不一样的地方。
-s或–quiet或–silent  不显示错误信息。

file 命令

Linux file命令用于辨识文件类型。

语法:

file [-bcLvz][-f <名称文件>][-m <魔法数字文件>...][文件或目录...]

-b  列出辨识结果时,不显示文件名称。
-c  详细显示指令执行过程,便于排错或分析程序执行的情形。
-f<名称文件>  指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称。
-L  直接显示符号连接所指向的文件的类别。
-m<魔法数字文件>  指定魔法数字文件。
-v  显示版本信息。
-z  尝试去解读压缩文件的内容。
[文件或目录…] 要确定类型的文件列表,多个文件之间使用空格分开,可以使用shell通配符匹配多个文件。

which命令

Linux which命令用于查找文件。
which指令会在环境变量$PATH设置的目录里查找符合条件的文件。

语法:

which [文件...]

alias 命令

Linux alias命令用于设置指令的别名。
用户可利用alias,自定指令的别名。若仅输入alias,则可列出目前所有的别名设置。alias的效力仅及于该次登入的操作。若要每次登入是即自动设好别名,可在.profile或.cshrc中设定指令的别名。

语法

alias[别名]=[指令名称]

参数说明:若不加任何参数,则列出目前所有的别名设置。

echo详解:输出命令

显示文本行或者变量取值,向屏幕输出字符串,或者把字符串输出到文件中

语法:

[root@localhost ~]# echo [选项] [输出内容]

-e:支持反斜线控制的字符转换(具体参见表 1)
-n:取消输出后行末的换行符号(内容输出后不换行)

[root@iZ2zebqeq8f5murg3r515qZ ~]# echo "hello world"
hello world

[root@iZ2zebqeq8f5murg3r515qZ ~]# echo -e "hello \n world"
hello 
 world
 
[root@iZ2zebqeq8f5murg3r515qZ ~]# echo  "hello\world"
hello\world