Linux常用命令
一、用户管理
1、查看用户信息
id 查看当前用户信息
whoami 查看当前用户
who 查看当前已登录的用户
w 查看当前已登录用户以及他们在做什么
2、添加用户
useradd xiaoxi 添加用户名为xiaoxi的用户,默认家目录在/home/目录下
useradd -g test xiaoxi2 添加用户名为xiaoxi2,组名称为test的用户
passwd xiaoxi 设置或重置密码
3、切换用户
su xiaoxi 切换到用户名为xiaoxi的用户
su - xiaoxi 切换到用户名为xiaoxi的用户并重新加载用户的环境变量
sudo 获取超级用户权限
添加普通用户sudo权限:vim /etc/sudoers文件
找到 root ALL=(ALL) ALL
增加 xiaoxi ALL=(ALL) NOPASSWD:ALL
4、删除用户
userdel xiaoxi 删除用户
userdel -r xiaoxi 删除用户同时删除他的家目录
二、组管理
groupadd test 添加组
groupdel test 删除组,如果该组下面包含用户,则需要把该组下的用户删除或指向别的组
三、文件管理
1、查看文件、目录
cd .. 回到上一级目录
cd ../../ 回到上两级目录
cd ~ 回到家目录
cd - 返回上一次所在的目录
pwd 查看当前路径
history 查看历史命令
ls 查看当前文件及目录
ll 查看当前文件及目录(详细)
ls -a 查看当前所有文件及目录,包含隐藏文件
cat 查看文件(显示全部结果,适合查看较小文件)
cat xx > new_xx 覆盖原有的内容
cat xx >> new_xx 追加
more 查看文本,空格翻页,回车一行一行显示,支持查看当前进度
less 查看文本,空格翻页,回车一行一行显示,支持当前页搜索
tail -f 动态查看文本,一般用户查看日志
tail -500 查看最后500行
tail -500f 动态查看最后500行
find / -name myslq 从/目录开始查找文件、文件夹
&& 连接两条命令,上一条命令执行成功,再执行下一条
|| 连接两条命令,无论上一条命令是否执行成功,都会执行下一条
wc -l 统计行数
ln test.sh test2.sh 创建硬链接,删除test.sh文件,test2.sh不受影响
ln -s /root/test.sh /home/xiaoxitest 创建软链接,相当于Windows快捷方式,删除test.sh,/home/xiaoxitest目录下的test.sh也无法执行
2、创建文件、目录
touch 创建文本文件
mkdir 创建目录
mkdir -p aa/bb/cc 创建多级目录
3、删除文件、目录
rm -rf 删除文件或目录
rmdir 只能删除空目录
4、移动、重命名
mv xiaoxitest test 把xiaoxitest重命名为test
mv xiaoxitest /home 把xiaoxitest移动到home目录下
5、复制
cp xiaoxitest /home 把xiaoxitest文件复制到home目录下
cp xiaoxitest -r /home 把xiaoxitest文件夹复制到home目录下
6、权限操作
chmod u+x 给自己加上执行权限
chmod g+w 给本组用户加上写权限
chmod o+r 给其他用户加上读权限
chmod +rwx 给所有用户加上读、写、执行权限
chmod a+x 给所有用户加上执行权限
去掉权限:把+替换-
r代表读 w代表写 x代表执行
r=4 w=2 x=1 数字模式代表的权限
chmod 751 xiaoxi.txt 给自己加上读、写、执行权限,本组用户加上读、执行权限、其它用户加上执行权限
chmod -R 777 file 如果想给文件夹(包含子文件夹)加上相同的权限,需要加上 -R 参数
chown xiaoxi test.txt 更改test.txt文件的所有者为xiaoxi用户
chgrp xiaoxi test.txt 更改test.txt文件的所属组为xiaoxi组
四、VI编辑器
1、编辑(默认进入命令模式)
i 从当前位置开始编辑
o 从当前位置的下一行开始编辑
a 从下一位置开始编辑
Esc 切换到命令模式
2、保存和退出(命令模式下)
:q 没有修改的话直接退出
:q! 若已经修改过则不保存强制退出
:w 保存不退出
:wq 保存并退出
:x 保存并退出
3、查找(命令模式下)
/test 从文件头开始查找
?test 从文件末尾开始查找
n 查找下一个
N 查找上一个
:set nu 显示行号
:set nonu 取消显示行号
:5 快速定位到某一行
Shift+g 快速到文件最后一行
$ 回到当前行尾
0 回到当前行首
4、删除(命令模式下)
x 删除单个字符
dd 删除整行
5dd 删除5行
5、复制、粘贴(命令模式下)
yy 复制当前一整行
5yy 复制光标当前到之后的5行
p 粘贴
. 重复上一次操作
u 撤销
6、替换字符串
:%s/test/new_test/g 把test替换为new_test
find -name database.properties | xargs sed -i 's/172.16.105.1/172.16.0.2/g'
7、批量更改文件格式
find . -name "*.sh" | xargs sed -i 's/\r$//g'
8、批量更改JVM内存
五、系统管理
1、查看磁盘、文件占用大小
df -h 查看当前磁盘使用率
du -sh 查看当前目录占用空间
du -sh xiaoxi.sh 查看当前文件占用空间
2、查看进程、端口
ps -ef | grep mysql 查看mysql进程
ps -ef | grep mysql | grep -v grep | awk '{print $2}' | xargs kill -9 查找mysql进程并把所有mysql进程杀死
kill -9 pid 强制杀死进程,后面可以跟多个pid,空格隔开
top 动态显示进程以及系统运行状态
nohup ./jmeter-server & 在后台运行某个程序
netstat -nlpt|grep 18983 查看这个进程号端口号是多少
netstat -nlpt|grep 8080 查看这个端口号有没有被占用
3、开关机、注销、重启
shutdown -h 30 定时30分钟后关机
shutdown -h now 立即关机
shutdown -r 30 '我要30分钟后重启' 定时重启并输出输入内容显示到屏幕上
init 0 立即关机
reboot 重启
exit 注销
4、网络
ip a 查看当前ip
ifconfig 查看当前ip
dhclient 自动获取IP
service iptables stop 关闭防火墙
chkconfig iptables off 永久关闭防火墙
yum -y install ntpdate ntp 安装网络时间
ntpdate -s time.windows.com 同步网络时间
六、软件安装、下载、压缩、解压
1、上传、下载
ftp工具:直接拖拽、什么都可以上传,要sftp协议
2、压缩、解压文件
tar cvf linux.tar linux 直接打包,前面是包的名字,后面是你要给谁打包
tar zcvf linux.tgz linux 把linux文件压缩为linux.tgz文件
tar xvf linux.tar linux 解压,不管你有没有压缩都能解开
zip linux.zip linux 把linux文件或文件夹打包为linux.zip
unzip linux.zip -d /opt/ 把linux.zip解压到/opt/目录下,不加-d 默认解压到当前目录下
gzip file 只能对文件打包,打包完原来的文件就没有了
gunizp file.gz 解压缩后,原来的压缩文件没有了
3、软件安装
rpm -qa | grep mysql 查看是否安装mysql软件
rpm -ivh xx.rpm 安装rpm软件包
rpm -e xx.rpm 卸载rpm软件包
rpm -Uvh xx.rpm 升级rpm软件包
yum -y install xxx yum在线安装
4、源码安装
./configure --prefix=/path 生成编译文件
make 编译
make install 把编译好的文件放到你刚才指定的目录下
5、环境变量
/etc/profile 系统环境变量
~/.bashrc 用户环境变量
export PATH=$PATH: 系统默认环境变量
source /etc/profile 使系统环境生效
source ~/.bashrc 使用户环境变量生效
七、防火墙
Centos6
service iptables status #查看防火墙状态
service iptables stop #停止防火墙
service iptables start #启动防火墙
service iptables restart #重启防火墙
chkconfig iptables off #永久关闭防火墙
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT 或者 iptables -A INPUT -p tcp --dport 80 -j ACCEPT #开放80端口
vim /etc/sysconfig/iptables #编辑文件添加,保存后重启防火墙
iptables -A INPUT -p tcp --dport 60000:65534 -j ACCEPT #开放60000到65534之间的端口
/etc/rc.d/init.d/iptables save #保存开放端口
Centos7
systemctl start firewalld #开启防火墙
firewall-cmd --permanent --add-port=2181/tcp #开启端口
firewall-cmd --zone=public--add-port=4400-4600/udp --permanent #批量添加dup区间端口
firewall-cmd --zone=public--add-port=4400-4600/tcp --permanent #批量添加tcp区间端口
firewall-cmd --permanent --remove-port=2181/tcp #关闭端口
firewall-cmd --reload #重启防火墙
firewall-cmd --zone=public --list-ports #查看端口列表
systemctl stop firewalld #关闭防火墙
systemctl enable firewalld #设置开机启动
sytemctl disable firewalld #停止并禁用开机启动
systemctl status firewalld 或者 firewall-cmd --state #查看防火墙状态