常用命令
1 tree /home/ 树状形式显示 yum install tree
2 cat :查看文本内容
cat >> test2.txt <<EOF
> ads
> adf
> EOF
3 less,more:文本查看,分页
less /etc/services
4 head -n1 /etc/services :查看该文件第一行
5 ps aux | head -n5 :查看前5个进程
6 tail -f /var/log/messages :动态查看文件变化
7 grep:查找命令
-grep "lqz" test2.txt 查找文件中有lqz的行
-ps aux | grep ssh 查看sshd进程是否在运行
8 less打开文件:ctrl+b:下翻页 ctrl+f:上翻页
9 wget:下载yum install wget
wget 路径 默认下载在当前路径
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
10 curl:连通性
你的django:127.0.0.1:8080端口,先在本地curl一下,看看能不能通,可能是防火墙,阿里云的安全组
curl -o /home/a.png https:72743-20190.png
11 上传下载 (4g以内)
yum install lrzsz -y
rz:上传,选择文件直接上传
sz:sz 文件路径 可以下载到当前主机
12 which 命令:
去/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin 路径找有没有
13 whereis -b ls 查找ls命令,只找二进制(可执行文件)
14 sort
sort file.txt 对内容进行排序
sort -t ":" -k2 file.txt
sort -t ":" -n -k2 file.txt
15 uniq 去重,连续挨着的才能去,所以要跟sort连用
sort file2.txt | uniq
16 cut
Im lqz, is QQ 306334678
cut -d " " -f2,5 file.txt #把字符串按“ ” 分割,取出第2和第5个
17 wc
wc -l /etc/services
ls | wc -l # 统计当前路径下有多少文件和文件夹
ps aux |grep ssh | wc -l # 统计有多少个ssh相关的进程
文件属性
ls -l
ls -lh 以人性化显示,kb,gb
-:文件类型
rw-r--r--.:权限
1:硬链接的次数
root:属主(属于哪个用户)
root:属组(属于哪个组)
43856 :大小
Aug 19 11:54 :修改时间
a.png:文件名字
文件类型:
- #普通文件(文本, 二进制, 压缩, 图片, 日志等)
d #目录文件
b #设备文件(块设备)存储设备硬盘 /dev/sda1, /dev/sda2
c #设备文件(字符设备),终端 /dev/tty1, /dev/zero
s #套接字文件, 进程间通信(socket)
p #管道文件
l #链接文件
通过file来查看详细的类型
file a.txt
file /bin/ls
软链接硬链接
1 软链接和硬链接:软链接新建inode,硬链接指向同一个inode
2 软链接---》快捷方式
-ln -s a.png /home/jack/a.png
-一般咱们对可执行文件建立软链接(删除不会删除原来)
-软链接目录:
redis-3.2.1---->编译安装
redis-3.2.1/bin 路径配到环境变量
软件升级
redis-4.2.1
-建立软链接redis---》redis-3.2.1
redis/bin 路径配到环境变量
软件升级
redis软链接到---》redis-4.2.1
3 ln /root/file /tmp/file_hard (了解)
vim
# yum install vim -y
# 普通模式、编辑模式、命令模式
# 普通模式:
-上下翻
-yy 复制一行
-p 粘贴
-dd 剪切
-p 把上面剪切的粘贴上
# 编辑模式
-i:insert插入
-a:append追加
-o:换行
-正常写就可以了
-esc回到普通模式
# 命令模式:
-不能从编辑模式直接进,只能先到普通模式按 : 进入命令,退出命令模式esc
-w 表示保存
-q 退出
-! 强制退出
-修改了文件后保存: wq wq!
-修改了不想保存退出: q q!
-:set nu 显示行号
-:set nonu 不显示行号
-/字符串 搜索这个字符串
-:%s#sbin#test#g #替换整个文本文件中包含sbin的替换为test
用户相关
#1 id 查看当前用户信息
uid=0(root) gid=0(root) groups=0(root)
#2 用户信息保存在 cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
#3 密码存放路径 cat /etc/shadow
#4 约定不同用户的uid属于某个范围(了解)
# 5 用户的增,删,改
-useradd(一个用户只能属于一个主组,属于多个附加组)
-groupadd sa 新增一个组
-groupadd sa1 新增一个组
-groupadd students 新增一个组
-useradd -u 5001 -g students -G sa,sa1 -c "2020 new student" -s /bin/bash lqz1
-创建mysql系统用户,-M不建立用户家目录 -s指定nologin使其用户无法登陆系统
useradd mysql -M -s /sbin/nologin
-usermod
-usermod -c "2019 new student" -md /bgx -s /bin/sh -l change_bgx bgx
-usermod -L change_bgx #锁定后会无法登陆系统
-usermod -U change_bgx
-userdel
-userdel egon # 删除用户,不删家目录
-userdel -r egon1 # 删除用户,删家目录
#6 改密码
-passwd root
#7 组增删改
-groupadd no_gid 新增组
-groupmod -g 1111 student 改组id号
-groupmod student -n new_student 改组名字
-groupdel new_student 删除组(组下没有人,把人删除,再删)
# 8 su 和sudo
-su 切换用户
-su - jack:打开新的shell,会加载自己的环境变量
-su jack:不打开新的shell,不会加载它的环境变量
-sudo 普通用户可以有一些超级用户的权限,不需要输入密码
usermod jack -G wheel # 把jack用户加入到了wheel组
-你这个用户没有权限,你尝试 sudo mkdir ll试一下,不行,超级管理员没有给你配这个权限
特殊权限:权限属性chattr
#选项: + 增加权限 -减少权限 =等于某个权限
# a:让文件或目录仅可追加内容
# i:不得任意更动文件或目录
# 给某个文件或者文件夹加特殊权限
-chattr +i lqz.text
-chattr -i lqz.text
压缩解压
#1 Windows的压缩包与Linux的压缩包能否互通
windwods:rar,zip
linux:tar.gz,zip互通,不支持rar
# 2 gzip (只能压一个文件,不能压文件夹,会把原来的删除)
-gzip file
-gzip -d file
-有什么用?
-cd /etc/yum.repos.d/
#3 zip的压缩和解压
-yum install zip unzip -y
-zip filename.zip filename # 压单个文件
-zip -r home.zip /home/ #把home文件夹压缩
-unzip home.zip #解压
-unzip -l home.zip # 不解压,看内容
-unzip home.zip -d /opt/ # 把当前路径下的home.zip 解压到opt
# 4 tar打包与压缩
-tar -czf 文件 ---》tar.gz
-tar -xf xx.tar.gz --->解压xx.tar.gz
tar -xzvf xx.tar.gz :解压tar.gz,详细过程列出来
-tar -czf home.tar.gz dd/ lqz1 lqz2 /home/
-tar czf etc.tar.gz --exclude=etc/services etc/ # 排除文件
-tar xf /etc/local.tar.gz -C /tmp # -C指定解压到哪个路径
软件管理:rpm
#1 红帽的软件安装包(windows的:exe,mis)
#2 mount /dev/cdrom /mnt 把光盘挂在到 /mnt文件夹
#3 Linux中除了rpm安装软件,是否还有安装软件方式
-源码安装-->官网下源码--》编译安装---》最新
-rpm包,预先编译打包,安装简单,yum安装,本质就是rmp安装--》稍微老一些
-二进制包:绿色包
-安装rpm的软件:rpm -ivh tree-1.6.0-10.el7.x86_64.rpm
-强制安装:rpm -ivh --force /mnt/Packages/tree-1.5.3-3.el6.x86_64.rpm
-rpm -q :查看这个软件是否安装********
-rpm -qa |grep tr :列出所有安装的软件
-rpm -ql :查询指定软件包所安装的目录、文件列表rpm -ql unzip *****
-rpm -qc unzip:查看这个软件的配置文件位置
-rpm -qf /etc/pam.d/vsftpd :查看配置文件属于哪个软件
-rpm -qlp trace-cmd-2.6.0-10.el7.x86_64.rpm :查看该软件包安装后会释放哪些文件
-使用远程地址安装:rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-agent-3.0.8-2.el7.x86_64.rpm
-rpm -Uivh 升级软件需要用 U
-rpm -e zabbix-agent
yum仓库,源
# 1 Yum是RedHat以及CentOS中的软件包管理器。能够通过互联网下载 .rpm 包并且安装,并可以自动处理依赖性关系,无须繁琐地一次次下载、安装
# 2 cd /etc/yum.repos.d/ 路径下有xx.repo 文件---》yum源
# 3 换阿里云的源
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
# 4 配置其他源
-wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
-yum install nginx
-yum provides ipconfig # 通过命令查软件,这个命令属于哪个软件
-rpm -qf `which ifconfig` # 查命令属于哪个软件,前提是该软件安装了
基本权限chmod
1 rwx r-x r-x
属主(文件所有者) 属组权限 其他人权限
2 权限详解
r:read写权限
w: write写权限
x:可执行
3 修改权限
7=4(r)+2(w)+1(x)
chmod 777 文件夹/文件
软件管理之二进制安装
1 会了yum安装,为什么还要会二进制安装(编译安装)
-官方不提供yum安装
-二进制安装是最新的
2 向服务器传递文件的几种方式
-scp nginx-1.18.0.tar.gz root@101.133.225.166:/home/jack
-sz,rz
-xftp软件来传
3 源码安装nginx
-1 下载
-2 解压
-2.1 安装依赖
-yum install -y pcre-devel gcc gcc-c++ make zlib-devel openssl-devel
-3 通过configure 生成配置信息,配置相关的选项,并生成Makefile,软件安装的信息
./configure --prefix=/usr/local/nginx
-4 make 按照Makefile生成的安装软件
-5 make install:将二进制文件拷贝至对应的目录中
-6 目录介绍
conf :配置文件都放在这
html :静态文件存放路径,index.html
logs :日志
sbin :可执行文件
-7 命令介绍
nginx # 启动
nginx -s reload # 重新加载,修改配置文件
nginx -s restart # 重启
nginx -s stop # 停止
-8 在任意路径敲nginx都能执行
-建立软链接 ln -s /usr/loacl/nginx/sbin/nginx /sbin/nginx
-把/usr/loacl/nginx/sbin/路径加入环境变量
-想使用systemctl 管理(制作系统服务)
进程管理
#1 ps -aux 用它,[系统进程]
#2 ps -ef
#3 ps -aux|grep id,进程名字,
# 4 top实时看状态
# 5 kill -l
# 6 kill -9 进程id号 强行关闭
# 7 pkill -9 nginx 关闭nginx所有进程
# 8 killall nginx 关闭nginx所有进程
# 通过来管理进程screen
yum install screen -y
创建一个窗口
screen -S myjobs
执行耗时任务,进程
ctrl+a+d 退出当前bashshell但是耗时任务还在后台运行
screen -r myjobs 调到前台执行
screen -list 查看所有任务
系统服务
#1 centos6 上启动服务service start network 串行启动
#2 centos7 启动服务:systemctl start network 并行启动
#3 cd /usr/lib/systemd/system/
###制作系统服务
#4 vim mynginx.service
[Unit]
Description=my nginx
After=network.target #在哪个服务启动后启动
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecStop=/usr/local/nginx/sbin/nginx -s stop
ExecRestart=/usr/local/nginx/sbin/nginx -s restart
ExecReload=/usr/local/nginx/sbin/nginx -s reload
[Install]
WantedBy=multi-user.target
# 以后就支持使用 systemctl start mynginx.service
# 查看服务状态:
systemctl status mynginx.service
# disabled表示没有开机自启动
Loaded: loaded (/usr/lib/systemd/system/mynginx.service; disabled; vendor preset: disabled)
# 开机自启动
systemctl enable mynginx
# 取消开机自启动
systemctl disable mynginx.service