首页 > 编程语言 > 详细

《Java周边》Linux的常用命令操作大全

时间:2020-05-08 21:24:34      阅读:60      评论:0      收藏:0      [点我收藏+]

前言

在学习命令之前先学习我们该如何去学习linux 命令。

几乎每一个命令都有参数,每个参数的含义是什么,我们一般也不是全部都能记住,所以我们必须有一个可以知道每一个命令下各个参数的含义的方法。

命令 --help  这个就是查询每一个命令的使用方式和各个参数的使用说明。

举例:mkdir --help

技术分享图片

我们可以看到显示的信息对mkdir 做了说明,对-p -m -v -z 这几个参数也一一做了说明。

1. 文件和目录

cd 打开文件夹的命令,通过cd命令我们可以自由的操作文件的切换。

cd /home                  打开home文件夹

技术分享图片

cd ..                         打开上级目录

cd ../..                      打开上上级目录

cd ~                         打开自己的主目录

cd -                          打开上次访问的目录

 

ls 是查看当前目录下的文件夹和文件的情况。

ls                              查看当前目录下的文件夹和文件    

技术分享图片

ls -l (ll)                      查看当前目录下的文件夹和文件的详细信息。  ll 是ls -l 的简写

ls -a                          查看当前目录下的文件夹和文件包含隐藏文件

ls -lh                         查看当前目录下的文件夹和文件并且带上文件的大小信息

ls *[j]*                       查看当前目录下的带j的文件夹及文件夹里面的内容

 

pwd  显示当前目录的全路径。

 

mkdir 创建文件夹。

mkdir xxx                  创建一个叫xxx的文件夹

技术分享图片

 

mkdir -p xxx/xxx       创建xxx文件和xxx文件里面的xxx文件

mkdir bbb ccc           创建bbb和ccc两个文件夹

 

touch 用于创建文件。

touch bbb.txt             创建一个bbb.txt文件

技术分享图片

 

vi 用于编辑文件内容,vi 等同于 vim.

vi bbb.txt                   进入文件bbb.txt,默认不能修改。 修改需要按下键盘“i”字母

技术分享图片

文件底部会出现INSERT, 这个时候就表示可以输入内容了。

i                              在vi下表示进入编辑状态。

技术分享图片

输入信息后,先按Esc推出编辑模式,然后输入“:wq”  表示保存并退出。

:wq                        表示保存并退出

:q                           表示直接退出

:q!                          表示强行退出

:set fileencoding=utf-8      设置文件编码为utf-8(文件内容不会变化)

技术分享图片

这个时候再使用vi查看,就可以看到我们输入的信息了。vi命令是我们最常用的命令,vi 下还包含大量快速操作文本的命令,有需要的自学。^-^!

 

rm 用于删除文件和文件夹。

rm aaa.txt               表述删除文件aaa.txt。 这个命令会给出一个提示是否需要删除,选择y就是删除,选择n 就是不删除

技术分享图片

rm -f bbb.txt             -f 参数表示删除文件的意思,这个时候删除就不会有提示,直接删除

rm -rf aaa                -rf参数表示删除文件夹及文件夹里面的全部内容

rmdir bbb                 表示删除文件夹,文件里面不能包含内容。

 

mv 移动文件或文件夹。

mv aaa.txt aaa         表示移动文件aaa.txt 到目录aaa下面。

技术分享图片

mv bbbb aaa          表示将bbbb文件夹移动到aaa下面。

 

cp 复制文件夹或者文件信息

cp aaa.txt bbb.txt    复制文件aaa.txt 的内容到bbb.txt,当bbb.txt 不存在的时候的会创建一个。存在会覆盖,覆盖会有提示。

技术分享图片

cp -a /home/bbbb /home/aaa/       复制文件夹到另外一个文件夹

 

cat 命令用于连接文件并打印到标准输出设备上。

cat aaa.txt                 查询aaa.txt 文件内容,打印到输出设备上

技术分享图片

cat -n aaa.txt             给输出信息编上行号。

 

tail 命令可用于查看文件的内容,有一个常用的参数 -f 常用于查阅正在改变的日志文件。

tail aaa.txt                 显示文件尾部10行信息

技术分享图片

tail -f aaa.txt              显示文件尾部10行信息,并且不断更新信息,适合查询程序运行中日志的打印情况,Ctrl + c 退出文件显示

tail -f -n20  aaa.txt     显示文件尾部20行信息,并且不断更新信息,适合查询程序运行中日志的打印情况,Ctrl + c 退出文件显示

 

find 命令用来在指定目录下查找文件。

find . -name "*.txt"        将目前目录及其子目录下所有扩展名是 txt 的文件列出来

技术分享图片

find . -name "aaa.txt"   将目前目录及其子目录下所有aaa.txt的文件列出

find /home/aaa/ -name "aaa.txt"    将指定目录及其子目录下所有aaa.txt的文件列出

find / -user jar              将根目录下属于用户jar的文件全部列出

find . -ctime -20           将目前目录及其子目录下所有最近 20 天内更新过的文件列出

 

file 该命令用于辨识文件类型 

file aaa.txt                  查看aaa.txt的文件的编码,文件类型。

技术分享图片

 

iconv 该命令用于转换指定文件的编码,默认输出到标准输出设备,亦可指定输出文件。

iconv -f utf-8 -t gb2312 aaa.txt >bbb.txt            将aaa.txt文件内容复制到bbb.txt中并且将编码从utf-8改成gb2312

 

2. 用户、组

/etc/group  存储当前系统中的用户组信息

技术分享图片

注意:  

    1.当该组内只有一个用户,并且用户名和组名相同时,在组列表中,包含用户一列可以为空

    2.系统中root分组的组编号一定为0

    3.组号1~499为系统预留的组编号,一般是预留给系统安装的软件或者服务的编号,越早安装的软件或者服务的组编号约早。用户手动创建的用户组编号从500开始

    4.组密码占位符,无一例外,全部用x表示

 

/etc/gshadow  存储当前系统中用户组的密码信息

技术分享图片

注意:

    1.如果组密码处为“*” “!”或者为空时候,则该组没有密码

    2.如果组管理者为空,则表示该组内所有成员都可以管理该组

 

/etc/passwd  存储当前系统中所有的用户信息

技术分享图片

 

/etc/shadow  存储当前系统中所有用户的密码信息

技术分享图片

 

useradd 创建用户。

useradd hu                  创建一个名叫hu的用户

              在下面两个地方可以看到我们的创建信息

              1.会在/etc/passwd文件中添加xxx用户的信息

    2.会在/etc/group文件中添加一个名为xxx的用户组信息

useradd -d /home/helloworld hu     创建用户和用户的home目录

useradd -m hello        创建用户和home文件夹,文件夹在当前路径下新建

useradd -g root hello  创建用户hello,并为其分配已经存在的组

 

usermod 修改用户信息。

usermod -l huu hu          将hu用户的名字修改成huu

usermod -u 888 huu       修改huu用户的id

技术分享图片

usermod -d aaa huu       修改用户huu的home目录

usermod -g root huu       修改用户的主用户组

 

userdel 删除用户信息。

userdel hu1                     删除用户信息

                                        在/etc/passwd文件中就看不到hu1用户的信息

userdel -r huu                  删除用户信息及用户的home目录信息

 

groupadd 创建一个用户组。

groupadd hu                    创建一个用户组hu

 

groupmod 修改用户组信息。

groupmod -n hu4 hu      修改用户组hu3成hu4

        

groupdel 删除用户组信息。

groupdel hu4                 删除用户组hu4

 

chgrp 修改所属用户组信息。

chgrp hello hu                将文件夹hu的所属用户组改成hello

 

chown 修改文件或者文件夹的所属用户和用户组信息

chown hu2:hu2 hu         将文件夹hu的所属用户和用户组改成hu2

技术分享图片

chown hello hu              将文件夹hu的所属用户改成hello

 

su 切换用户

su hu                             切换成hu用户

 

3. 权限

技术分享图片

如图所示:

技术分享图片

文档类型说明:

             d - 目录,例如上表档名为『.gconf』的那一行;
    - - 文档,例如上表档名为『install.log』那一行;
    l  - 连结档(link file);
    b - 装置文件里面的可供储存的接口设备(可随机存取装置);
    c - 装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。

  权限由rwx三个字幕表示,分别表示为可读、可写、可执行,如果没有该权限,则用“ - ”表示,对于目录来说,必须有x权限,否则无法读取目录内容

  如果文件名前面有“ . ”,则表示这个文档或目录是隐藏的

 

chmod  修改文件或者文件夹权限。

chmod 777 hello             修改文件夹hello的权限,改成最大权限

技术分享图片

rwxst      r  读权限;  w 写权限; x 可执行权限; s  执行文件时,拥有该文件所有者的权限; t  临时拥有权限可读可写,但是都只能操作自己的文件,不能操作别人的文件。

-rw------- (600) -- 只有属主有读写权限。

-rw-r--r-- (644) -- 只有属主有读写权限;而属组用户和其他用户只有读权限。

-rwx------ (700) -- 只有属主有读、写、执行权限。

-rwxr-xr-x (755) -- 属主有读、写、执行权限;而属组用户和其他用户只有读、执行权限。

-rwx--x--x (711) -- 属主有读、写、执行权限;而属组用户和其他用户只有执行权限。

-rw-rw-rw- (666) -- 所有用户都有文件读、写权限。这种做法不可取。

-rwxrwxrwx (777) -- 所有用户都有读、写、执行权限。更不可取的做法。

操作权限的另外一种方式:

chmod u+w  hello               给文件或者文件夹所属用户加上w权限

chmod g-r hello                  给文件或者文件夹所属用户组去掉r权限

chmod a+x hello                给用户,组,其他都加上x权限

 

root 用户之所以可以再任何地方执行任何文件,就是/etc/sudoers 文件配置的。

/etc/sudoers

技术分享图片

上图可以看到有好几种设置权限的地方。

 

4. 进程、端口

执行 top 命令会显示下图信息

技术分享图片

PID                    进程号

USER                进程所属用户信息

PR                     piriority,优先级,数字越小越优先被执行

NI                      nice,与priority相关,也是数字越小越先被执行

VIRT                 占用虚拟内存的总量

RES                  进程占用的物理内存

SHR                  共享内存大小

S                       进程状态 R 运行状态、S 睡眠状态、D 不可中断的睡眠状态、T 暂停状态、Z 退出状态,僵死进程、X 退出状态,进程即将被销毁

%CPU               CUP使用占比

%MEM              内存使用占比

TIME+               进程累计使用cpu进行运算的时间

COMMAND       进程名称

 

ps 命令用于显示当前进程 (process) 的状态。

ps -ef                                  查看全部进程情况(信息全)

ps -aux                               与ps -ef 效果差不多

ps -axjfc                             查看全部进程情况,进程名显示简称

ps aux | grep tomcat          查询用户tomcat使用的全部进程情况

 

top 展示系统的当前状态以及进程信息,并且定时刷新.

top -p 21481                      查询PID 等于 21481的进程详情

top -H -p 21481                 查询PID 等于 21481的全部线程程详情

top -u jar                            查询用户为jar的进程详情

因为top命令显示的是动态结果:我们就会存在如下需求,能不能显示结果按照内存大小排序,按照CUP使用情况排序等。

以下是交互命令:

按“h”或者“?”,会显示帮助,如下

 技术分享图片

Z:改变颜色;B:加粗

t:显示和隐藏任务/cpu信息;m:内存信息

1:监控每个逻辑CPU的状况;

f:进入字段显示配置模式,可增加或者移除显示字段,按相应的字母新增或去除;o:进入字段顺序设置模式,可配置显示位置顺序,按相应的字母往下移动,按“shift+相应的字母”往上移动         ---------常用

F:进入字段排序配置模式,可设置排序的字段;

R:正常排序/反向排序;

s:设置刷新的时间--------常用

u:输入用户,显示用户的任务

i:忽略闲置和僵死进程。这是一个开关式命令。

r:重新安排一个进程的优先级别。系统提示用户输入需要改变的进程PID以及需要设置的进程优先级值。输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权。默认值是10。

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

M:根据驻留内存大小进行排序。-------------常用

P:根据CPU使用百分比大小进行排序。-----------常用

H:显示线程

 

kill 该命令用于删除执行中的程序或工作.

kill 123456                          杀死PID为123456的进程

kill -KILL 123456                强制杀死PID为123456的进程

kill -9 123456                     彻底杀死PID为123456的进程           

 

ss 该命令可以用来获取socket统计信息。

ss -napt | grep 18910         通过进程号,查询使用的端口号

技术分享图片

 

图中8080就是进程18910使用的端口号。

ss -lntpd | grep :8080        通过端口号查询进程号信息

技术分享图片

图中18910就是端口8080使用的进程号。

 

netstat 因为已经全面被ss 命令替代,故这里直接跳过。

 

grep 命令用于查找文件里符合条件的字符串,经过配合其他命令一起使用,单独使用较少。

grep jj *txt                                                查询后缀为txt文件中出现jj的行信息并且打印到控制台。

grep -n ‘2019-10-24 00:01:11‘ *.log        查询后缀为log文件中出现‘2019-10-24 00:01:11‘ 的行信息,带行号并且打印到控制台。

grep -e ‘^j‘ *.txt                                        -e 是正则表达式查询信息,^j   是首字母为j的意思。

 

5. 其他常用命令

sh 是shell命令语言解释器,执行命令从标准输入读取或从一个文件中读取. (简单的说是执行可执行文件使用)。

技术分享图片

文件里面就写了一句:

技术分享图片

 

date 用于显示和修改时间的命令

date                                    显示系统日期

date ‘+%Y-%m-%d %H:%M:%S‘       显示我们习惯的日期显示方式

技术分享图片

date ‘+%Y-%m-%d %H:%M:%S %A‘       显示我们习惯的日期显示方式加上星期的显示

技术分享图片

date ‘+%Y-%m-%d %X %A %Z‘              也可以显示时间

date -s 05/08/20                                       修改系统年月日

技术分享图片

date -s ‘2020-05-07 09:09:09‘                 修改系统年月日时分秒

 

ntpdate 同步时间命令。

ntpdate -u ntp.ntsc.ac.cn                         同步时间与国家授时中心时间对齐(对齐时间之前需要先确认你的时区设置是否有问题) 

 

后续遇到常用命令继续更新。。。。。。

《Java周边》Linux的常用命令操作大全

原文:https://www.cnblogs.com/jssj/p/12833214.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!