基本命令
目录结构
远程软件(附Xshell和Xftp)
vi编辑器
关机、重启
远程登录注销
用户、组管理
运行级别
隐藏文件
文件和目录的权限
rwx权限
修改文件或目录权限
定时任务
磁盘分区和挂载
统计命令
树状形式显示目录
修改ip地址
进程管理
服务
rpm和yum
配置环境变量
防火墙
mysql安装和配置
基本命令
cd 切换目录
- ls和ll
- ls显示当前目录下的文件和文件夹名称
- ll显示详细信息
pwd 显示当前目录路径
man 命令(用于查看命令)
help 命令(用于查看命令)
cd ~ 回到自己的家目录
- mkdir 创建目录
- 创建多级目录:mkdir -p /home/zrk/data
- rm 删除目录(如果目录下不为空,则无法删除)
- rm -rf 目录名称(强制删除)
- -r 递规删除
- -f 强制删除不提示
- rm -rf 目录名称(强制删除)
touch 创建新文件(可以创建多文件,以空格隔开)
- 拷贝:cp 源文件 目标路径
- 拷贝文件夹:cp -r 源文件夹 目标文件路径
- 如果是覆盖操作,使用 \cp 系统不会进行提示
- 拷贝文件夹:cp -r 源文件夹 目标文件路径
- mv(移动,可用于重命名)
- mv 原文件 新文件
- cat (查看文件,不能修改文件)
- cat -n 文件名(-n显示行号)
- cat 文件名 | more (分页显示,空格显示下一页)
- more 分屏查看
- 显示下一页:空格
- 下翻一行:Enter
- 离开:q
- 向下滚动一屏:Ctrl+F
- 返回上一屏:Ctrl+B
- 输出当前行号:=
- 输出文件名和当前行号::f
- less 分屏查看,适合查看大文件(不全部加载)
- 向下翻页:空格
- pagedown、pageup键
- 查询:/关键字(n向下查找,N向上查找)
- > 重定向指令 和 >> 追加指令
- ls > 文件名(将ls输出的内容放到文件中)
- echo 输出内容到控制台
- echo "字符串"
- echo $PATH(输出环境变量)
- head 显示文本前几行(默认前十行)
- head -n 5 文件(显示前五行)
- tail -n 5 (显示后五行)
- tail -f 文件(实时显示文件变化)
- ln 软链接(快捷方式)
- ln -s 源文件 链接名称
- history 查看已经执行过的指令
- history 5 (显示最近5条指令)
- !5 (执行编号为5的指令)
- 时间日期类
- date 显示当前时间
- date "+%Y-%m-%d %H:%M%%S" (2019-05-30 14:47:05)
- date -s "时间" (设置当前系统时间)
- cal日历指令
- cal 年 (显示一年的日历)
- 搜索指令
- find
- 通过文件名:find 路径(查找范围) -name 文件名
- 通过文件的拥有者:find 路径 -user 用户名
- 通过文件大小:find 路径 -size +4M(+大于,-小于)
- locate,可以快速定位
- 需要先建立locate数据库:updatedb
- locate 文件名
- grep
- cat 文件名 | grep -n 关键字 (显示匹配行和行号)
- cat 文件名 | grep -i 关键字 (忽略大小写)
- find
管道符号 |(将左侧的输出传递给右侧的命令进行处理)
- 压缩和解压缩
- gzip/gunzip 名称
- zip/unzip
- zip -r 压缩文件名 文件夹路径(递规压缩文件夹)
- unzip -d 解压路径 压缩文件 (解压缩到指定文件夹)
- tar
- -c 产生.tar打包文件
- -v 打包时显示详细信息
- -f 指定解压后的文件名
- -z 打包同时压缩
- -x 解压.tar文件
- tar -zcvf 压缩文件名 文件1 文件2 (一般的压缩组合指令)
- tar -zxvf 要解压的文件 (一般的解压组合指令)
- 解压到指定目录(目录需要存在):tar -zxvf 要解压的文件 -C 路径
目录结构
- 根目录 /
- /bin 存放常用的命令
- /sbin 系统管理员使用的管理程序
- /home 创建用户时会在此新建属于自己的目录
- /root 系统管理员的目录
- /lib 系统开机所需最基本的动态连接共享库,几乎所有的程序都会用到
- /lost+found 一般为空,系统非法关机时存放一些文件
- /etc 系统管理所需的配置文件和子目录
- /usr 存放用户的应用程序等
- /boot 引动系统启动的核心文件
- /proc 虚拟目录,系统内存的映射,可以获取系统信息
- /srv 服务启动后需要的数据
- /sys 该文件系统是内核设备树的一个直观反映
- /tmp 存放临时文件
- /dev 将所有硬件用文件的形式存储
- /media 设备挂载目录
- /mnt 临时挂载别的文件系统
- /opt 安装软件存放目录
- /usr/local 软件安装后的目录
- /var 存放不断扩充的文件,即经常被修改的文件放在此目录,包括日志文件
- /selinux 安全子系统,可以控制程序只能访问特定文件
远程软件
远程登录软件XShell
上传下载文件XFtp
- 链接: https://pan.baidu.com/s/1WCq7Mmz4k2MOdspvuAFtNA 提取码: px6m
- 运行绿化.bat
- 如果报错,根据提示安装windows相应环境
vi(Linux内置)和vim(增强版)编辑器
- 三种模式:正常模式、插入模式(编辑模式)、命令行模式
- 打开后先进入正常模式,可以使用快捷键(按Esc回到正常模式)
- 按下i进入插入模式,进行文本修改
- 按下 : 进入命令行模式,提供相关指令,如:保存退出(:wq)
- 快捷键
- yy 复制当前行,5yy 复制当前行下向下的5行
- p 粘贴
- dd 删除当前行,5dd 删除当前行下向下的5行
- 在文本中查找,输入 /关键字,在输入n,即查找下一个
- :set nu 显示行号,:set nonu 不显示行号
- G 到文本最后一行,gg 到文本第一行
- 行号 G,到达指定行号
- u 撤销
关机、重启(之前执行 sync 把内存数据同步到磁盘,防止数据丢失)
- shutdown
- shutdown -h now 立即关机
- shutdown -h 1 1分钟后关机
- shutdown -r now 重启
halt 关机
reboot 重启
远程登录注销
- logout
用户管理、用户组
root管理员 属于root组,一个用户至少属于一个组
- 添加用户:useradd [选项] 用户名
- 当创建用户时,没有指定组将创建和用户同名的组
- 指定用户组 useradd -g 组名 用户名
- 用户创建时系统自动在home目录创建同名文件夹
- 如果不想系统创建,也可以指定创建的文件夹名 useradd -d 文件夹路径 用户名
设置或修改密码:passwd 用户名,然后输入密码
- 删除用户:userdel 用户名
- 不带参数删除用户,保留用户家目录
- userdel -r 用户名,删除用户及其家目录
- 查询用户信息:id 用户名
- 查询出uid(用户id)、gid(组id)、组(组名称)
- 切换用户:su - 用户名
- 从高级别用户到低级别用户时不需要输入密码,输入exit会回到高级别用户
查询当前用户:whoami
添加用户组 groupadd 组名
- 修改用户所在组
- usermod -g 组名 用户名
- 修改用户的主组,之前的主组变为附属组
- usermod -G 组1,组2 用户名
- 替换用户的附属组,如果附属组和主组相同,表示只有主组
- usermod -a -G 组1,组2 用户名
- 添加用户的附属组
- usermod -g 组名 用户名
删除用户组 groupdel 组名
- 用户配置文件:/etc/passwd
- 部分行的含义:用户名:口令:用户id:组id:注释描述信息:主目录:shell
- 组信息文件:/etc/group
- 部分行含义:组名:口令:组id:组内用户列表(隐藏)
- 口令配置文件(密码和登录信息,加密文件):/etc/shadow
- 部分行的含义:登录名:加密口令:最后一次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标志
- chown 修改文件所有者
- chown 用户名 文件名
- chgrp修改文件所在组
- chgrp 组名 文件名
chown -R 人:组 目录 (递规修改目录和文件的所有者和组)
Linux七个运行级别
- 0:关机
- 1:单用户[找回丢失密码]
- 2:多用户,无网络
- 3:多用户,有网络
- 4:系统未使用,保留
- 5:图形界面
- 6:重启
- 配置文件路径:/etc/inittab
- 指定级别:init 级别
隐藏文件(以.开头的文件)
文件和目录的权限
(例如/home下的文件) -rw-r--r--. 1 zrk NetCore 120 2月 28 12:12 zrk
- 0:- 普通文件,d 文件夹,l 软链接,c 设备(键盘或鼠标),b 块文件(硬盘)
- 1-3:文件所有者权限
- 4-6:文件所在组的用户权限
- 7-9:文件其他组的用户权限
- 如果是文件,1表示硬链接;如果是目录,表示目录下的子目录个数
- 表示拥有者
- 表示所属组
- 表示文件大小
- 文件的修改时间
- 名称
rwx权限,读、写、可执行/可进入
- 对文件有写权限,表示可以修改,但是删除,需要有目录的写权限
- r=4,w=2,x=1
- rwx(有权限表示1,没有权限表示0)只有r就是100(二进制)=4,只有w就是010(二进制)=2,只有x就是001(二进制)=1
修改文件或目录权限chmod
- chmod u=rwx,g=rx,o=x 名称
- chmod o+w 名称 (给其他人加写权限)
- chmod a-r 名称 (给全部人减少读权限)
- chmod 777 名称 (通过数字给权限,给全部人所有权限)
定时任务 crontab
- -e 编辑定时任务,例如(每分钟在result中写入ll命令的结果):/1 * * * ll /etc/ >> /tmp/result.txt
- 第一个*:分钟(0-59)
- 第二个*:小时(0-23)
- 第三个*:天(1-31)
- 第四个*:月(1-12)
- 第五个*:星期(0-7,0和7都表示星期天)
- 特殊符号说明
- *代表任何时间,每秒、每分、每小时...
- ,表示不连续的时间
- -表示范围
- /表示,左边表示开始,右边表示步长
-l 列出当前所有定时任务
-r 终止所有任务
service crond restart 重启任务
磁盘分区和挂载 crontab
- 分区方式
- mbr分区
- 最多支持4个主分区
- 系统只能安装在主分区
- 扩展分区要占用一个主分区
- 最大只支持2TB,但是兼容性好
- gtp分区
- 不限主分区(但是操作系统有可能限制)
- 最大支持18EB(EB=1024PB,PB=1024TB)
- win7 64位后支持gtp
- mbr分区
硬盘:IDE(old)、SCSI(性能好)
- 驱动器标识符:例如hdx~、sdx~
- hd表示IDE设备类型,sd表示SCSI
- x为盘号(a为基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘)
- ~表示分区,前1-4个分区是主分区或扩展分区,从5开始是逻辑分区
查看系统分区和挂载的命令 lsblk [-f]
挂载点实际上就是linux中的磁盘文件系统的入口目录
- 实例:增加一块硬盘
- 虚拟机添加硬盘:设置=>硬盘=>添加
- 分区
- fdisk /dev/磁盘(sdb)
- m(显示帮助信息)
- 格式化
- mkfs -t ext4 /dev/分区(sdb1)
- 挂载(下面只是临时挂载,重启后就消失)
- mount /dev/分区 /home/文件目录(卸载 umount 分区或文件目录)
- 设置可以自动挂载
- etc/fstab (记录分区和挂载点信息),修改此文件会自动挂载
- /dev/分区 /home/文件目录 ext4 defaults 0 0
- etc/fstab (记录分区和挂载点信息),修改此文件会自动挂载
- 磁盘使用情况查询
- df -h
- 查询目录占用磁盘情况:du -ach --max-depth=1 目录
- -s 指定目录占用大小
- -h 带计量单位
- -a 含文件
- --max-depth=1 子目录深度
- -c 列出明细,并增加汇总值
统计命令wc
- -c 统计字节数
- -l 统计行数
- -m 统计字符数
- -L 打印最长行的长度
- 实例:
- 统计目录下的文件个数:ll 目录 | grep "^-" | wc -l
- 统计目录下的文件夹个数:ll 目录 | grep "^d" | wc -l
tree命令,以树状形式显示目录
修改ip地址
- 指定固定ip地址
- /etc/sysconfig/network-scripts/ifcfg-eth0
ONBOOT=yes(启用) BOOTPROTO=static(以静态的方式获取ip) IPADDR=192.168.1.110(指定ip) GETWAY=关 DNS1=dns和网关保持一致即可
进程管理
- ps 查看系统中的进程
- -a 显示所有
- -u 以用户的格式显示
- -x 显示后台进程运行的参数
- -ef 会显示进程的父进程
pstree -p 以树状的形式显示进程和pid
- kill和killall 终止进程
- kill [选项] 进程号
- -9 (强制终止)
- killall 进程名称(支持通配符)
- kill [选项] 进程号
- top 动态监控进程
- -d 数字,刷新时间
- -i 不显示任何闲置或僵死进程
- -p 监视某个进程状态
- P 按cpu使用率排序(默认)
- M 按内存使用排序
- N 按PID排序
- q 退出top
- k 结束进程
服务(service)
- service 服务名 [start|stop|restart|reload|status](临时生效)
- centos7.0后使用systemctl
- 查看防火墙状态
- service iptables或firewalld(默认防火墙) status
setup 查看所有服务(或者在/etc/init.d/)
- chkconfig可以给服务的各个运行级别设置启动和关闭(永久生效)
- chkconfig --level 运行级别 服务名 on/off
- chkconfig --list 列表显示服务
- 查看网络情况:netstat -anp
- -an 按一定顺序排序输出
- -p 显示哪个进程在调用
rpm和yum
- rpm包(相当于windows中的安装程序)
- -qa 查询所有已安装的rpm包
- -qf 路径(查询文件所属的软件包)
- -qi 软件包(查询详细信息)
- -e 卸载rpm包(如果有依赖提示不让删,使用 -e --nodeps 包名)
- -ivh rpm包路径
- -i install
- -v 提示
- -h 进度条
- yum 前端软件包管理,基于rpm,用的比较多,自动安装所有依赖包
- install 安装
- update 更新
- check-update 检查可更新程序
- info 显示安装包信息
- list 查询服务器有没有所需的安装包(yum list | grep 软件)
- remove 删除
- deplist 查看程序包依赖
配置环境变量
文件路径:/etc/profile
- 以java环境变量为例
- 在文件末尾添加:
JAVA_HOME=路径 PATH=路径:$PATH(冒号代表连接符) export JAVA_HOME PATH
防火墙(禁用firewall,使用iptables)
关闭firewall:systemctl stop firewalld.service
禁止firewall开机启动:systemctl disable firewalld.service
安装iptables防火墙:yum install iptables-services
- 编辑防火墙配置文件:vi /etc/sysconfig/iptables
- 以3306端口为例:-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
重启防火墙使配置生效:systemctl restart iptables.service
设置防火墙开机启动:systemctl enable iptables.service
mysql安装和配置(以5.7为例,初始化方式和老版本不同)
查看是否已有mysql,有则需要卸载:pm -qa | grep mysql
下载解压到/usr/local/mysql
添加mysql组和mysql用户
修改 /usr/local/mysql的组和用户权限为mysql:chown -R mysql:mysql /usr/local/mysql
- 初始化数据库:/usr/local/mysql/bin/mysqld --initialize --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
- --user 启动mysql的用户
- --basedir mysql安装目录
- --datadir mysql数据仓库目录
[root@z mysql]# /usr/local/mysql/bin/mysqld --initialize --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql 2019-05-31T10:21:06.750933Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2019-05-31T10:21:07.644227Z 0 [Warning] InnoDB: New log files created, LSN=45790 2019-05-31T10:21:07.764158Z 0 [Warning] InnoDB: Creating foreign key constraint system tables. 2019-05-31T10:21:07.777875Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: cdcb1ce4-838d-11e9-a1bd-000c29256118. 2019-05-31T10:21:07.782886Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened. 2019-05-31T10:21:07.784521Z 1 [Note] A temporary password is generated for root@localhost: pNRthyw-c31r
- 初始化后打印的最后一行,也和之前版本不同,它给了root一个初始密码,后面要登录的时候要用到这个密码。
将mysql/目录下除了data/目录的所有文件,改回root用户所有:chown -R root /usr/local/mysql
mysql用户只需作为data目录下所有文件的所有者:chown -R mysql /usr/local/mysql/data
复制启动文件:cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
增加mysqld服务控制脚本执行权限:chmod 755 /etc/init.d/mysqld
将mysqld服务加入到系统服务:chkconfig --add mysqld
检查mysqld服务是否已经生效:chkconfig --list mysqld
修改启动脚本:vi /etc/init.d/mysqld
basedir=/usr/local/mysql/ datadir=/usr/local/mysql/data port=3306
启动服务:service mysqld start
- 加入环境变量,可以在任何地方用mysql命令,vi /etc/profile
PATH=/usr/local/mysql/bin:$PATH
export PATH
刷新立即生效:source /etc/profile
- mysql -u root -p
- 输入之前的密码
修改密码:set password=password('新密码');
开放3306端口