基础命令
tail
tail a.txt
默认查看最后十行数据
tail -8 a.txt
查看最后八行数据
tail -f a.txt
持续更进文件的变化,此时一个新窗口并向a.txt增加内容,内容将被记录到第一个页面中
vim
I:头输入 A:尾输入 0:至开头 $:至结尾 /:搜索 n:向下搜索 N:向上搜素 [num]dd:向下删除num行 yy:复制当前行 P:粘贴到下一行 u:撤销操作 ctrl+R:反向撤销 gg:调到首行 G:调到尾行 dgg:向上全删 dG:向下全删 :w仅保存
systemctl
start 启动
stop 关闭
status 查看状态
enable 开启开机自启
disable 关闭开机自启
systemctl status firewalld
用户和组/权限
普通用户的权限,一般在其HOME目录内是不受限的
一旦出了HOME目录,大多数地方,普通用户仅有只读和执行权限,无修改权限
su/sudo
su - cc exit //回退至root sudo 配置sudo认证 用root visudo coleak ALL=(ALL) NOPASSWD: ALL
配置完后可以直接sudo du,随时不用密码切换到root
创建删除
cat /etc/group groupadd test groupdel test useradd [-g -d] 用户名 userdel [-r] id //查看所属 id test useradd test4 usermod -aG test test4//不去掉原来的组,相当于此时在两个组里 getent passwd//返回所有用户 getent group
ls -l
序号1,表示文件、文件夹的权限控制信息
序号2,表示文件、文件夹所属用户
序号3,表示文件、文件夹所属用户组
- - 表示普通文件
- d 表示目录
- l 表示符号链接
- c 表示字符设备文件
- b 表示块设备文件
- s 表示套接字文件
- p 表示管道文件
r表示读权限 w表示写权限 x表示执行权限 针对文件、文件夹的不同,rwx的含义有细微差别 r,针对文件可以查看文件内容 针对文件夹,可以查看文件夹内容,如ls命令 w,针对文件表示可以修改此文件 针对文件夹,可以在文件夹内:创建、删除、改名等操作 x,针对文件表示可以将文件作为程序执行 针对文件夹,表示可以更改工作目录到此文件夹,即cd进入
chmod
chmod u=rwx,g=rx,o=x hello.txt ,将文件权限修改为:rwxr-x--x 其中:u表示user所属用户权限,g表示group组权限,o表示other其它用户权限 chmod -R u=rwx,g=rx,o=x test,将文件夹test以及文件夹内全部内容权限设置为:rwxr-x--x 快捷写法:chmod 751 hello.txt rwx:421
chown
chown root hello.txt,将hello.txt所属用户修改为root chown :root hello.txt,将hello.txt所属用户组修改为root chown root:coleak hello.txt,将hello.txt所属用户修改为root,用户组修改为coleak chown -R root test,将文件夹test的所属用户修改为root并对文件夹内全部内容应用同样规则
实用操作
快捷键
!搜索最近一次匹配的历史命令
history 1024 cat test.txt 1025 vim test.txt 1026 tail 1027 tail test.txt 1028 history !t=tail test.txt
ctrl+R
搜索匹配最近的命令 键盘左右键直接get该条命令,可以进行修改
光标移动
ctrl+a 至命令开头 ctrl+e 至命令结尾 ctrl+左右 跳过单词
清屏
ctrl+l
软件安装
yum -y install wget yum -y remove wget apt-get -y install wget apt -y remove wget
软链接
-s选项,创建软连接
参数1:被链接的文件或文件夹
参数2:要链接去的目的地
绝对路径否则无法使用
ln -s `pwd`/aaa /aaa
时区与时间
date
格式化字符串:通过特定的字符串标记,来控制显示的日期格式
%Y 年
%y 年份后两位数字 (00…99)
%m 月份 (01…12)
%d 日 (01…31)
%H 小时 (00…23)
%M 分钟 (00…59)
%S 秒 (00…60)
%s 自 1970-01-01 00:00:00 UTC 到现在的秒数
-d 按照给定的字符串显示日期,一般用于日期计算
修改时区
将系统自带的localtime文件删除,并将/usr/share/zoneinfo/Asia/Shanghai文件链接为localtime文件即可
ip、主机名
查看主机名
hostname hostnamectl set-hostname coleak_linux
域名解析
先查看本机的记录(私人地址本)
Windows看:C:\Windows\System32\drivers\etc\hosts
Linux看:/etc/hosts
再联网去DNS服务器(如114.114.114.114,8.8.8.8等)询问
配置固定ip
centos中修改/etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO="static" IPADDR="192.168.10.143" NETMASK="255.255.255.0" GATEWAY="192.168.10.2" DNS1="192.168.10.2"
service network restart
网络传输
请求
ping -c num
ping -c 4 www.baidu.com
wget命令
选项: -b,可选,后台下载,会将日志写入到当前工作目录的wget-log文件
curl命令
-O,用于下载文件,当url是下载链接时,可以使用此选项保存文件 curl cip.cc //get请求
端口
分类
公认端口:1~1023,通常用于一些系统内置或知名程序的预留使用,如SSH服务的22端口,HTTPS服务的443端口 非特殊需要,不要占用这个范围的端口 注册端口:1024~49151,通常可以随意使用,用于松散的绑定一些程序\服务 动态端口:49152~65535,通常不会固定绑定程序,而是当程序对外进行网络链接时,用于临时使用。
嗅探
nmap 192.168.10.143 netstat -anp|grep 22
进程管理
ps -ef
UID:进程所属的用户ID PID:进程的进程号ID PPID:进程的父ID(启动此进程的其它进程) C:此进程的CPU占用率(百分比) STIME:进程的启动时间 TTY:启动此进程的终端序号,如显示?,表示非终端启动 TIME:进程占用CPU的时间 CMD:进程对应的名称或启动路径或启动命令
kill -9 进程的PID
kill -9 2388
主机状态监控
系统资源占用
PID:进程id
USER:进程所属用户
PR:进程优先级,越小越高
NI:负值表示高优先级,正表示低优先级
VIRT:进程使用虚拟内存,单位KB
RES:进程使用物理内存,单位KB
SHR:进程使用共享内存,单位KB
S:进程状态(S休眠,R运行,Z僵死状态,N负数优先级,I空闲状态)
%CPU:进程占用CPU率
%MEM:进程占用内存率
TIME+:进程使用CPU时间总计,单位10毫秒
COMMAND:进程的命令或名称或程序文件路径
选项
交互式选项
磁盘信息监控
df -h //硬盘的使用情况 yum install sysstat -y iostat -x //查看CPU、磁盘的相关信息 iostat [-x] [num1] [num2] 选项: -x,显示更多信息 num1:数字,刷新间隔,num2:数字,刷新几次
网络状态监控
sar -n DEV num1 num2 选项:-n,查看网络,DEV表示查看网络接口 num1:刷新间隔(不填就查看一次结束),num2:查看次数(不填无限次数)
环境变量
PATH:搜索命令程序
env|grep PATH PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin echo /$PATH //直接取env中的PATH的value /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
设置环境变量
临时设置,语法:export 变量名=变量值
永久生效
针对当前用户生效,配置在当前用户的: ~/.bashrc文件中
针对所有用户生效,配置在系统的: /etc/profile文件中
并通过语法:source 配置文件,进行立刻生效,或重新登录FinalShell生效
[root@coleak_linux a]# export my_name=coleak [root@coleak_linux a]# echo $my_name coleak
vim ~/.bashrc //export na=coleak source ~/.bashrc echo $na
自定义命令
vim c //echo coleak chmod 755 c vim /etc/profile export PATH=$PATH:/coleak/test/myenv source /etc/profile [root@coleak_linux myenv]# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/coleak/test/myenv c //coleak 这里输入c,成功执行输出coleak
上传和下载
上传
rz 拖拽上传(推荐)
xshell到物理机(下载)
sz 文件名
压缩和解压
tar
-c,创建压缩文件,用于压缩模式
-v,显示压缩、解压过程,用于查看进度
-x,解压模式
-f,要创建的文件,或要解压的文件,-f选项必须在所有选项中位置处于最后一个
-z,gzip模式,不使用-z就是普通的tarball格式
-C,选择解压的目的地,用于解压模式
-z选项如果使用的话,一般处于选项位第一个
-f选项,必须在选项位最后一个
touch {0..10}.txt tar -zcvf my.tar.gz [0-9].txt mkdir ungz tar -zxvf my.tar.gz -C ungz
zip/unzip
zip test.zip a.txt b.txt c.txt 将a.txt b.txt c.txt 压缩到test.zip文件内 zip -r test.zip test c a.txt 将test、c两个文件夹和a.txt文件,压缩到test.zip文件内 unzip test.zip,将test.zip解压到当前目录 unzip test.zip -d /home/coleak,将test.zip解压到指定文件夹内
安装部署
MySQL 8.x版本安装
cat /etc/redhat-release https://dev.mysql.com/downloads/repo/yum/ rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm yum info mysql-community-server yum -y install mysql-community-server systemctl start mysqld # 启动 systemctl enable mysqld # 开机自启
- 获取MySQL的初始密码
# 通过grep命令,在/var/log/mysqld.log文件中,过滤temporary password关键字,得到初始密码 grep 'temporary password' /var/log/mysqld.log
- 登录MySQL数据库系统
# 执行 mysql -uroot -p # 解释 # -u,登陆的用户,MySQL数据库的管理员用户同Linux一样,是root # -p,表示使用密码登陆 # 执行完毕后输入刚刚得到的初始密码,即可进入MySQL数据库
- 修改root密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码'; -- 密码需要符合:大于8位,有大写字母,有特殊符号,不能是连续的简单语句如123,abc
- [扩展],配置root的简单密码
我们可以给root设置简单密码,如123456.
请注意,此配置仅仅是用于测试环境或学习环境的MySQL,如果是正式使用,请勿设置简单密码
set global validate_password.policy=0; # 密码安全级别低 set global validate_password.length=4; # 密码长度最低4位即可
- 允许root远程登录,并设置远程登录密码
默认情况下,root用户是不运行远程登录的,只允许在MySQL所在的Linux服务器登陆MySQL系统
请注意,允许root远程登录会带来安全风险
# 第一次设置root远程登录,并配置远程密码使用如下SQL命令 create user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码!'; -- 密码需要符合:大于8位,有大写字母,有特殊符号,不能是连续的简单语句如123,abc # 后续修改密码使用如下SQL命令 ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
- 退出MySQL控制台页面
# 退出命令 exit # 或者通过快捷键退出:ctrl + d
- 检查端口
MySQL默认绑定了3306端口,可以通过端口占用检查MySQL的网络状态
netstat -anp | grep 3306
默认情况下,root用户是不运行远程登录的,只允许在MySQL所在的Linux服务器登陆MySQL系统
请注意,允许root远程登录会带来安全风险
# 第一次设置root远程登录,并配置远程密码使用如下SQL命令 create user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码!'; -- 密码需要符合:大于8位,有大写字母,有特殊符号,不能是连续的简单语句如123,abc # 后续修改密码使用如下SQL命令 ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
- 退出MySQL控制台页面
# 退出命令 exit # 或者通过快捷键退出:ctrl + d
- 检查端口
MySQL默认绑定了3306端口,可以通过端口占用检查MySQL的网络状态
netstat -anp | grep 3306