/bin (/usr/bin、usr/local/bin) 这个目录存放着最经常使用的命令
/sbin(/usr/sbin、usr/local/sbin)这里存放系统管理员使用的系统管理程序
/home 存放着普通用户的主目录,在linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的
/root root用户主目录
/usr/local 软件默认安装目录,同C:\Program Files
/media 把识别后的U盘,光驱挂载在此目录
---------------------------------------------------------------------------------------------------------------------------
vi 或vim 操作;vim是vi的增强版,使用vim可以主动的以字体颜色辨别语法、代码补全等功能
---------------------------------
命令行模式:按:或/进入命令行模式,按esc退出命令行
/abc 查找关键字abc,按n查找下一个,N查找上一个
:set nu 显示行号
:set nonu 取消显示行号
:wq 保存文件
:q 退出文件,若文件改动会询问是否保存
:q! 强制退出文件不保存
ctrl+b 向上移动一屏
ctrl+f 向下移动一屏
---------------------------------
正常模式:
G 光标移动到末行
gg 光标移动到首行
输入任意数字回车 光标移动到该行
ctrl + insert 复制
shift + insert 粘贴
---------------------------------
编辑模式:
u 撤销在插入模式中增加的字符
---------------------------------------------------------------------------------------------------------------------------
su <用户名> 切换用户名
logout 注销
cd ~ 返回到用户目录
---------------------------------------------------------------------------------------------------------------------------
ls 显示当前路径下所有文件
ls /home 显示/home下的所有文件
ls -l 以列表形式显示文件
ll 同 ls -l
---------------------------------------------------------------------------------------------------------------------------
useradd [选项] <用户名> 创建用户,默认会创建一个同用户名同名的组
useradd -d /home/dog xq 指定用户的家目录,该用户登录时会默认进入/home/dog
useradd -s /sbin/nologin sftp-oa 指定sftp-oa不可以登录系统,但是拥有其他服务,如sftp
useradd -g <组名> <用户名> 创建用户时指定组-g
---------------------------------------------------------------------------------------------------------------------------
usermod -g tomcat admin 修改用户admin的组为tomcat
usermod -G tomcat admin 修改用户admin的组为tomcat
usermod -G tomcat1,tomcat2 admin 修改用户admin的组为tomcat1、tomcat2
usermod -a -G tomcat admin 把用户admin添加到组tomcat,之前的组不受影响
-g 主要组,-G 附加组
---------------------------------------------------------------------------------------------------------------------------
userdel <用户名> 删除用户(保留家目录)
userdel -r <用户名> 删除用户以及家目录
passwd <用户名> 指定/修改某用户的密码
cat /etc/passwd #查看所有用户
---------------------------------------------------------------------------------------------------------------------------
groupadd <组名> 创建组 #groupadd tomcat
groupadd -g 1052 tomcat #创建组,组名称为tomcat,组id为1052
groupdel <组名> 删除组
cat /etc/group #查看所有组,以:号分隔,第一个字段:组名,第三个字段组id
---------------------------------------------------------------------------------------------------------------------------
id <用户名> 查询用户
mkdir user 创建目录
mkdir a b c d 一次创建多个目录
mkdir -p user/u1/fg 创建多级目录,如果u1不存在也会创建
rmdir 删除空目录
rm -rf 删除文件或目录-r 递归删除目录下所有文件及文件夹 -f强制删除不提示
rm -rf * 删除所有文件及目录
touch hello.txt 创建空文件
touch ok1.txt ok2.txt 创建多个空文件
---------------------------------------------------------------------------------------------------------------------------
cp [选项] source dest #dest中路径下必须存在,不能拷贝空文件夹
cp a.txt /home 拷贝文件
cp a.txt /home/a1.txt 拷贝文件并重命名
cp -r abc /home 递归拷贝文件夹
cp -r abc /home/abcd 递归拷贝文件夹并重命名
\cp [选项] source dest 拷贝过程中遇到相同文件名,强制覆盖不提示
\cp a.txt /home
---------------------------------------------------------------------------------------------------------------------------
ls > /my.log #将ls输出的内容写入到/my.log(覆盖),如果目标文件不存在会自动创建,但是目标文件夹必须存在
ls >> /my.log #将ls输出的内容写入到/my.log(追加),如果目标文件不存在会自动创建,但是目标文件夹必须存在
---------------------------------------------------------------------------------------------------------------------------
mv abc.txt cba.txt 原位置重命名
mv aaa bbb 原位置重命名
mv abc.txt /home/abc/ 移动到其他位置,abc必须存在
mv -r ccc /home/abc/ 移动文件夹以及子目录到其他位置
mv abc.txt /home/abc/aaa.txt 移动到其他位置兵重命名,abc必须存在
---------------------------------------------------------------------------------------------------------------------------
date #显示日期
date "+%Y-%m-%d %H:%M:%S" #按指定格式显示日期,若有空格则需要用引号包起来
date -s "2020-01-01 11:11:11" #修改时间
更多参数:https://blog.csdn.net/yz18931904/article/details/80985345
---------------------------------------------------------------------------------------------------------------------------
tar -xzvf abc.tar.gz #对abc.tar.gz进行解压
tar -xzvf abc.tar.gz -C /opt/abc #把abc.tar.gz解压到/opt/abc,/opt/abc 目录必须存在
tar -czvf /opt/abc.tar.gz /abc #压缩;将/abc整个目录压缩到/opt/abc.tar.gz路径下
.tar只是进行打包,并没有压缩
.tar.gz是既打包又压缩
.gz 只压缩。只能针对文件。如果需要对一个目录下的全部文件压缩,则用gzip -r [目录]。gzip [文件名]进行压缩,gzip –d [文件名]进行解压。
gzip abc.txt 压缩
gunzip abc.gz 解压
---------------------------------------------------------------------------------------------------------------------------
chmod u=rwx,g=rwx,o=rwx,a=rwx abc.txt 给abc文件赋权限,u:所有者,g:所在组,o:其他组,a:所有人,r:读,w:写,x:执行
chmod o= abc.txt 给abc.txt 其他组没有任何权限o=空
chmod u+r,g-w abc.txt 给abc.txt 所有者 + 增加一个权限 ,所在组 - 减少一个权限
r=4,w=2,x=1 chmod u=rwx,g=rwx,o=rwx,a=rwx abc.txt 可以写成 chmod 777 abc.txt
chmod u+x /opt/abc/*.sh 给/opt/abc/文件夹下所有的.sh文件增加一个执行权限
rwx作用到文件:r代表读,w代表写,可以修改,但是不代表删除,删除的前提是该文件所在目录有写的权限,x代表可以执行
rwx作用到目录:r代表读,ls查看内容,w代表写,可以修改,目录内创建+删除+重命名目录,x代表可执行,可以进入该目录
---------------------------------------------------------------------------------------------------------------------------
chown tomcat abc.txt 改变文件的所有者
chown tomcat:tomcat abc.txt 该变文件的所有者和所在组
-R 如果是目录则递归更改子目录
chgrp tomcat abc.txt 更改文件所在组
---------------------------------------------------------------------------------------------------------------------------
grep 20200810 *.log #搜过关键字20200810在哪个log文件中
---------------------------------------------------------------------------------------------------------------------------
ps -aux 查看进程
ps -ef 以全格式查看进程含父进程
ps -ef | grep redis
ps -ef | grep redis -v grep 屏蔽掉该条命令产生的进程
kill 4010 杀掉pid=4010的进程
kill -9 4010 强制杀掉pid=4010的进程
killall gedit 杀掉进程名为gedit的进程
---------------------------------------------------------------------------------------------------------------------------
./start.sh & #使用&符以守护进程启动程序或脚本
nohup ./start.sh #当&不可用时,可以使用nohup
nohup ./start.sh & #或者一起使用(推荐)
http://www.ruanyifeng.com/blog/2016/02/linux-daemon.html
https://www.cnblogs.com/yunwangjun-python-520/p/10713564.html
---------------------------------------------------------------------------------------------------------------------------
service 服务名 start|stop|restart|reload|status
service --status-all #显示所有服务的运行状态
centos7.0后,使用 systemctl 替代 service
service iptables stauts 查看防火墙状态
service iptables restart 重启防火墙
vim /etc/sysconfig/iptables 编辑防火墙文件,开放端口,例如8080端口 -A INPUT -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT 需要重启防火墙, --dport 8080:8089 开放端口范围
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT 使用命令添加防火墙
/etc/rc.d/init.d/iptables save 添加防火墙后保存,否则重启后失效
setup 查看系统所有服务
ll /etc/init.d/ 查看系统服务文件
/etc/init.d/mysql /etc/init.d/下的文件名为服务名,service mysql start
/etc/init.d中的mysql文件是官网编译安装后的mysql.server改名过来的,里面的内容就是mysql启动脚本
---------------------------------------------------------------------------------------------------------------------------
chkconfig --list 查看所有服务的运行级别是否自动启动 --list也可以不写
0.表示关机
1.单用户模式
2.无网络的多用户模式
3.有网络的多用户模式
4.不可用
5.图形化界面
6.重新启动
chkconfig --list | grep redis
chkconfig sshd --list 查看sshd服务的运行级别是否自动启动 --list必写
chkconfig --level 5 sshd on/off 设置sshd服务第5级运行级别是否自动启动,on是,off否
chkconfig sshd on/off 设置sshd服务所有运行级别是否自动启动,on是,off否
设置chkconfig后需要重启系统才生效
---------------------------------------------------------------------------------------------------------------------------
service 与 chkconfig 区别
service 是当前有效,重启后无效。
chkconfig 是当前无效,重启后生肖
---------------------------------------------------------------------------------------------------------------------------
lsblk -a 查看服务器上所有磁盘及分区
fdisk -l 查看已使用磁盘及分区
df -h 查看分区使用情况
---------------------------------------------------------------------------------------------------------------------------
Centos7:
systemctl --type service #查看服务状态
systemctl --type service | grep mysql
systemctl list-unit-files #查看服务开机启动列表
systemctl list-unit-files | grep mysql
---------------------------------------------------------------------------------------------------------------------------
top 进程动态监控,类似windows的任务管理器。
打开后按u,输入用户名回车可以按用户监控。按k,输入进程号回车可以终止进程,按q退出监控,按字母P(cpu)、M(内存)、N(进程号)大写可以排序显示
top -d 10 每10秒更新一次进程信息
top 详细用法见 https://blog.csdn.net/zhuoya_/article/details/81049967
Linux查看某个服务JVM的GC和堆内存使用情况
---------------------------------------------------------------------------------------------------------------------------
netstat -anp 查看网络监听(端口、协议) -an 按一定顺序排列输出 -p 显示哪个进程在调用
lsof -i :6379 查看6379端口
---------------------------------------------------------------------------------------------------------------------------
rpm软件包全名称:firefox-45.0.1-1.el6.centos.x86_64(软件包名:firefox 版本:45.0.1-1 操作系统:1.el6.centos)
rpm -qa 查询已安装的rpm软件列表
rpm -qa | grep mysql
rpm -qa | more
rpm -q firefox 查询是否安装了firefox(可写全名称firefox-45.0.1-1.el6.centos.x86_64)
rpm -qi firefox 查询firefox信息
rpm -ql firefox 查询firefox软件包安装后的文件位置信息
rpm -qf /usr/lib64/firefox/browser/chrome/icons/default/default32.png 查询default32.png这个文件属于哪个rpm软件包
rpm -e firefox 卸载firefox软件
rpm -e --nodeps firefox 强制删除(软件包与其他软件有依赖时,可以使用强制删除)
rpm -ivh /opt/firefox-45.0.1-1.el6.centos.x86_64.rpm 安装软件包 -i安装 -v提示 -h进度条
---------------------------------------------------------------------------------------------------------------------------
yum 类似java中的maven,node中的npm
yum list 显示yum服务器上所有的rpm软件包
yum list | grep mysql
yum install firefox 安装rpm软件包,默认安装最新版本以及依赖软件包
yum -y install firefox 确认安装不弹出提示
---------------------------------------------------------------------------------------------------------------------------
#设置环境变量
vim /etc/profile #编辑profile
#在profile末尾输入以下内容,环境变量区分大小写
JAVA_HOME=/opt/jdk1.7.0_79 #设置jdk解压后的目录
PATH=/opt/jdk1.7.0_79/bin:$PATH #追加PATH
export JAVA_HOME PATH #输出修改后变量
source /etc/profile 使配置立即生效
java -version 查看jdk版本
---------------------------------------------------------------------------------------------------------------------------
#查看glibc版本(.so文件,例如glibc),类似windows的.dll
ldd --version
/lib/libc.so.6 #32位系统
/lib64/libc.so.6 #64位系统
---------------------------------------------------------------------------------------------------------------------------
SUSE 网络设置
先用ifconfig看下服务器网络和网卡情况,然后再对应网卡名称来设置
1、设置IP地址
vi /etc/sysconfig/network/ifcfg-eth0 #编辑配置文件
BOOTPROTO='static' #静态IP
IPADDR='14.17.65.91' #IP地址
NETMASK='255.255.255.192' #子网掩码
STARTMODE='auto' #开机启动网络
2、设置网关
vi /etc/sysconfig/network/routes #编辑文件,如果文件不存在就创建
default 14.17.65.65 - -
3、设置DNS
vi /etc/resolv.conf #编辑文件
nameserver 114.114.114.114
nameserver 8.8.4.4
4、重启网卡,以下三个命令都可以重启网卡
rcnetwork restart
service network restart
/etc/init.d/network restart
---------------------------------------------------------------------------------------------------------------------------