Linux基本操作
注:此片命令以CentOS6为基准,存在部分CentOS7会注明。
1.用户
useradd [用户名]useradd -d [目录] [用户名]useradd -g [组名] [用户名]userdel [用户名]userdel -r [用户名](会删除主目录)passwd [用户名](修改密码)usermod -g [组名] [用户名](修改用户所在组)id [用户名](查看用户信息)
2.组
Groupadd [组名]Groupdel [组名]
- /etc/passwd 用户信息
- /etc/shadow 密码信息
- /etc/group 组信息
3.运行级别
- 位于/etc/inittab文件
- 0123456代表各个级别
init [级别]修改级别
4.cd复制
cp [文件] [地址]cp - r [目录] [地址](递归 拷贝目录下所有)
5.添加> >>
添加内容
6.Head
head [文件]head -n [行数] [文件]
7.Tail
tail [文件]tail -n [行数] [文件]tail -f [文件](实时监控)
8.Ln创建软连接
ln -s [原目录] [快捷点]ln -s /root /home/rootlink
9.日期类
date +%Y...date -s 字符串时间(设置时间)cal
10. 查询
find [搜索范围] -name [文件名]find [搜索范围] -user [用户]find [搜索范围] -size [大小] (+20k ,20k,-20k)locate (使用前要updatedb)
11. Grep(过滤) 和 管道符 |
cat hello.txt | grep -in yes(n匹配行号 i不区分大小写)
12.压缩 解压
- .gz
gzip [文件]gunzip [.gz包] - .zip
gip -r mypackage.zip /home(r递归压缩,文件夹)unzip mypackage.zip -d /opt(d解压到指定文件夹) - .tar.gz
tar -zcvf ab.tar.gz a.txt b.txttar -zcvf myhome.tar.gz /hometar -zxvf myhome.tar.gz -C /opt
13. 文件权限修改chmod

- 第一种:(u用户,g组,o其他用户,a所有,用+,-,=便是权限变动)
chmod u=rwx,g=r,o=r [文件名]chmod u-x [文件名]chmod g+w [文件名] - 第二种:r=4,w=2,x=1
chmod u=rwx,g=rx,o=r [文件名]
相当于:chmod 754 [文件名]
14. 修改文件所在组和用户
chown [用户] [文件名] 修改文件所有者chownchown [newuser] [文件]chown [newuser:newgroup] [文件](同时修改用户和组)chown -R [newuser] [目录](目录下所有文件全改)chgrp [组名] [文件名](通chown)
15.任务调度crontab
crontab -e 编辑crontab -l 列出crontab -r 删除所有任务调度crontab -u 指定用户service crond restart 重启任务调度*/1 * * * * date >> /tmp/to.txt 每分钟输入时间
- 的含义1-5:
- 分钟:0-59
- 小时:0-23
- 天数:1-31
- 月数:1-12
- 星期:0-7(0和7都代表星期日)
- 特殊符号说明:
- * 任何时间
- ,不连续的点
- - 范围
- */n 每隔多久执行一次
16.Lsblk -f查看分区情况
17.如何增加一块硬盘
- 1)虚拟机添加硬盘
- 2)分区
fdisk /dev/sdb - 3)格式化
mkfs -t xfs /dev/sdb1 - 4)挂载
- 创建挂载目录
/home/newdisk - 挂载mount
/dev/sdb1 /home/newdisk
- 创建挂载目录
- 5)设置可以自动挂载(前四步只是临时挂载,重启就会失效)
vim /etc/fstab
18.查看磁盘使用情况
df -h 查看所有磁盘du -ach --max-dipth=1 目录ll /home | grep "^-" | wc -l 统计目录下文件个数ll -R /home | grep "^-" | wc -l 统计目录及其子目录下文件个数
查看树状目录 安装tree指令
19.配置ip
vim /etc/sysconfig/network-scripts/ifcfg-ens33
20.进程管理
- 查看:
ps -aux
Ps -ef
树状形式:
pstree -p显示进程id
pstree -u显示所属用户 - 杀死:
kill -9(强制杀死) [进程id]
killall [指令(gedit)]
21.服务管理service systemctl
- 启动/..服务:
service [服务名] [start/stop/restart/reload/status]
Centos7往后:
systemctl [start/stop/restart/reload/status] [服务名]
注:这两种是临时的。重启后还是以前的样子。 - 查看服务:
setup
查看/etc/init.d/目录
CenOs7:
systemctl -al
chkconfig (sshd) --list - 开机是否启动:
chkconfig sshd --level 5 off设置好后需要重启才能生效
Centos7开机自启动服务:
systemctl enable nginx.service
22.动态监控进程
top -d(设置几秒刷新一次)/-i/-p
进入监控状态 u指定用户 k杀死进程(后面加进程号)P排序(pid排序:P,M,N)
netstat查看网络情况:netstat -anp (an按一定顺序排列输出 p显示哪个进程在调用)
23.RPM包管理
- 查看:
rpm -qa | grep xxx查看已安装的rpm列表
rpm -qa | grep firefox
rpm -q firefox查看是否安装
rpm -qi firefox查看软件包详情
rpm -ql firefox查看软件包安装了哪些文件
rpm -qf [文件]查看文件属于哪个包 - 卸载rpm包:
rpm -e [包名]rpm -e firefox
rpm -e -nodeps firefox有依赖时强制删除 - 安装rpm包:
rpm -ivh [包名](i=install v=verbose提示 h=hash进度条)
注:首先要挂载镜像,进入里面找到rpm包
24.Yum需联网
- 查询:
yum list | grep xxx软件列表 - 安装指定的yum包:
yum install xxx下载安装
25.JavaEE
25.1 jdk安装
解压,设置path
25.2 Tomcat安装
解压,Startup.sh启动,开放8080防火墙
开放方式:
CentOS 6:
vim /etc/sysconfig/iptables
service iptables restart
CentOS 7往后:
开放端口:firewall-cmd --permanent --zone=public --add-port=8080/tcp
关闭端口:firewall-cmd --permanent --zone=public --remove-port=8080/tcp
查询开放端口:firewall-cmd --list-ports
重新加载防火墙:firewall-cmd --reload
zone #作用域
add-port=80/tcp #添加端口,格式为:端口/通讯协议
permanent #永久生效,没有此参数重启后失效
25.3 Mysql安装
- 删除默认安装
rpm -qa |grep mysqlyum remove ... - 官网下载MySQL yum安装源
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpmRpm -ivh ...
之后
说明MySQL yum仓库添加成功 - 安装sql server
yum install mysql-community-server - 启动服务
systemctl start mysqld.service - 找到生成密码
cat /var/log/mysqld.log | grep password - 有密码强度验证
SHOW VARIABLES LIKE 'validate_password%';set global validate_password_policy=0; - 登录 更改密码
- 设置远程用户
26.apt包管理
sudo apt-get update 更新源sudo apt-get install package 安装包sudo apt-get remove package 删除包
sudo apt-cache search package 搜索软件包sudo apt-cache show package 获取包的相关信息,汝说明、大小、版本等sudo apt-get install package --reinstall 重新安装包
sudo apt-get -f install 修复安装sudo apt-get remove package --purge 删除包,包括配置文件等sudo apt-get build-dep package 安装相关的编译环境
sudo apt-get upgrade 更新已安装的包sudo apt-get dist-upgrade 升级系统sudo apt-cache depends package 了解谁用该包依赖哪些包sudo apt-cache rdepends package 查看该包被哪些包依赖sudo apt-get source package 下载该包的源代码
27.shell编程
vim myShell.sh
- 执行(2种方式):
- 1.
chmod 744 myShell.sh赋予权限直接./myShell.sh执行 - 2.
sh myShell.sh
- 1.
27.1变量
- 语法:
- 1)系统变量 set | more 查看
- 2)自定义变量 变量=值
- 3)撤销变量 unset 变量
- 4)静态变量声明 readonly 变量(不能unset)
- 5)反引号
...或者$(…)表示值 …代表命令(ls -l /home)
27.2环境变量
定义变量:
Export 变量名=变量值
TOMCAT_HOME=/opt/tomcat
ExportTOMCAT_HOME立即生效变量
source 配置文件单行注释:#
多行注释:<<! …. !
27.3位置参数变量
- 执行脚本
./myShell.sh 100 200
说明:100和200就是位置参数,如何在脚本里获取 - 语法:
- $n(n是0-9的整数,0表示命令本身./myShell.sh,1代表100,2是200,十以上${10})
- $*(把参数当整体100 200)
- $@(代表所有参数,但是区分对待100 200)
- $#(所有参数个数2)
27.4预定义变量
Shell设计者实现定义好的变量
- 语法:
- $$ 当前进程号PID
- $! 后台运行的最后一个进程的PID
- $? 最后一次执行命令的返回状态。0正常执行,非0执行不正确
27.5运算符
- 语法:
- 1)”$((运算式))”或”$[运算式]”
RESULT1=$(((2+3)*4))
RESULT2=$[(2+3)*4] - 2)Expr m + n(运算符之间要有空格,运算符+, -, *, /, %)
TEMP=expr 2 + 3
RESULT3=expr $TEMP \* 4
- 1)”$((运算式))”或”$[运算式]”
27.6条件判断
- 语法:
[ condition ]
注:condition前后有空格,非空返回true,可使用$?验证(0为true,>1为false) - 判断语句:
- 1)两个整数比较
=字符串比较
-lt 小于-le小于等于 -eq -gt -ge -ne - 2)按照文件权限判断
-r有读的权限 -w -x - 3)按照文件类型判断
-f文件存在且是一个常规文件 -e文件存在 -d文件存在并是一个目录
- 1)两个整数比较
27.7流程控制
27.7.1 分支控制
- if语法:或者
1
2
3if [ ... ];then
...
fi1
2
3
4
5
6
7if [ ... ]
then
...
elif [ ... ]
then
...
fi - case语法:
1
2
3
4
5
6
7
8
9
10
11case $变量名 in
“值1”)
...
;;
“值2”)
...
;;
*)
...执行其他
;;
esac
27.7.2 循环控制
- for语法:或者:
1
2
3
4for 变量 值1 值2 值3...
do
...
done1
2
3
4for ((初始值;循环条件;变量变化))
do
...
done - While语法:
1
2
3
4while [ ... ]
do
...
done
27.8 读取控制台输入read
- 语法
read [选项] [参数] - 说明
- 选项:
-p:指定读取值时的提示符
-t:指定读取值时的等待时间(秒),超时就不读取了 - 变量:指定读取值的变量名
- 选项:
27.9函数
系统函数和自定义函数
- 系统函数(介绍两中):
- basename基本语法
返回完整路径最后/的部分,常用于获取文件名
basename [pathname] [suffix]
basename [string] [suffix]
suffix被指定,则会去掉该后缀。 - dirname基本语法
返回完整路径最后/的前面部分,常用于返回路劲部分
dirname [文件绝对路径]
- basename基本语法
- 自定义函数:
- 语法
1
2
3
4
5[ function ] funname[()]
{
Action;
[return int]
} - 说明
调用直接写函数名:funname args1 args2…
参数调用和位置参数一样
- 语法
27.10实用案列(数据库备份)





