#LInux复习
##查看配置命令
cpu情况 :cat /proc/cpuinfo
cpu内核:cat /proc/cpuinfo | grep processor
内存情况:cat /proc/meminfo
磁盘情况:fdisk -l
**命令【参数】【作用对象】**tldr工具,查看命令帮助
tldr 一个命令帮助插件
yum install -y nodejs
npm --version
npm install -g tldr
- l --long / -a --all / -R --Recursive
touch - 如果文件不存在创建新文件/如果存在更新文件最新访问时间
mkdir
rmdir - 删除空文件夹
rm - remove
cp -copy / scp(跨主机拷贝)eg:scp fruits.txt root@主机地址:/root/hello.txt
mv - move
head/tail -开头/结尾
less/more - 分页分屏
nl - 显示行号 nl /etc/issue
wc / file / iconv - 统计 行数/单词/字符/文件名 | 操作文件 |转码
wget - 联网下载
/> 输出重定向
/ >> 追加输出重定向
2> 错误输出重定向
< 输入重定向
uniq /sort - 去重 / 排序
gzip / gunzip /xz -z /xz -d 压缩/解压缩 gunzip redis-6…0.1.tar.gz
tar -c /tar -xf - 归档 / 解归档 tar -xf redis-6.0.1.tar
awk – 取列的工具 awk ‘{print $1}’
xargs — 行变成列
例如删除redis相关东西:yum list installed | grep redis | awk ‘{print $1}’ |xargs yum erase -y
grep / find - 查找文件
chmod 更改权限
Linux中的打包文件一般是以.tar结尾的,压缩的命令一般是以.gz结尾的。
一般情况下打包和压缩是一起进行的,打包并压缩后的后缀名是.tar.gz
命令 : tar -zcvf 打包压缩后的文件名 要打包压缩的文件
其中 -z 调用gzip压缩命令进行压缩
-c 打包文件
-v 显示运行过程
-f 指定文件名
命令 :tar[-xvf] 压缩文件
其中:x : 代表解压
*tar -xvf xxx.tar.gz -C /usr------C**代表指定解压的位置*
ps -ef – 查看所有运行进程
ps -aux —显示更完全
top ----类似资源管理器
jobs – 当前放到shell后台的进程
fg %[编号] ---- 把进程从后台拿到前台
Ctrl + c —> 终止前台进程
Ctrl + z -->暂停后台进程
nohup --免疫中断信号,让任务在后台运行
kill / pkill 根据编号杀进程 / 根据名字杀进程
ping
ifconfig
ip
netstat - 查看网络端口情况
-a 表示列举所有的连接、服务器的监听
-t 列出所有tcp协议的服务
-n 使用端口号来显示
-I 列出所有的监听
-p 列出所有的服务的进程ID
netstat -ntlp
Nginx /Apache / Tenginx / —>
systemctl start nginx 启动
systemctl stop nginx 终止
systemctl status nginx
systemctl enable nginx 开机自启
systemctl disable nginx 禁止开机自启
wgt - 在线下载
scp 跨主机拷贝
sftp —本地和云服务器互传,get 下载 put 上传 -r 传文件夹
service s_name start | stop |status|restart
service iptables stop - 关闭防火墙服务
service network restart - 重启网络服务
useradd / userdel 创建用户
(1.用户创建成功后系统会自动在/home目录下创建一个和用户名同名的文件 夹;2.会自动创建和用户名同名的分组,并且将当前用户添加到这个分组中)
useradd -G 分组1,分组2,… 用户名 - 创建指定用户,并且将用户添加到指定分组中
usermod -G 分组1,分组2 用户名 - 修改用户分组
passwd - 设置密码
chage 更改用户密码过期时间
su - 切换用户
sudo – super user do
visudo – 编辑超级管理员权限文件
字符 u+x,o-w
~二进制 744
(a-所有用户,u-文件所有者,g-同组用户,o-其他用户;
+表示添加权限, -表示删除权限;
r-表示读权限, w表示写权限,x表示执行权限)
chmod [a,u,g,o]/[±]/[r,w,x] 文件地址 - 给指定文件对应指定用户添加或者删除指定权限
chagrp 改用户权限组
chown 改用户所有权限组
文件的类型:
d:代表目录
-:代表文件
I:代表连接
sudo -在命令前sudo是以管理员身份执行指令
注意: 不是所有的用户都可以通过sudo来以管理员身份执行指令,如果想要能够使用sudo必须添加配置
a.ubuntu: 将需要有管理员身份的账号添加到sudo分组中
b.redhat和contos: 在/etc/sudoers配置文件中添加代码:
## Allow root to run any commands anywhere
root ALL=(ALL) ALL #(默认有的)
xiaoming ALL=(ALL) ALL #(自己添加的,xiaoming是用户名)
后面的9位可按照如下所示
主 | 主 | 主 | 组 | 组 | 组 | 其他 | 其他 | 其他 |
---|---|---|---|---|---|---|---|---|
r | w | x | r | w | x | r | w | x |
4 | 2 | 1 | 4 | 2 | 1 | 4 | 2 | 1 |
读r 写w 执行x 没有权限 -
默认情况下文件和文件夹的权限: 文件所有者有读写权限, 同组用户和其他用户都是只读权限。
权限: rwx r-- rw-
权限二进制:111 100 110
权限值: 7 4 6
chmod 746 文件路径
权限: rwx rwx rwx
权限值: 7 7 7
chmod 777 文件路径
凡是有的打印结果的指令,我们都可以通过相关指令对应结果进行处理
管道 - |
如果需要对某一个指令的结果使用另外的指令进行二次处理的时候,就需要用到管道(|)
sort
sort - 从小到大排序(将一行内容作为一个字符串,按字符串大小对应内容进行排序,默认不区分大小写)
cat a.txt |sort # 对a.txt的文件内容从小到大排序显示
sort的参数:
-r - 逆序
-nk 1 - 数值大小排序
-nk 2 - 字符大小排序(默认)
cat a.txt|sort -nk 1 # 对a.txt的文件内容按数字大小从小到大排序
cat a.txt|sort -rnk 1 # 对a.txt的文件内容按数字大小从大到小排序
cat a.txt|sort -nk 2 # 对a.txt的文件内容按字符大小从小到大排序(默认)
cat a.txt|sort -rnk 2 # 对a.txt的文件内容按字符大小从大到小排序
uniq - 去重
uniq - 只能将紧挨着的相同行去掉重复的(如果需要去掉所有重复的行,先排序将相同的行放到一起)
cat a.txt|uniq # 去掉a.txt文件内容中相邻重复的行
cat a.txt|sort|uniq # 去掉a.txt文件内容中所有重复的行
uniq的参数
-c - 重复次数
awk
awk ‘{print $N}’ - 获取内容中第N列的数据
history|awk '{print $2}' # 获取历史记录第2列的内容
history|awk '{print $2,$3}' # 获取历史记录第2列和第3列的内容
history |awk '{print $4}' |sort |uniq ‐c | sort ‐rnk 1 | head ‐n 3 # 统计最常用的3个指令及其使用次数
输出重定向
执行有打印结果的指令 > 文件地址 - 将指定指令执行的结果保存到指定文件中(先清除原文件内容再添加)
执行有打印结果的指令 >> 文件地址 - 将指定指令执行的结果保存到指定文件中(直接将结果追加到原文件中)
history > a.txt #将当前历史记录直接保存到a.txt文件中
# 将最常用的3个指令及其使用次数保存到a.txt文件中
history |awk '{print $4}' |sort |uniq ‐c | sort ‐rnk 1 | head ‐n 3 > a.txt
统计
wc -c/-w/-l 文件地址 - 统计指定文件中字符/单词/行的数量
查找
a. grep - 找内容
grep 内容 文件地址 - 在指定文件中查找指定内容(返回文件中所有包含指定内容的行)
grep you a.txt # 获取a.txt中包含you的所有的行
grep的参数:
-n - 显示结果的时候显示行号
-i - 查找内容的时候忽略大小写
-E - 按正则表达式进行匹配
使用方法: grep -E '正则表达式' 文件
注意: Linux操作系统中正则表达式不支持:\d,\D,\w,\W,\s,\S,\b,\B; 其他语法都支持
-v - 忽略字段
grep you a.txt -v # 获取a.txt中不包含you的所有的行
b. 执行有打印结果的指令 |grep 内容 - 在指令执行结果中查找指定内容
c. grep -r 内容 文件夹地址 -在指定文件夹中所有的文件中查找指定内容
find - 找文件
find 文件夹路径 -name 文件名 - 在指定文件夹下按文件名找指定文件
# 找指定文件名
find dir1 -name 'test1.py' # 在文件夹dir1找名字是test1.py的文件
find dir1 -name '*.txt' # 在文件夹dir1找后缀是txt的所有文件
find dir1 -name 'test*.txt'
find dir1 -name 'test*'
find dir1 -name '*c.txt'
find 文件夹路径 -size +/-文件大小 - 在指定文件夹下找文件大小满足条件的所有的文件
find dir1 -size +4k # 查找在文件夹dir1中所有大于4k的文件
find dir1 -size -4k # 查找在文件夹dir1中所有小于4k的文件
find dir1 -size +5k -size -10k # 查找在文件夹dir1中所有大于5k并且小于10k的文件(文件大小如果是小数,算的时候向上取整)
find dir1 -size +4k -name '*.txt' # 查找在文件夹dir1中所有大于4k的txt文件
查指令
which 指令名 -精确查找当前指令对应的文件的路径
whereis 指令名 -查找和指定指令相关的所有的文件的路径
man 指令名 -获取指定指令的使用手册
指令名 — help -获取指定指令的帮助文档
trld 命令名 ----获取指定指令的帮助文档
命令的别名:
ls -l <===> llfind dir1 -size +4k # 查找在文件夹dir1中所有大于4k的文件
find dir1 -size -4k # 查找在文件夹dir1中所有小于4k的文件
find dir1 -size +5k -size -10k # 查找在文件夹dir1中所有大于5k并且小于10k的文件(文件大小如果是小数,算的时候向上取整)
find dir1 -size +4k -name ‘*.txt’ # 查找在文件夹dir1中所有大于4k的txt文件
alias ‘ll=ls -l’
unalias ll
安装MYSQL
下载安装MySQL所需要的RPM文件
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.30-1.el7.x86_64.rpm-bundle.tar
源代码安装Git
下载Git源代码压缩归档文件 https://git-scm.com/
解压缩和解归档
xz -d git-2.26.2.tar.xz
tar -xf git-2.26.2.tar
补包(网络):yum install -y libcurl curl-devel
进入文件安装:./configure --prefix=/usr/local
–prefix指定前缀
安装编译:make &&make install
若报错补一下依赖项:yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel libdb4-devel libpcap-devel xz-devel libffi-devel
检查安装是否成功
git --version
–requirepass rediscode :设置口令
–port 1122 指定端口
连接:redis-cli -p 1122
Linux环境下创建和激活Python虚拟环境
方法一:
python3 -m venv venv
source venv/bin/activate
pip install …
方法二:
pip3 install virtualenv
virtualenv --python=/usr/bin/python3 venv
source venv/bin/activate
macOS安装mysqlclient