**
Linux基本命令:
**
查看用户命令:
ll /usr/sbin/user*
列如:(usermod,userdel,useradd)
查看用户组命令:
ll /usr/sbin/group*
列如:(groupmod,groupdel,groupadd)
添加和删除用户:
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用户,该组经过校验发现只有自己,就会删除该组,但是家目录中用户还在,删除后再创建会提示用户存在,不过用户一样会创建出来)
将用户添加到用户组:
usermod -a -G 用户组 用户
usermod -g 用户组 用户 (将用户组改为主组)
设置密码:
passwd 用户
怎样切换用户:
su - 用户
su 用户
- : 代表切用户以后,进入该用户的家目录且执行 环境变量文件
退出当前用户:
exit
普通用户如何临时获取root最大权限:
vi /etc/sudoers
修改配置文件:(列如:
root ALL=(ALL) ALL
用户 ALL=(root) NOPASSWD:ALL) :wq! 强制退出后, 输入sudo ls -l /root 命令,查看信息
管道符和过滤:
| (管道符)
grep (过滤)
用法:(列如:cat /home | grep jepson 在查看home下所有用户之后自动将jepson筛选出来)
怎样查看进程:
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' (模糊查询)
杀死进程:
kill -9 进程的pid
kill -9 pid pid(并行杀)
如果我只想杀死包含log字符的所有进程:(kill -9 $(pgrep -f log))
(提醒: kill前确认清楚该进程是否该杀 不要杀错 )
(linux操作: 遇到rm kill高危命令 需确认再确认)
查看端口号:
netstat -nlp | grep pid或者进程名字
题目:
老板说去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应该怎样做:
window : 控制面板 卸载程序 打开或关闭windows功能 选中Telnet客户端 部署
通过 cmd ping一下ip,然后 telnet ip port,如果不行,很有可能是ip只针对内部当前机器访问
linux : yum install telnet.x86_64
搜索命令:
列如搜索xxx软件
history | grep xxx (通过查看历史命令记录来查找xxx软件)
ps - ef | grep xxx (通过查看进程搜索xxx软件)
find / -name '*log*' (全局 根目录模糊查询)
find ./ -name '*log*' (当前目录开始 模糊查询)
* (代表模糊查询)
Linux安装和卸载软件 rpm
yum search 软件名字: (搜索软件)
yum install -y 软件名字: (下载软件)
yun remove 软件名字: (卸载软件)
rpm -qa | grep 软件名字: (搜索软件)
rpm -e 软件名字: (卸载软件,卸载过程中可能会出现失败的情况,由于该软件包依赖于其他rpm)
rpm -e --nodeps 软件名字: (强制卸载软件)
查找命令:
which xxx (命令都是从$PATH中查找)
mv和cp哪个速度更快:
当在同一系统中时mv的速度会快于cp的速度
文本编辑命令:
vi xxx.log: (编辑xxx.log文件)
在生产中使用vi修改配置文件,别人的服务文件时应先要复制一份,再进行修改
命令行模式常见快捷键:
dd: (删除当前光标所在行)
dG: (删除当前光标所在行下的所有行包括光标所在行)
ndd: (删除光标所在行下的n行包括光标所在行)
gg: (光标跳转到第一行第一个字母)
G: (光标跳转到最后一行的第一个字)
shift+$:(行尾)
生产场景下如果一个文件内容比较多,想清空该如何做:
gg --> dG: (第一种方式)
echo "" >文件: (为清空,文件中还存留一个字节,要注意)
cat /dev/null >文件: (真正的清空)
当一个文件内容非常多,比如系统文件,如何快速定位到你想搜索的关键词:
在尾行模式下输入 /关键词
set nu: (表格化,开头有行号)
set nonu: (取消表格化)
权限:
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:(即可以查看文件大小,也可以查看文件夹大小)
第六列:文件时间
修改用户权限命令:
chmod -R 777 目录:(修改用户权限)
chown -R 用户:所属用户组 目录:(修改所属用户和用户组,来达到修改权限的作用)
-R表示递归,文件夹下所有的都会被修改
整套Linux命令中,只有这两个命令用到的是大R,其它都是小r
软连接:
ln -s 原始路径 目标路径
注意:(删除目标路径,原路径不会被删除)
上传和下载:
yum install -y lrzsz (下载rpm)
rz: window --> linux
rs: linux --> window
系统命令:
top
load average:0.00,0.00,0.00( 生产服务器 不要超过10经验值)
查看内存:
free -m
查看硬盘:
df -h
压缩解压:
zip:(压缩) unzip:(解压)
列如: zip -r 文件夹.zip 文件夹/*(压缩文件夹以及文件夹下所有内容)
unzip 文件夹.zip
tar -czvf(压缩) tar -xzvf(解压)
列如:tar -czvf 文件夹.tar 文件夹/*
tar -xzvf 文件夹.tar
作业调度:
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 )
后台执行命令 不交互:
./test.sh &
nohup ./test.sh &
生产:
==> nohup ./test.sh &
nohup ./test.sh > /root/test.log 2>&1 & # 详细解释 https://blog.csdn.net/ggxiaobai/article/details/53507530