Linux汇总
常用命令
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