linux高级命令

Posted moyue..

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux高级命令相关的知识,希望对你有一定的参考价值。

vim进入文件命令和vi功能相同

vim需要下载

[root@moyue01 ~]# yum install -y vim
[root@moyue01 ~]# echo "zhangsan" >> a.txt
[root@moyue01 ~]# vim a.txt
zhangsan
~                                                                                                      
~   

 一般模式(进入文件之后为一般模式)

功能
[root@moyue01 data]# ll
总用量 4
-rw-r--r--. 1 root root 2274 11月 30 17:27 profile
[root@moyue01 data]# vim profile
进入之后为一般模式
可以使用下面的快捷键
H:到当前页面的第一行的开头
M:到当前页面的中间行的开头
L:到当前页面的最后一行的开头
gg:回到文件的第一行
G:移动到文件的最后一行
nG:移动到文件的第n行 #按5之后按G可以到文件的第五行
x:删除光标后的一个字符
X:删除光标前的一个字符
nx|X:删除光标后的n个字符|删除光标前的n个字符 按5之后按x表示删除光标后5个字符,X类似
dd:删除所在行
ndd:向下删除n行
dnG:删除所在行的n行数据
dG:删除所在行到最后一行的所有数据
yy|Y:复制所在行的所有数据
nyy|nY:复制向下n行的数据
p:将数据复制到光标所在的下一行
P:将数据复制到光标所在的上一行
u:撤销一步

插入模式

a,A,o,O,i,I都可以进入到插入模式
a:在光标后插入
A:在行尾插入
o:在光标的下一行插入
O:在光标的上一行插入
i:在光标处插入
I:在行首插入

底行命令

:q退出不保存
:q!强制退出不保存
:qw保存退出
:qw!强制保存退出
:set nu显示行号
:set nonu取消行号

防火墙

[root@moyue01 data]# systemctl status firewalld    #查看防火墙状态
● firewalld.service - firewalld - dynamic firewall daemon
[root@moyue01 data]# systemctl start firewalld    #打开防火墙
[root@moyue01 data]# systemctl stop firewalld    #关闭防火墙
[root@moyue01 data]# systemctl enable firewalld    #开启时自动打开防火墙
Created symlink from /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service to /usr/lib/systemd/system/firewalld.service.
[root@moyue01 data]# systemctl disabled firewalld    #开机不自动开启防火墙
Unknown operation 'disabled'.

查找netstat

需要下载
[root@moyue01 data]# yum install -y net-tools
-a    #显示所有端口
[root@moyue01 data]# netstat -a
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State   
-----------------------------------------------------------------------------   
-t    #查看与tcp相关选项、
[root@moyue01 data]# netstat -t
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0     52 moyue01:ssh             192.168.10.1:58631      ESTABLISHED
-----------------------------------------------------------------------------
-u    #仅显示udp相关
[root@moyue01 data]# netstat -u
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
-----------------------------------------------------------------------------
-n    #数字方式显示端口
[root@moyue01 data]# netstat -n
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0     52 192.168.10.110:22       192.168.10.1:58631      ESTABLISHED
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags       Type       State         I-Node   Path
-----------------------------------------------------------------------------
-p显示socket的PID和进程名
[root@moyue01 data]# netstat -p
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0     52 moyue01:ssh             192.168.10.1:58631      ESTABLISHED 2811/sshd: root@pts 
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags       Type       State         I-Node   PID/Program name     Path
-----------------------------------------------------------------------------
-l显示控制台的socket
[root@moyue01 data]# netstat -l
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 localhost:smtp          0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN     
tcp6       0      0 localhost:smtp          [::]:*                  LISTEN     
tcp6       0      0 [::]:mysql              [::]:*                  LISTEN     
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN     
raw6       0      0 [::]:ipv6-icmp          [::]:*                  7          
Active UNIX domain sockets (only servers)
Proto RefCnt Flags       Type       State         I-Node   Path

修改主机名

查看主机名
[root@moyue01 data]# hostname
moyue01
修改主机名
[root@moyue01 data]# echo "moyue01" > /etc/hostname

映射修改

[root@moyue01 data]# vim /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.10.110  moyue01
192.168.10.111  moyue02
192.168.10.112  moyue03

进程管理命令-ps

ps#查看相同的进程信息
a:显示所有用户的进程信息
[root@moyue01 data]# ps -a
   PID TTY          TIME CMD
  2887 pts/3    00:00:17 top
 72260 pts/2    00:00:00 ps
--------------------------------------------------------------------------
u:显示用户的启动时间
[root@moyue01 data]# ps -u
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root        813  0.0  0.0 110108   856 tty1     Ss+  10:05   0:00 /sbin/agetty --noclear tty1 linux
root       2815  0.0  0.0 115748  2276 pts/2    Ss   13:57   0:00 -bash
root       2830  0.0  0.0 115448  1992 pts/3    Ss   13:57   0:00 -bash
root       2887  0.0  0.0 162732  3000 pts/3    S+   13:57   0:17 top
root      73074  0.0  0.0 155372  1864 pts/2    R+   19:34   0:00 ps -u
--------------------------------------------------------------------------
x:显示没有控制终端的进程
[root@moyue01 data]# ps -x
   PID TTY      STAT   TIME COMMAND
     1 ?        Ss     0:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
     2 ?        S      0:00 [kthreadd]
     4 ?        S<     0:00 [kworker/0:0H]
     6 ?        S      0:05 [ksoftirqd/0]
--------------------------------------------------------------------------
e:显示所有进程包括没有控制终端的进程
[root@moyue01 data]# ps -e
   PID TTY          TIME CMD
     1 ?        00:00:01 systemd
     2 ?        00:00:00 kthreadd
     4 ?        00:00:00 kworker/0:0H
     6 ?        00:00:05 ksoftirqd/0
     7 ?        00:00:03 migration/0
---------------------------------------------------------------------------
l:长格式显示
[root@moyue01 data]# ps -l
F S   UID    PID   PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S     0   2815   2811  0  80   0 - 28937 do_wai pts/2    00:00:00 bash
0 R     0  75646   2815  0  80   0 - 38312 -      pts/2    00:00:00 ps


进程管理命令-pstree

树状查看
-p    #显示进程PID
[root@moyue01 data]# pstree -p
systemd(1)─┬─NetworkManager(795)─┬─NetworkManager(814)
           │                     └─NetworkManager(816)
           ├─agetty(813)
           ├─auditd(766)───auditd(767)
           ├─crond(807)
           ├─dbus-daemon(789)───dbus-daemon(790)
           ├─irqbalance(797)
           ├─lvmetad(577)
           ├─master(1286)─┬─pickup(73592)
           │              └─qmgr(1293)
           ├─mysqld(1099)─┬─mysqld(1186)
           │              ├─mysqld(1189)
           │              ├─mysqld(1190)
           │              ├─mysqld(1191)
           │              ├─mysqld(1192)
           │              ├─mysqld(1193)
           │              ├─mysqld(1194)
           │              ├─mysqld(1195)
           │              ├─mysqld(1196)
           │              ├─mysqld(1197)
           │              ├─mysqld(1198)
           │              ├─mysqld(1199)
           │              ├─mysqld(1215)
           │              ├─mysqld(1216)
           │              ├─mysqld(1217)
           │              ├─mysqld(1218)
           │              ├─mysqld(1219)
           │              ├─mysqld(1220)
           │              ├─mysqld(1221)
           │              ├─mysqld(1224)
           │              ├─mysqld(1248)
           │              ├─mysqld(1249)
           │              ├─mysqld(1250)
           │              ├─mysqld(1251)
           │              ├─mysqld(1267)
           │              └─mysqld(1270)
           ├─polkitd(788)─┬─polkitd(791)
           │              ├─polkitd(793)
           │              ├─polkitd(796)
           │              ├─polkitd(799)
           │              ├─polkitd(801)
           │              └─polkitd(803)
           ├─rsyslogd(1024)─┬─rsyslogd(1049)
           │                └─rsyslogd(1055)
           ├─sshd(1023)───sshd(2811)─┬─bash(2815)───pstree(80668)
           │                         ├─bash(2830)───top(2887)
           │                         └─bash(80658)───sleep(80667)
           ├─systemd-journal(558)
           ├─systemd-logind(800)
           ├─systemd-udevd(585)
           └─tuned(1021)─┬─tuned(1493)
                         ├─tuned(1494)
                         ├─tuned(1496)
                         └─tuned(1498)
-u:显示进所属用户
[root@moyue01 data]# pstree -u
systemd─┬─NetworkManager───2*[NetworkManager]
        ├─agetty
        ├─auditd───auditd
        ├─crond
        ├─dbus-daemon(dbus)───dbus-daemon
        ├─irqbalance
        ├─lvmetad
        ├─master─┬─pickup(postfix)
        │        └─qmgr(postfix)
        ├─mysqld(mysql)───26*[mysqld]
        ├─polkitd(polkitd)───6*[polkitd]
        ├─rsyslogd───2*[rsyslogd]
        ├─sshd───sshd─┬─bash───pstree
        │             ├─bash───top
        │             └─bash───sleep
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-udevd
        └─tuned───4*[tuned]

进程管理命令-kill

-9
kill -9 pid ......
[root@moyue01 ~]# ps -aux|grep ping    #有两个ping进程
root      84261  0.0  0.0 149988  1996 pts/2    S+   19:43   0:00 ping www.baidu.com
root      84911  0.0  0.0 149988  2000 pts/0    S+   19:44   0:00 ping www.taobao.com
root      85815  0.0  0.0 112728   972 pts/4    S+   19:44   0:00 grep --color=auto ping
[root@moyue01 ~]# kill -9 84261 84911
64 bytes from 14.215.57.232 (14.215.57.232): icmp_seq=59 ttl=128 time=7.76 ms
已杀死

进程管理命令-nohup

前台进程转后台进程
[root@moyue01 ~]# nohup ping www.baidu.com &
nohup: 忽略输入并把输出追加到"nohup.out"

用户和用户组

创建新用户
useradd需要属性
-c    指定一段注释性的描述
-d    指定用户目录    #-m可以默认创建
-g    用户组 指定用户所属的用户组
-G    用户组 指定用户所属的附加组
-s    shell文件指定用户的登陆shell
-u    用户的id号 指定用户的uid
[root@moyue01 ~]# useradd -d /home/moyue1 -c 'this is a user' -g 0 -G 1 -u 101 -s /bin/bash moyue1
[root@moyue01 home]# ll
总用量 0
drwx------. 2 moyue  root 62 11月 30 20:03 moyue
drwx------. 2 moyue1 root 62 11月 30 20:05 moyue1
drwx------. 2   1000 1000 62 11月 30 16:34 xiaoc
使用-m替换-d
[root@moyue01 home]# useradd -m -c 'this is a user' -g 0 -G 1 -u 102 -s /bin/bash moyue2
-d可以不指定
---------------------------------------------------------------------------------
passwd设置密码
[root@moyue01 home]# passwd moyue2
更改用户 moyue2 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
---------------------------------------------------------------------------------
-S:显示账号密码信息
[root@moyue01 home]# passwd -S moyue2
moyue2 PS 2021-11-30 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)
---------------------------------------------------------------------------------
-l:锁定口令
[root@moyue01 home]# passwd -l moyue2
锁定用户 moyue2 的密码 。
passwd: 操作成功
---------------------------------------------------------------------------------
-u:解锁
[root@moyue01 home]# passwd -u moyue2
解锁用户 moyue2 的密码。
passwd: 操作成功
---------------------------------------------------------------------------------
-d:使账号无口令
[root@moyue01 home]# passwd -d moyue2
清除用户的密码 moyue2。
passwd: 操作成功
---------------------------------------------------------------------------------
-f:更改密码
[root@moyue01 home]# passwd -f moyue2
更改用户 moyue2 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

su切换用户

su切换到普通用户
[root@moyue01 home]# su moyue2
[moyue2@moyue01 home]$ 
su切换到root用户
[moyue2@moyue01 home]$ su
密码:
[root@moyue01 home]# 
----------------------------------------------------------------------------------
[moyue2@moyue01 home]$ su root
密码:
[root@moyue01 home]#

usermod修改用户信息

和useradd一样有
-c
-d
-m
-g
-G
-s
-u
修改用户名
[root@moyue01 home]# usermod -l xiaoh -d /home/xiaoh -m moyue
[root@moyue01 home]# usermod -s /bin/ksh -d /home/ls -g adm xiaoh
修改xiaoh的shell为ksh,主目录改为/home/ls,用户组改为adm

userdel删除

userdel -r 用户名
[root@moyue01 home]# userdel -r moyue2
如果没有加上-r那么家目录没有删除
要重新创建相同的用户然后删除
例:
[root@moyue01 ~]# useradd -g 0 -u 100 xiaoh
useradd:警告:此主目录已经存在。
不从 skel 目录里向其中复制任何文件。
[root@moyue01 ~]# useradd -g 0 -u 100 xiaoh
useradd:用户“xiaoh”已存在
[root@moyue01 ~]# userdel -r xiaoh
[root@moyue01 ~]# cd /home

分组管理

groupadd
-g 指定新用户的组标识符
-o 指定和-g同时使用表示新用户的gid可以和系统分gid相同
创建一个新组
[root@moyue01 home]# groupadd  a
创建一个新组标识符为600
[root@moyue01 home]# groupadd -g 600 b

groupmod
直接修改
[root@moyue01 home]# groupmod -g 601 b
修改名字
[root@moyue01 home]# groupmod -g 600 -n c a
将a的标识改为600重命名为c
groupdel
groupdel 组名
[root@moyue01 home]# groupdel c
删除c组

文件权限

r:读权限
w:写权限
x:执行权限
例如
-rw-r--r--. 1 root root   2280 11月 30 19:10 !
-    rw-    r--    r--    .1
-表示类型为普通文件 d表示目录 l表示链接文件
rw-表示用户权限只有读写权限
r--表示组权限
r--表示其他用户权限
最后的1表示硬连接数

权限更改

chmod修改权限
参数
+:添加某个权限
-:清除某个权限
=:重新赋值权限
u:表示拥有者的权限
g:组的权限#即组成员拥有权限
o:表示其他用户权限
a:表示所有
例如:方法一:
drwxr-xr-x. 2 root root    6 12月  1 13:07 dir
-rw-r--r--. 1 root root    0 12月  1 13:07 file
[root@moyue01 data]# chmod u-r dir    #清除用户的读权限
d-wxr-xr-x. 2 root root    6 12月  1 13:07 dir
[root@moyue01 data]# chmod g-r dir    #清除组的读权限
d-wx--xr-x. 2 root root    6 12月  1 13:07 dir
[root@moyue01 data]# chmod o-r dir    #清除其他用户的读权限
d-wxr-x---. 2 root root    6 12月  1 13:07 dir
[root@moyue01 data]# chmod a+r dir    #添加所有用户的读权限
drwxr-xr--. 2 root root    6 12月  1 13:07 dir
方法二:
r-4
w-2
x-1
例如
-rw-r--r--. 1 root root      0 12月  2 20:48 a
[root@moyue01 ~]# chmod 555 a.txt
-r-xr-xr-x. 1 root root      0 12月  2 20:48 a
5:1+4
表示拥有读权限和执行权限
chgrp
更改组只能root用户使用
查看有哪些组
[root@moyue01 ~]# cat /etc/group
root:x:0:
bin:x:1:moyue2
daemon:x:2:
sys:x:3:
adm:x:4:
[root@moyue01 ~]# chgrp bin a
-r-xr-xr-x. 1 root bin       0 12月  2 20:48 a
想要修改目录想要-R
[root@moyue01 ~]# mkdir b
drwxr-xr-x. 2 root root       6 12月  3 16:20 b
[root@moyue01 ~]# chgrp -R bin b
drwxr-xr-x. 2 root bin       6 12月  3 16:20 b

chown

chown
修改拥有者只能是root用户才有权限
[root@moyue01 data]# ll
-rw-r--r--. 1 root root    0 12月  1 13:07 file
[root@moyue01 data]# cat /etc/passwd
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
找一个用户进行替换
[root@moyue01 data]# chown daemon file
[root@moyue01 data]# ll
-rw-r--r--. 1 daemon root    0 12月  1 13:07 file
chown还有chgrp的功能
例如
[root@moyue01 data]# chown adm:adm file
-rw-r--r--. 1 adm  adm     0 12月  1 13:07 file
:前后不能有空格
[root@moyue01 data]# chown :lp file
-rw-r--r--. 1 adm  lp      0 12月  1 13:07 file

以上是关于linux高级命令的主要内容,如果未能解决你的问题,请参考以下文章

linux中怎么查看mysql数据库版本

markdown [Docker] Docker片段列表和命令#linux #docker #snippets

Android 逆向Linux 文件权限 ( Linux 权限简介 | 系统权限 | 用户权限 | 匿名用户权限 | 读 | 写 | 执行 | 更改组 | 更改用户 | 粘滞 )(代码片段

Vue3官网-高级指南(十七)响应式计算`computed`和侦听`watchEffect`(onTrackonTriggeronInvalidate副作用的刷新时机`watch` pre)(代码片段

Linux高级命令04:查找文件命令

Linux高级命令03:文本搜索命令