LINUX常见命令

目录

一.目录文件

1.ls命令

2.cd命令

3.pwd命令

4.mkdir命令

5.rm命令

6.rmdir命令

7.mv命令

8.cp命令

9.ln命令

10.tar命令

二.文件内容相关

1.cat命令

2.head命令

3.tail命令

4.more命令

5.less命令

6.wc命令

7.grep命令

三.文件查找相关

1.which命令

2.whereis

3.locate

4.find

四.进程系统相关

1.ps命令

2.top命令

 3.kill命令

4.free命令

五。权限相关

1.chmod命令

2.chown命令

六.磁盘空间

1.df命令

2.du命令

七.时间日期相关

1.date命令

2.cal命令

八.端口号相关

1.netstat命令

2.ss命令

3.lsof命令


一.目录文件

1.ls命令

通过 ls 命令不仅可以查看 linux 文件夹包含的文件,而且可以查看文件权限(包括目录、文件夹、文件权限)和查看目录信息等等。

常用参数

ls -a 列出目录所有文件,包含以.开始的隐藏文件
ls -A 列出除.及..的其它文件
ls -r 反序排列
ls -t 以文件修改时间排序
ls -S 以文件大小排序
ls -h 以易读大小显示
ls -l 除了文件名之外,还将文件的权限、所有者、文件大小等信息详细列出来

2.cd命令

cd [目录名]

进入根目录
cd /
进入 "home" 目录
cd ~
进入上一次工作路径
cd -

3.pwd命令

pwd 命令用于查看当前工作目录路径

查看当前路径
pwd
查看软链接的实际路径
pwd -P

4.mkdir命令

mkdir 命令用于创建文件夹。

可用选项:

-m: 对新建目录设置存取权限,也可以用 chmod 命令设置;

-p: 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不在的目录,即一次可以建立多个目录。

5.rm命令

删除一个目录中的一个或多个文件或目录

rm [选项] 文件
删除 demo 子目录及子目录中所有档案删除,并且不用一一确认
rm -rf demo
-r  可以删除目录
-f 不用确认直接删除

6.rmdir命令

命令删除空的目录

-p 当子目录被删除时,使父目录为空,则顺便一并删除

7.mv命令

移动文件或修改文件名

将文件 test.log 重命名为 test1.txt
mv test.log test1.txt

将文件 log1.txt,log2.txt,log3.txt 移动到根的 test3 目录中
mv llog1.txt log2.txt log3.txt /test3

文件 log1.txt 改名为 log2.txt,如果 log2.txt 已经存在,则询问是否覆盖
mv -i log1.txt log2.txt

移动当前文件夹下的所有文件到上一级目录
mv * ../

8.cp命令

将源文件复制至目标文件,或将多个源文件复制至目标目录。

-i 提示,没有此参数如果文件存在就会覆盖,且不提示,如果有此参数就会提示是否覆盖
-r 复制目录及目录内所有项目
-a 复制的文件与原文件时间一样
-s 为文件创建一个快捷方式

9.ln命令

功能是为文件在另外一个位置建立一个同步的链接,当在不同目录需要该问题时,就不需要为每一个目录创建同样的文件,通过 ln 创建的链接(link)减少磁盘占用量。

链接分类:软件链接及硬链接

软链接:

1.软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式

2.软链接可以 跨文件系统 ,硬链接不可以

3.软链接可以对一个不存在的文件名进行链接

4.软链接可以对目录进行链接

硬链接:

1.硬链接,以文件副本的形式存在。但不占用实际空间。

2.不允许给目录创建硬链接

3.硬链接只有在同一个文件系统中才能创建

常用参数

-b 删除,覆盖以前建立的链接
-s 软链接(符号链接)
-v 显示详细处理过程

10.tar命令

用来压缩和解压文件。tar 本身不具有压缩功能,只具有打包功能,有关压缩及解压是调用其它的功能来完成。

-c 建立新的压缩文件
-f 指定压缩文件
-r 添加文件到已经压缩文件包中
-u 添加改了和现有的文件到压缩包中
-x 从压缩包中抽取文件
-t 显示压缩文件中的内容
-z 支持gzip压缩
-j 支持bzip2压缩
-Z 支持compress解压文件
-v 显示操作过程

一般打包用-cvf就行了

将文件全部打包成 tar 包

tar -cvf log.tar  1.log,2.log 或tar -cvf log.*

将 /etc 下的所有文件及目录打包到指定目录,并使用 gz 压缩

tar -zcvf /tmp/etc.tar.gz /etc

查看刚打包的文件内容(一定加z,因为是使用 gzip 压缩的)

tar -ztvf /tmp/etc.tar.gz

要压缩打包 /home, /etc ,但不要 /home/demo

tar --exclude /home/demo -zcvf myfile.tar.gz /home/* /etc

二.文件内容相关

1.cat命令

cat 功能:

一次显示整个文件: cat filename

创建一个文件:  cat > filename

将几个文件合并为一个文件:  cat file1 file2 > file

选项:

-b 对非空输出行号

-n 输出所有行号

把 demo1 的文件内容加上行号后输入 demo2 这个文件里

cat -n demo1 demo2

把 demo1 和 demo2 的文件内容加上行号(空白行不加)之后将内容附加到 demo3 里

cat -b demo1  demo2  demo3

2.head命令

head 用来显示档案的开头至标准输出中,默认 head 命令打印其相应文件的开头 10 行。

参数:

-n<n行数> 显示的倒数n行数(行数为复数表示从最后向前数)

-c<n字节数> 显示文件前n字节数

显示demo文件前 20 字节

head -c 20 demo

显示demo最后10行

head -n -10 t.log

3.tail命令

用于显示指定文件末尾内容,不指定文件时,作为输入信息进行处理。常用查看日志文件。

-f 循环读取(常用于查看递增的日志文件)
-n<行数> 显示行数(从后向前)

ping 127.0.0.1 > ping.log &
后台运行:可使用 jobs -l 查看,也可使用 fg 将其移到前台运行

tail -f ping.log  查看日志

4.more命令

功能类似于 cat, more 会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示。

参数:

+n      从笫 n 行开始显示
-n       定义屏幕大小为n行
+/pattern 在每个档案显示前搜寻该字串(pattern),然后从该字串前两行之后开始显示 
-c       从顶部清屏,然后显示
-d       提示“Press space to continue,’q’ to quit(按空格键继续,按q键退出)”,禁用响铃功能
-l        忽略Ctrl+l(换页)字符
-p       通过清除窗口而不是滚屏来对文件进行换页,与-c选项相似
-s       把连续的多个空行显示为一行
-u       把文件内容中的下画线去掉

常用操作命令:

Enter   向下 n 行,需要定义。默认为 1 行

Ctrl+F   向下滚动一屏

空格键 向下滚动一屏

Ctrl+B 返回上一屏

=       输出当前行的行号

:f     输出文件名和当前行的行号

V     调用vi编辑器

!命令   调用Shell,并执行命令

q       退出more

5.less命令

less 与 more 类似,但使用 less 可以随意浏览文件,而 more 仅能向前移动,却不能向后移动,而且 less 在查看之前不会加载整个文件。

i 忽略搜索时的大小写

-N 显示每行的行号

-o <文件名> 将less 输出的内容在指定文件中保存起来

-s 显示连续空行为一行

/字符串:向下搜索“字符串”的功能

?字符串:向上搜索“字符串”的功能

n:重复前一个搜索(与 / 或 ? 有关)

N:反向重复前一个搜索(与 / 或 ? 有关)

-x <数字> 将“tab”键显示为规定的数字空格

b 向后翻一页

d 向后翻半页

h 显示帮助界面

Q 退出less 命令

u 向前滚动半页

y 向前滚动一行

空格键 滚动一行

回车键 滚动一页

[pagedown]: 向下翻动一页

[pageup]:   向上翻动一页

ps 查看进程信息并通过 less 分页显示

ps -aux | less -N

6.wc命令

wc(word count)功能为统计指定的文件中字节数、字数、行数,并将统计结果输出

参数:

-c 统计字节数

-l 统计行数

-m 统计字符数

-w 统计词数,一个字被定义为由空白、跳格或换行字符分隔的字符串

7.grep命令

强大的文本搜索命令

grep 的工作方式是这样的,它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到标准输出,不影响原文件内容。

常用参数

-A n --after-context显示匹配字符后n行

-B n --before-context显示匹配字符前n行

-C n --context 显示匹配字符前后n行

-c --count 计算符合样式的列数

-i 忽略大小写

-l 只列出文件内容符合指定的样式的文件名称

-f 从文件中读取关键词

-n 显示匹配内容的所在文件中行数

-R 递归查找文件

grep规则表达式

^  #锚定行的开始 如:'^grep'匹配所有以grep开头的行。
$  #锚定行的结束 如:'grep$'匹配所有以grep结尾的行。
.  #匹配一个非换行符的字符 如:'gr.p'匹配gr后接一个任意字符,然后是p。  
*  #匹配零个或多个先前字符 如:'*grep'匹配所有一个或多个空格后紧跟grep的行。
.*   #一起用代表任意字符。  
[]   #匹配一个指定范围内的字符,如'[Gg]rep'匹配Grep和grep。
[^]  #匹配一个不在指定范围内的字符,如:'[^A-FH-Z]rep'匹配不包含A-R和T-Z的一个字母开头,紧跟rep的行。  
\(..\)  #标记匹配字符,如'\(love\)',love被标记为1。  
\<      #锚定单词的开始,如:'\<grep'匹配包含以grep开头的单词的行。
\>      #锚定单词的结束,如'grep\>'匹配包含以grep结尾的单词的行。
x\{m\}  #重复字符x,m次,如:'0\{5\}'匹配包含5个o的行。
x\{m,\}  #重复字符x,至少m次,如:'o\{5,\}'匹配至少有5个o的行。  
x\{m,n\}  #重复字符x,至少m次,不多于n次,如:'o\{5,10\}'匹配5--10个o的行。  
\w    #匹配文字和数字字符,也就是[A-Za-z0-9],如:'G\w*p'匹配以G后跟零个或多个文字或
字字符,然后是p。  
\W    #\w的反置形式,匹配一个或多个非单词字符,如点号句号等。  
\b    #单词锁定符,如: '\bgrep\b'只匹配grep。

三.文件查找相关

1.which命令

在 linux 要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索:

which     查看可执行文件的位置。

whereis 查看文件的位置。

locate 配合数据库查看文件位置。

find       实际搜寻硬盘查询文件名称。

参数:

-n  指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。

2.whereis

whereis 命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s)。如果省略参数,则返回所有信息。whereis 及 locate 都是基于系统内建的数据库进行搜索,因此效率很高,而find则是遍历硬盘查找文件。

-b   定位可执行文件。

-m   定位帮助文件。

-s   定位源代码文件。

-u   搜索默认路径下除可执行文件、源代码文件、帮助文件以外的其它文件

3.locate

locate 通过搜寻系统内建文档数据库达到快速找到档案,数据库由 updatedb 程序来更新,updatedb 是由 cron daemon 周期性调用的。默认情况下 locate 命令在搜寻数据库时比由整个由硬盘资料来搜寻资料来得快,但较差劲的是 locate 所找到的档案若是最近才建立或 刚更名的,可能会找不到,在内定值中,updatedb 每天会跑一次,可以由修改 crontab 来更新设定值 (etc/crontab)。

locate 与 find 命令相似,可以使用如 *、? 等进行正则匹配查找

-l num(要显示的行数)

-f   将特定的档案系统排除在外,如将proc排除在外

-r   使用正则运算式做为寻找条件

4.find

用于在文件树中查找文件,并作出相应的处理。

命令格式:find pathname -options [-print -exec -ok ...]

pathname: find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。

-print: find命令将匹配的文件输出到标准输出。

-exec: find命令对匹配的文件执行该参数所给出的shell命令。相应命令的形式为'command' { }

\;,注意{   }和\;之间的空格。

-ok: 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shell命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。

命令选项:

-name 按照文件名查找文件

-perm 按文件权限查找文件

-user 按文件属主查找文件

-group 按照文件所属的组来查找文件。

-type 查找某一类型的文件,诸如:

  b - 块设备文件

  d - 目录

  c - 字符设备文件

  l - 符号链接文件

  p - 管道文件

  f - 普通文件

-size n :[c] 查找文件长度为n块文件,带有c时表文件字节大小

-amin n   查找系统中最后N分钟访问的文件

-atime n 查找系统中最后n*24小时访问的文件

-cmin n   查找系统中最后N分钟被改变文件状态的文件

-ctime n 查找系统中最后n*24小时被改变文件状态的文件

-mmin n   查找系统中最后N分钟被改变文件数据的文件

-mtime n 查找系统中最后n*24小时被改变文件数据的文件

(用减号-来限定更改时间在距今n日以内的文件,而用加号+来限定更改时间在距今n日以前的文件。 )

-maxdepth n 最大查找目录深度

-prune 选项来指出需要忽略的目录。在使用-prune选项时要当心,因为如果你同时使用了-depth

项,那么-prune选项就会被find命令忽略

-newer 如果希望查找更改时间比某个文件新但比另一个文件旧的所有文件,可以使用-newer选项

四.进程系统相关

1.ps命令

ps,用来查看当前运行的进程状态,一次性查看,如果需要动态连续结果使用 top

linux上进程有5种状态:

1-运行(正在运行或在运行队列中等待)

2-中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)

3-不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)

4-僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)

5-停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)

ps 工具标识进程的5种状态码:

D 不可中断 uninterruptible sleep (usually IO)

R 运行 runnable (on run queue)

S 中断 sleeping

T 停止 traced or stopped

Z 僵死 a defunct (”zombie”) process

选项

-A 显示所有进程

a 显示所有进程

-a 显示同一终端下所有进程

c 显示进程真实名称

e 显示环境变量

f 显示进程间的关系

r 显示当前终端运行的进程

-aux 显示所有包含其它使用的进程

2.top命令

显示当前系统正在执行的进程的相关信息,包括进程 ID、内存占用率、CPU 占用率等

-c 显示完整的进程命令

-s 保密模式

-p <进程号> 指定进程显示

-n <次数>循环显示次数

top - 05:18:50 up 14:04,  3 users,  load average: 0.11, 0.11, 0.04
Tasks: 375 total,   1 running, 374 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.1 us,  0.1 sy,  0.0 ni, 99.8 id,  0.0 wa,  0.0 hi,  0.1 si,  0.0 st
MiB Mem :   1800.6 total,    118.3 free,   1137.1 used,    545.2 buff/cache
MiB Swap:   2092.0 total,   1660.0 free,    432.0 used.    482.1 avail Mem 

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                      
   1033 root      20   0  292284   9528   7928 S   0.3   0.5   0:47.84 vmtoolsd                                     
   2531 root      20   0  442792  10316   8636 S   0.3   0.6   0:13.40 goa-identity-se                              
  24315 root      20   0   65000   4912   4016 R   0.3   0.3   0:00.14 top             

第一行,任务队列信息,同 uptime 命令的执行结果,具体参数说明情况如下:

05:18:50 — 当前系统时间

up 14:04 — 会显示系统已运行时间

3 users — 当前有2个用户登录系统

load average: 0.11, 0.11, 0.04 — load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。

load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了

第二行,Tasks — 任务(进程),具体信息说明如下:

系统现在共有375个进程,其中处于运行中的有1个,374个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸)的有0个。

第三行,cpu状态信息,具体属性说明如下:

用户空间占用CPU的百分比。

 sy — 内核空间占用CPU的百分比。

 ni — 改变过优先级的进程占用CPU的百分比

 id — 空闲CPU百分比

 wa — IO等待占用CPU的百分比

 hi — 硬中断(Hardware IRQ)占用CPU的百分比

 si — 软中断(Software Interrupts)占用CPU的百分比

第四行,内存状态,具体信息如下:

 total — 物理内存总量

used — 使用中的内存总量

 free — 空闲内存总量

buffers — 缓存的内存量 

第五行,swap交换分区信息,具体信息说明如下:

total — 交换区总量

 used — 使用的交换区总量

 free — 空闲交换区总量

cached — 缓冲的交换区总量

第七行以下:各进程(任务)的状态监控,项目列信息说明如下:

PID — 进程id

USER — 进程所有者

PR — 进程优先级

NI — nice值。负值表示高优先级,正值表示低优先级

VIRT — 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES

RES — 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA

SHR — 共享内存大小,单位kb

S — 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程

%CPU — 上次更新到现在的CPU时间占用百分比

%MEM — 进程使用的物理内存百分比

TIME+ — 进程使用的CPU时间总计,单位1/100秒

COMMAND — 进程名称(命令名/命令行

top 交互

h 显示top交互命令帮助信息

c 切换显示命令名称和完整命令行

m 以内存使用率排序

P 根据CPU使用百分比大小进行排序

T 根据时间/累计时间进行排序

W 将当前设置写入~/.toprc文件中

o或者O 改变显示项目的顺序

 3.kill命令

发送指定的信号到相应进程。不指定型号将发送SIGTERM(15)终止指定进程。如果任无法终止该程序可用"-KILL" 参数,其发送的信号为SIGKILL(9) ,将强制结束进程,使用ps命令或者jobs 命令可以查看进程号。root用户将影响用户的进程,非root用户只能影响自己的进程。

常用参数

-l 信号,若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称

-a 当处理当前进程时,不限制命令名和进程号的对应关系

-p 指定kill 命令只打印相关进程的进程号,而不发送任何信号

-s 指定发送信号

-u 指定用户

4.free命令

显示系统内存使用情况,包括物理内存、交互区内存(swap)和内核缓冲区内存。

命令参数

-b 以Byte显示内存使用情况

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

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

-g 以gb为单位显示内存使用情况

-s<间隔秒数> 持续显示内存

-t 显示内存使用总合

五。权限相关

1.chmod命令

用于改变 linux 系统文件或目录的访问权限。

-rw-r--r--. 1 root root 252 3月  13 05:42 user.sh

第一列共有 10 个位置,第一个字符指定了文件类型。在通常意义上,一个目录也是一个文件。如果第一个字符是横线,表示是一个非目录的文件。如果是 d,表示是一个目录。从第二个字符开始到第十个 9 个字符,3 个字符一组,分别表示了 3 组用户对文件或者目录的权限。权限字符用横线代表空许可,r 代表只读,w 代表写,x 代表可执行。

参数:

-c 当发生改变时,报告处理信息

-R 处理指定目录以及其子目录下所有文件

u :目录或者文件的当前的用户

g :目录或者文件的当前的群组

o :除了目录或者文件的当前用户或群组之外的用户或者群组

a :所有的用户及群组

r :读权限,用数字4表示

w :写权限,用数字2表示

x :执行权限,用数字1表示

- :删除权限,用数字0表示

s :特殊权限

2.chown命令

chown 将指定文件的拥有者改为指定的用户或组,用户可以是用户名或者用户 ID;组可以是组名或者组 ID;文件是以空格分开的要改变权限的文件列表,支持通配符。

-c 显示更改的部分的信息

-R 处理指定目录及子目录

六.磁盘空间

1.df命令

显示磁盘空间使用情况。获取硬盘被占用了多少空间,目前还剩下多少空间等信息,如果没有文件名被指定,则所有当前被挂载的文件系统的可用空间将被显示。默认情况下,磁盘空间将以 1KB 为单位进行显示,除非环境变量 POSIXLY_CORRECT 被指定,那样将以512字节为单位进行显示:

-a 全部文件系统列表

-h 以方便阅读的方式显示信息

-i 显示inode信息

-k 区块为1024字节

-l 只显示本地磁盘

-T 列出文件系统类型

2.du命令

du 命令也是查看使用空间的,但是与 df 命令不同的是 Linux du 命令是对文件和目录磁盘使用的空间的查看:

命令格式:du [选项] [文件]

-a 显示目录中所有文件大小

-k 以KB为单位显示文件大小

-m 以MB为单位显示文件大小

-g 以GB为单位显示文件大小

-h 以易读方式显示文件大小

-s 仅显示总计

-c或--total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和

七.时间日期相关

1.date命令

显示或设定系统的日期与时间。

-d<字符串>  显示字符串所指的日期与时间。字符串前后必须加上双引号。

-s<字符串>  根据字符串来设置日期与时间。字符串前后必须加上双引号。

-u  显示GMT。

%H 小时(00-23)

%I 小时(00-12)

%M 分钟(以00-59来表示)

%s 总秒数。起算时间为1970-01-01 00:00:00 UTC。

%S 秒(以本地的惯用法来表示)

%a 星期的缩写。

%A 星期的完整名称。

%d 日期(以01-31来表示)。

%D 日期(含年月日)。

%m 月份(以01-12来表示)。

%y 年份(以00-99来表示)。

%Y 年份(以四位数来表示)。

2.cal命令

可以用户显示公历(阳历)日历如只有一个参数,则表示年份(1-9999),如有两个参数,则表示月份和年份:

常用的参数:

-3 显示前一月,当前月,后一月三个月的日历

-m 显示星期一为第一列

-j 显示在当前年第几天

-y [year]显示当前年[year]份的日历

八.端口号相关

1.netstat命令

t - 显示TCP端口。

u - 显示UDP端口

n - 显示数字地址而不是解析主机。

l - 仅显示侦听端口。

p - 显示监听端口对应的进程PID和名称。只有当用户拥有root或sudo权限时,才会显示此信息。

2.ss命令

ss是新的监听端口查看命令。比起netstat,它缺少一些功能,但暴露了更多的TCP状态,而且速度稍快。命令选项大致相同,因此从netstat转为使用ss并不困难。

3.lsof命令

lsof是一个功能强大的命令行实用工具,它将列出当前系统中进程已打开的文件信息。lsof作为Linux下的一个非常实用的系统级的监控、诊断工具,它被广泛的使用。由于lsof需要访问核心内存和各种文件,所以最好使用root或者sudo用户执行lsof命令。

-n - 不要将端口号转换为端口名称。

-p - 不要解析主机名,显示数字地址。

-iTCP -sTCP:LISTEN - 仅显示TCP状态LISTEN的网络文件。

使用lsof命令查看3306端口监听情况

lsof -nP -iTCP:3306 -sTCP:LISTEN

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值