Linux命令进阶

Linux进阶命令:

查看用户命令:

1
2
ll /usr/sbin/user*
列如:(usermod,userdel,useradd)

查看用户组命令:

1
2
ll /usr/sbin/group*
列如:(groupmod,groupdel,groupadd)

添加和删除用户:

1
2
3
4
5
6
7
8
9
useradd ruoze (创建一个ruoze用户,并且自动创建一个ruoze用户组)
通过 id ruoze 命令查看信息:
uid=501(ruoze) gid=501(ruoze) groups=501(ruoze)
uid:(用户) gid:(主组) groups:(所有组)
查看用户创建记录:cat /etc/passwd
查看组创建记录: cat /etc/group
userdel ruoze (删除ruoze用户)
如果删除用户之后,/etc/passwd中没有记录
/etc/group中没有记录(因为ruoze组中只有一个ruoze用户,当删掉ruoze用户,该组经过校验发现只有自己,就会删除该组,但是家目录中用户还在,删除后再创建会提示用户存在,不过用户一样会创建出来)

将用户添加到用户组:

1
2
usermod -a -G 用户组 用户
usermod -g 用户组 用户 (将用户组改为主组)

设置密码:

1
passwd 用户

怎样切换用户:

1
2
3
su - 用户
su 用户
- : 代表切用户以后,进入该用户的家目录且执行 环境变量文件

退出当前用户:

1
exit

普通用户如何临时获取root最大权限:

1
2
3
4
vi /etc/sudoers
修改配置文件:(列如:
root ALL=(ALL) ALL
用户 ALL=(root) NOPASSWD:ALL) :wq! 强制退出后, 输入sudo ls -l /root 命令,查看信息

管道符和过滤:

1
2
3
| (管道符)
grep (过滤)
用法:(列如:cat /home | grep jepson 在查看home下所有用户之后自动将jepson筛选出来)

怎样查看进程:

1
2
3
4
5
ps -ef | grep tail
显示出的信息:root 2425 1779 0 20:39 pts/0 00:00:00 tail -f install.log.syslog
2425:进程pid
1779:父id
ps -ef | grep 'log' (模糊查询)

杀死进程:

1
2
3
4
5
kill -9 进程的pid
kill -9 pid pid(并行杀)
如果我只想杀死包含log字符的所有进程:(kill -9 $(pgrep -f log))
(提醒: kill前确认清楚该进程是否该杀 不要杀错 )
(linux操作: 遇到rm kill高危命令 需确认再确认)

查看端口号:

1
netstat -nlp | grep pid或者进程名字

题目:

1
2
3
4
5
6
老板说去A服务器 login,打开xxx软件的web界面?ip+port
ps - ef | grep xxx --> pid --> netstat -nlp | grep pid
等价于
netstat -nlp | grep xxx
(0.0.0.0:22 或者 ::: 80都表示的是本机ip,代表当前ip对外提供访问
如果:127.0.0.1:80 或者 localhost:80 只针对内部当前机器访问 )

如果出现链接拒绝错误 Connection refused应该怎样做:

1
2
3
window   : 控制面板 卸载程序 打开或关闭windows功能 选中Telnet客户端 部署
通过 cmd ping一下ip,然后 telnet ip port,如果不行,很有可能是ip只针对内部当前机器访问
linux : yum install telnet.x86_64

搜索命令:

1
2
3
4
5
6
列如搜索xxx软件
history | grep xxx (通过查看历史命令记录来查找xxx软件)
ps - ef | grep xxx (通过查看进程搜索xxx软件)
find / -name '*log*' (全局 根目录模糊查询)
find ./ -name '*log*' (当前目录开始 模糊查询)
* (代表模糊查询)

Linux安装和卸载软件 rpm

1
2
3
4
5
6
yum search 软件名字: (搜索软件)
yum install -y 软件名字: (下载软件)
yun remove 软件名字: (卸载软件)
rpm -qa | grep 软件名字: (搜索软件)
rpm -e 软件名字: (卸载软件,卸载过程中可能会出现失败的情况,由于该软件包依赖于其他rpm)
rpm -e --nodeps 软件名字: (强制卸载软件)

查找命令:

1
which xxx (命令都是从$PATH中查找)

mv和cp哪个速度更快:

1
当在同一系统中时mv的速度会快于cp的速度

文本编辑命令:

1
2
vi xxx.log: (编辑xxx.log文件)
在生产中使用vi修改配置文件,别人的服务文件时应先要复制一份,再进行修改

命令行模式常见快捷键:

1
2
3
4
5
6
dd: (删除当前光标所在行)
dG: (删除当前光标所在行下的所有行包括光标所在行)
ndd: (删除光标所在行下的n行包括光标所在行)
gg: (光标跳转到第一行第一个字母)
G: (光标跳转到最后一行的第一个字)
shift+$:(行尾)

生产场景下如果一个文件内容比较多,想清空该如何做:

1
2
3
gg --> dG: (第一种方式)
echo "" >文件: (为清空,文件中还存留一个字节,要注意)
cat /dev/null >文件: (真正的清空)

当一个文件内容非常多,比如系统文件,如何快速定位到你想搜索的关键词:

1
2
3
在尾行模式下输入 /关键词
set nu: (表格化,开头有行号)
set nonu: (取消表格化)

权限:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
drwxr-xr-x. 3 root root  4096 Jan 19 20:42 1
drwxr-xr-x. 2 root root 4096 Jan 19 20:44 4
-rw-r--r--. 1 root root 10033 Jan 19 20:57 install.log.syslog
-rw-r--r--. 1 root root 49566 Jan 23 21:37 jepson.log
-rw-r--r--. 1 root root 1 Jan 23 21:30 ruoze.log.1
d rwxr-xr-x
第一个: d:(代表文件夹) -:(文件) l:(连接)
r: 读 4
w: 写 2
x: 执行shell脚本 1
列如:rwxr-xr-x 755
rwxr--r-- 744
r--r--r-- 444
r-xrwxrw- 576
rwxr-xr-x :分为三组
第一组:rwx 7 代表文件和文件夹所属用户的权限: 读写执行
第二组:r-x 5 代表文件和文件夹所属的用户组的权限: 读执行
第三组:r-x 5 代表其他组的所有用户对这个文件或者文件夹的权限: 读执行
root root
第三列:所属用户
第四列:所属用户组
第五列字节(文件大小)
ll -h:(只能查看文件大小)
du -sh:(即可以查看文件大小,也可以查看文件夹大小)
第六列:文件时间

修改用户权限命令:

1
2
3
4
chmod -R 777 目录:(修改用户权限)
chown -R 用户:所属用户组 目录:(修改所属用户和用户组,来达到修改权限的作用)
-R表示递归,文件夹下所有的都会被修改
整套Linux命令中,只有这两个命令用到的是大R,其它都是小r

软连接:

1
2
ln -s 原始路径 目标路径
注意:(删除目标路径,原路径不会被删除)

上传和下载:

1
2
3
yum install -y lrzsz (下载rpm)
rz: window --> linux
rs: linux --> window

系统命令:

1
2
top
load average:0.00,0.00,0.00( 生产服务器 不要超过10经验值)

查看内存:

1
free -m

查看硬盘:

1
df -h

压缩解压:

1
2
3
4
5
6
zip:(压缩)  unzip:(解压)
列如: zip -r 文件夹.zip 文件夹/*(压缩文件夹以及文件夹下所有内容)
unzip 文件夹.zip
tar -czvf(压缩) tar -xzvf(解压)
列如:tar -czvf 文件夹.tar 文件夹/*
tar -xzvf 文件夹.tar

作业调度:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
crontab -e:(edit user's crontab)编辑
crontab -l:(list user's crontab)查看
[root@hadoop001 ~]# crontab -e
* * * * * /root/test.sh >> /root/test.log
格式:* * * * * *
第1个: 分
第2个: 小时
第3个: 日
第4个: 月
第5个: 周
*代表 每

每10秒?
编写脚本:[root@hadoop001 ~]# vi test.sh
( #!/bin/bash

for((i=1;i<=6;i++));
do
date
sleep 10s
done

exit )

后台执行命令 不交互:

1
2
3
4
5
	 ./test.sh &
nohup ./test.sh &
生产:
==> nohup ./test.sh &
nohup ./test.sh > /root/test.log 2>&1 & # 详细解释 https://blog.csdn.net/ggxiaobai/article/details/53507530

本文标题:Linux命令进阶

文章作者:skygzx

发布时间:2019年04月04日 - 22:22

最后更新:2019年04月07日 - 12:25

原始链接:http://yoursite.com/2019/04/04/Linux命令进阶/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

-------------本文结束感谢您的阅读-------------
0%