Linux常用命令宝典(简单易懂)

一.目录命令大全

pwd        //查看当前工作目录

clear        //清除屏幕

cd ~        //当前用户目录

cd /        //根目录

cd -        //上一次访问的目录

cd ..        //上一级目录

查看目录内的信息 

ll        //查看当前目录下内容(LL的小写!!!)

创建目录

mkdir a        //在当前目录下创建a目录,相对路径

mkdir ./b        //在当前目录下创建b目录,相对路径

mkdir /c        //在根目录下创建c目录,绝对路径

 递归创建目录

mkdir -p temp/nginx 

搜素目录 

find / -name 'a'        //查询根目录下(包括子目录),以a的目录和文件

find / -name 'a*'        //查询根目录下(包括子目录),以a开头的目录和文件

重命名 

mv   原来目录文件的名称     mv tomcat001 tomcat

剪切 

mv     /a  /b        //将根目录下的a目录移动到b目录下

mv   b   usr/a        //将当前目录下的b目录移动到usr目录下,并且修改名称为a

mv  b   usr/a        //将当前目录下的b目录移动到usr下,并且修改名称为a

复制 

cp   -r   /a   /b        //将目录下的a目录复制到b目录下,在b目录下的名称为a

cp   -r    /a    /b    /c       //将目录下的a目录复制到b目录下,并且修改名称为c

 强制式删除指定目录

rm    -rf     /a        //强制删除目录下的a目录,如果a目录下还有子目录,也会被强制删除且不会提示

删除目录

rm    -r     /a        //普通删除,会询问你是否删除每一个文件

二.文件操作

 删除

rm      -r      a.java        //删除当前目录下的a.java文件(每次回询问是否删除y:同意)

强制删除 

rm     -rf     a.java        //强制删除当前目录下的a.java文件

rm     -rf     ./a*        //强制删除当前目录下以a开头的所有文件

rm     -rf    ./*         //强制删除当前目录下的所有文件

创建文件

 touch      testFile

递归删除.pyc格式的文件

 find    .    -name   '*.pyc'    -exec   rm    -rf   {}   \;

打印当前文件夹下指定大小的文件

 find    .     name "*"  -size   145800c   -print

 递归删除指定大小的文件(145800)

find    .    -name    "*"   -size   145800c   -exec   rm   -rf  {}\;

递归删除指定大小的文件,并打印出来 

find    .   -name    "*"   -size   145800c    -print    -exec    rm    -rf   {}   \;

 "." 表示从当前目录开始递归查找
“ -name '*.exe' "根据名称来查找,要查找所有以.exe结尾的文件夹或者文件
" -type f "查找的类型为文件
"-print" 输出查找的文件目录名
-size 145800c 指定文件的大小
-exec rm -rf {} \; 递归删除
三、文件内容操作(查看日志,更改配置文件)

修改文件内容

vim   a.java        //进入一般模式

i(按键)        //进入插入模式(编辑模式)

ESC(按键)        //退出

:wq        //保存退出(shift+:调起输入框)

:q!        //不保存退出(shift+:调起输入框)(内容更改)

:q        //不保存退出(shift+:调起输入框)(没有内容更改)

文件内容的查看

 cat a.java                //查看a.java文件的最后一页内容;
more a.java               // 从第一页开始查看a.java文件内容,按回车键一行一行进行查看,
                                     按空格键一页一页进行查看,q退出;
less a.java                //从第一页开始查看a.java文件内容,按回车键一行一行的看,
                    按空格键一页一页的看,支持使用PageDown和PageUp翻页,q退出;

 more 和 less的区别:

1.less可以按键盘上下方向键显示上下内容,more不能通过上下方向键控制显示
2.less不必读整个文件,加载速度会比more更快
3.less退出后shell不会留下刚显示的内容,而more退出后会在shell上留下刚显示的内容.
4.由于more不能后退.

实时查看文件后几行(实时查看日志)

tail    -f    a.java        //查看a.java文件的后十行内容

前后几行查看

head     a.java        //查看a.java文件的前10行内容

tail    -f     a.java        //查看a.java文件的后10行内容

head     -n    7    a.java         //查看a.java文件的7行内容

tail    -n    7    a.java        //查看a.java文件的后7行内容

文件内部搜索指定的内容 

grep under 123.txt           在123.txt文件中搜索under字符串,大小写敏感,显示行;
grep -n under 123.txt      在123.txt文件中搜索under字符串,大小写敏感,显示行及行号;
grep -v under 123.txt   在123.txt文件中搜索under字符串,大小写敏感,显示没搜索到的行;
grep -i under 123.txt        在123.txt文件中搜索under字符串,大小写敏感,显示行;
grep -ni under 123.txt        在123.txt文件中搜索under字符串,大小写敏感,显示行及行号;

终止当前操作

 Ctrl+cCtrl+z都是中断命令,但是作用却不一样。

区别 

Ctrl+Z就扮演了类似的角色,将任务中断,但是任务并没有结束,在进程中只是维持挂起的状态,用户可以使用fg/bg操作前台或后台的任务,fg命令重新启动前台被中断的任务,bg命令把被中断的任务放在后台执行。
Ctrl+C也扮演类似的角色,强制中断程序的执行。 

重定向功能

使用>或<将命令的输出的命令重定向到test.txt文件,如果没有则创建一个。

echo  'hello   word'   >  /root/test.txt

四、系统日志位置 

cat /etc/redhat-release        查看操作系统版本
/var/log/message         系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一
/var/log/message        系统启动后的信息和错误日志,是Red Hat Linux中最常用的日志之一 
/var/log/secure                与安全相关的日志信息 
/var/log/maillog            与邮件相关的日志信息 
/var/log/cron                与定时任务相关的日志信息 
/var/log/spooler            与UUCP和news设备相关的日志信息 
/var/log/boot.log            守护进程启动和停止相关的日志消息 

查看某文件下的用户操作日志 

cat    .bash_history

五、创建与删除软连接 

创建软连接(创建软连接时,data目录后不加/(加上后是查找下一级目录))

In   -s   /usr/local/app/data

 

 删除软连接(取消软连接最后没有/,rm -rf软连接。加上/是删除文件夹)

rm    -rf   /data

 

六、压缩和解压缩

 

压缩(-c)

 tar -cvf start.tar a.java b.java        //将当前目录下a.java、b.java打包
tar -cvf start.tar ./*                    //将当前目录下的所欲文件打包压缩成haha.tar文件

tar -zcvf start.tar.gz a.java b.java    //将当前目录下a.java、b.java打包
tar -zcvf start.tar.gz ./*                //将当前目录下的所欲文件打包压缩成haha.tar.gz文件

解压缩(-x)

 tar -xvf start.tar                           //解压start.tar压缩包,到当前文件夹下;
tar -xvf start.tar -C usr/local         //(C为大写,中间无空格)
                                                    //解压start.tar压缩包,到/usr/local目录下;

tar -zxvf start.tar.gz                     //解压start.tar.gz压缩包,到当前文件夹下;
tar -zxvf start.tar.gz -C usr/local     //(C为大写,中间无空格)
                                                      //解压start.tar.gz压缩包,到/usr/local目录下;

解压缩tar.xz文件 

tar   xf    nade-v12.18.1-linux-x64.tar.xz

压缩(zip)

zip lib.zip tomcat.jar                            //将单个文件压缩(lib.zip)
zip -r lib.zip lib/                                //将目录进行压缩(lib.zip)
zip -r lib.zip tomcat-embed.jar xml-aps.jar        //将多个文件压缩为zip文件(lib.zip)    

 解压缩(unzip)

unzip file1.zip //解压一个zip格式压缩包

unzip -d /usr/app/com.lydms.english.zip //将`english.zip`包,解压到指定目录下`/usr/app/`

七、Linux下文件的详细信息

 R:Read  w:write  x: execute执行
-rw-r--r-- 1 root root  34942 Jan 19  2018 bootstrap.jar
前三位代表当前用户对文件权限:可以读/可以写/不能执行
中间三位代表当前组的其他用户对当前文件的操作权限:可以读/不能写/不能执行
后三位其他用户对当前文件权限:可以读/不能写/不能执行

 更改文件的权限

chmod u+x web.xml (---x------)        为文件拥有者(user)添加执行权限;
chmod g+x web.xml (------x---)        为文件拥有者所在组(group)添加执行权限;
chmod 111 web.xml  (---x--x--x)    为所有用户分类,添加可执行权限;

chmod 222 web.xml (--w--w--w-)        为所有用户分类,添加可写入权限;    
chmod 444 web.xml (-r--r--r--)        为所有用户分类,添加可读取权限;

八、常用的docker容器的命令 

下载镜像,Linux服务器下载安装包镜像命令

wget https://mirrors.huaweicloud.com/elasticsearch/7.8.0/elasticsearch-7.8.0-windows-x86_64.zip

 华为开源镜像站

常用命令

#1、查看docker中下载好的镜像:
docker images
 #2、查询需要的容器名称:
docker search mysql
#3、将需要的docker容器下载运行到本地(名称、端口号、msyql密码、ID):
docker run -di --name=first -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root 26d26dsfsd31a
#4、查看运行的docker容器:
docker ps
#5、查看所有的docker容器(包括未运行的):
docker ps -a
#6、停止当前运行的docker容器:
docker stop first
#7、启动docker容器:
docker start first
#8、重启docker容器:
docker restart first
#9、删除docker容器:
docker rm first

九、运维常用命令

查看服务器端口是否可用

ping  49.32.587.164

查看服务器指定端口是否可用 

telnet   49.32.587.164.8093

 shutdown(关闭计算机)

       shutdown是最常用也是最安全的关机和重启命令,它会在关机之前调用fsck检查磁盘,其中-h和-r是最常用的参数:

-h:        //停止系统服务并关机

-r:        //停止系统服务后重启

举例: 

shutdown -h now  --立即关机  
shutdown -h 10:53  --到10:53关机,如果该时间小于当前时间,则到隔天  
shutdown -h +10  --10分钟后自动关机  
shutdown -r now  --立即重启  
shutdown -r +30 'The System Will Reboot in 30 Mins'   --30分钟后重启并并发送通知给其它在线用户  

查看处于各种连接状态数量(ESTABLISHED、CLOSE_WAIT、TIME_WAIT) 

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

 查看处于ESTABLISHED状态连接

 netstat -nt | awk '{if($NF=="ESTABLISHED"){wait[$5]++}}END{for(i in wait) print i,wait[i]}'

 查看处于CLOSE_WAIT状态连接

netstat -nt | awk '{if($NF=="CLOSE_WAIT"){wait[$5]++}}END{for(i in wait) print i,wait[i]}'

查看处于TIME_WAIT状态连接 

netstat -nt | awk '{if($NF=="TIME_WAIT"){wait[$5]++}}END{for(i in wait) print i,wait[i]}'

ping命令 (向www.lydms.com 发送 4 个 ping 包, 检查与其是否联通)

ping -c 4 www.lydms.com

 netstat 命令

   netstat 命令用于显示各种网络相关信息,如网络连接, 路由表, 接口状态等等;
列出所有处于监听状态的tcp端口:

netstat -lt

 查看所有的端口信息, 包括 PID 和进程名称

netstat -tulpn

 查看当前端口号占用情况

lsof -i:8080

显示tcp,udp的端口和进程等相关情况 

netstat   -tunlp

指定端口号的进程情况 

netstat -tunlp|grep 8080

 查看PID进程信息

ps -aux |grep 28990

根据PID,查看JVM中各线程信息(‘0x9eb’为nid值) 

jstack 2246|grep '0x9eb' -A 50

ps命令 (过滤得到当前系统中的ssh进程信息)

ps aux | grep 'ssh'

管道命令 

简单来说, Linux 中管道的作用是将上一个命令的输出作为下一个命令的输入, 像 pipe 一样将各个命令串联起来执行, 管道的操作符是 |
管道命令查看当前运行的程序中,名称为java的程序

ps -ef|grep java

 查看/etc/passwd文件中的root内容

cat /etc/passwd | grep 'root'

 查看当前系统的ip连接(Windows和Linux通用)

netstat -an

        将sh test.sh任务放到后台,并将打印的日志输出到nohup.out文件中,终端不再能够接收任何输入(标准输入)

nohup sh test.sh &

       将sh test.sh任务放到后台,并将打印的日志输出到nohup.out文件中,终端能够接收任何输入 

nohup sh test.sh &

 添加Host地址

打开配置文件

vim /etc/hosts

在打开的文件中添加 

49.235.32.164 www.lydms.com

保存文件后,重启网络 

/etc/init.d/network restart

重新加载成功 

十、yum常用命令

yum install iptables-services        //下载并安装iptables
yum list                                        //列出当前系统中安装的所有包
yum search package_name        //在rpm仓库中搜寻软件包
yum update package_name.rpm //更新当前系统中所有安装的rpm包
yum update package_name        //更新一个rpm包
yum remove package_name       //删除一个rpm包
yum clean all                               // 删除所有缓存的包和头文件

十一、其他命令

查看历史使用命令

history

过滤与es相关命令 

history | grep es

 查看占用资源

ps -au          //占用的资源是从进程启动开始,计算的平均占用资源,比如cpu等

top              //实时占用的资源;

 查看当前目录所占存储

du -lh         //查看当前文件下各文件夹占用存储空间

du -sh         //查看当前文件夹所占存储空间

du --max-depth=<目录层数> 超过指定层数的目录后,予以忽略。

du --max-depth=1         //只查看当前目录下文件占用的存储空间

 管道命令:

根据项目查看进程,更加PID查看项目,以及项目路径

ps -ef         //查看所有的进程

ps -ef | grep mysql         //查看mysql相关的进程

通过进程PID查看所占用的端口号 

netstat -nap |grep 进程ID(PID)

查看Linux下系统存储使用率 

df -h         //查看系统硬盘使用情况

杀死进程(根据PID) 

kill -9 2630         //进程pid

关闭防火墙

 service iptables stop        // 临时关闭防火墙

chkconfig iptables off         //防火墙开启不启动

service iptables status         //查看防火墙状态

 开机启动选项

msconfig         //查看开机启动选项

chkconfig         //查看开机启动服务列表

 查看MySQL服务的程序的状态

service mysql start         //开启MySQL

service mysql status         //查看MySQL的状态

service mysql stop         //关闭MySQL

十二、Linux内核优化

打开配置文件

vim /etc/sysctl.conf

 加载新的配置(需开启防火墙iptables,否则会报错)

sysctl -p

十三、用户权限操作

添加用户sum

关于useradd的某些参数:

-u: 指定 UID,这个 UID 必须是大于等于500,并没有其他用户占用的 UID

-g: 指定默认组,可以是 GID 或者 GROUPNAME,同样也必须真实存在

-G: 指定额外组

-c: 指定用户的注释信息

-d: 指定用户的家目录

useradd –d /usr/sum -m sum

 已创建的用户sum设置密码

passwd sum

用户添加root权限 

visudo

 找到root用户权限位置
添加与root用户相同权限

##   Allow   root   to     run     any    commands     anywhere

root          ALL=(ALL)        ALL

eses        ALL=(ALL)      ALL

 新建的用户在面显示

 cat /etc/passwd

 

删除用户sum 

userdel sum

 删除用户文件夹

rm -rf /usr/sum

 切换下刚才添加的用户

su sum

回到root用户 

exit

添加用户组

groupadd groupname

删除用户组 

groupdel groupname

可以看到自己的分组和分组id 

cat /etc/group

sum: x:1000:1000:: /usr/sum :/bin/bash
sum: x:0:1000:: /usr/sum :/bin/bash 

十四、TOP

实时占用的资源

top

 top命令执行结果分为两个区域:统计信息区和进程信息区

统计信息区

TOP:任务队列信息,与uptime命令执行结果相同.

15:33:39:系统时间
up 5:40:主机已运行时间
2 users:用户连接数(不是用户数,who命令)
load average: 1.09, 1.04, 0.98:系统平均负载,统计最近1,5,15分钟的系统平均负载


Tasks:进程信息

123 total:进程总数
3 running:正在运行的进程数
120 sleeping:睡眠的进程数
0 stopped:停止的进程数
0 zombie:僵尸进程数


%CPU(s):CPU信息(当有多个CPU时,这些内容可能会超过两行)

42.1 us:用户空间所占CPU百分比
2.0 sy:内核空间占用CPU百分比
0.0 ni:用户进程空间内改变过优先级的进程占用CPU百分比
49.2 id:空闲CPU百分比
0.0 wa:等待输入输出的CPU时间百分比
6.0 hi:硬件CPU终端占用百分比
0.7 si:软中断占用百分比
0.0 st:虚拟机占用百分比


KiB Mem:内存信息(与第五行的信息类似与free命令类似)

3780.9 total:物理内存总量
727.4 free:已使用的内存总量
668.8 used:空闲的内存总量(free + userd = total)
2384.7 buff/cache:用作内核缓存的内存量


KiB:swap信息

2048.0 total:交换分区总量
2046.0 free:已使用的交换分区总量
2.0 used:空闲交换分区总量
859.6 avail:缓冲的交换区总量,内存中的内容被换出到交换区,然后又被换入到内存,但是使用过的交换区没有被覆盖,交换区的这些内容已存在于内存中的交换区的大小,相应的内存再次被换出时可不必再对交换区写入。


2、进程信息区


PID:进程id

USER:进程所有者的用户名

PR:优先级

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

RES:进程使用的、未被换出的物理内存的大小

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

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

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

COMMAND:命令名/行

PPID:父进程id

RUSER:Real user name(看了好多,都是这样写,也不知道和user有什么区别,欢迎补充此处)

UID:进程所有者的id

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

GROUP:进程所有者的组名

TTY:启动进程的终端名。不是从终端启动的进程则显示为?

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

P:最后使用的CPU,仅在多CPU环境下有意义

TIME:进程使用的CPU时间总计,单位秒

SWAP:进程使用的虚拟内存中被被换出的大小

CODE:可执行代码占用的物理内存大小

DATA:可执行代码以外的部分(数据段+栈)占用的物理内存大小

SHR:共享内存大小

nFLT:页面错误次数

nDRT:最后一次写入到现在,被修改过的页面数

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

WCHAN:若该进程在睡眠,则显示睡眠中的系统函数名

Flags:任务标志

欢迎各位大佬交流!!!(点赞收藏一下吧!)

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值