linux
Posted 躺云飘
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux相关的知识,希望对你有一定的参考价值。
1.简介
1.没有exe文件 2.区分大小写 3.一切皆文件 4.文件后缀没那么重要,只是好识别而已
补充:管道符的作用:命令格式:命令A|命令B,即命令1的正确输出作为命令B的操作对象
2.配置centos网络
1.配置网络
vi /etc/sysconfig/network-scripts/ifcfg-encfg03 配置最后一行配置自动启动 onboot = yes
service network restart 重启网络服务
ping www.baidu.com 验证网络是否配置成功
2.配置ifconfig命令
yum install net-tools
ifconfig 验证命令
3.连接xshell
1.上面的步骤centos已经可以ping出来,但是ping不进去的
2. systemctl status firewalld #查看防火墙
systemctl stop firewalld #临时关闭防火墙
systemctl disable firewalld #永久关闭防火墙
systemctl restart network #重启网卡
3.关闭防火墙,重启网卡,ping linux的ip验证
4.xshell连接
windows使用xshell客户端
linux ssh 客户端 yum install openssh-clients
ssh root@10.0.0.254 # 命令连接 端口号默认22 有的服务器没有远程连接服务sshd 需要自己安装
4.ssh: config命令/ 免密登录 (后补)
4.配置yum源
1) 安装wget
yum install -y wget
2)配置阿里云源
wget http://mirrors.aliyun.com/repo/Centos-7.repo
3) 重新加载yum
yum clean all #清除yum安装包的header缓存
yum makecache # 安装yum缓存
测试:安装vim : yum install vim
5.yum命令(安装软件) 先查search后装 install 查看已安装的软件版本 httpd -v
1.常用命令
查找
yum search java 列出所有java的版本,
yum list 列出所有可安装的安装包
yum list installed 列出
安装 yum install #全部安装 yum install package1 #安装指定的安装包package1 yum groupinsall group1 #安装程序组group1 更新和升级 yum update #全部更新 yum update package1 #更新指定程序包package1 yum check-update #检查可更新的程序 yum upgrade package1 #升级指定程序包package1 yum groupupdate group1 #升级程序组group1 删除程序 yum remove httpd #删除程序包package1 yum groupremove group1 #删除程序组group1 yum deplist package1 #查看程序package1依赖情况 清除缓存 yum clean all #清除所有缓存包 yum clean packages #清除缓存目录下的软件包 yum clean headers #清除缓存目录下的 headers yum clean oldheaders #清除缓存目录下旧的 headers
补充:/home家目录概念 cd ~ 进入当前用户的家目录 有可能是root目录或home目录
6.linux 常用命令
1.软件操作命令 2.服务器硬件资源和磁盘操作 3.文件和文件夹操作命令
4.包的命令 4.系统用户操作命令 5.防火墙相关设置 6.提权操作sudo和文件操作
1.软件安装命令 yum
2.服务器硬件资源和磁盘操作(内存 磁盘 cpu)
内存: free -m 硬盘: df -h cpu: w/top w 可以查看最近5分钟,10分钟,15分钟 cpu的使用率 cpu个数和核数 cat /proc/cpuinfo
3.进程/服务
ps:top可以动态显示服务器资源动态 ,相当任务管理器, ps是一次性的
# ps查看进程 ps aux # 擦好看进程详细情况 ps aux | grep httpd a:显示终端上所有进程,包括其他用户的进程 u:显示进程的纤细情况 x:显示没有控制终端的进程 pa au # 常用 top # 动态显示运行中的进程并且排序,类似于windows的任务管理器 kill PID号 # 终止PID号的进程 kill -9 PID号 # 强制终止 pkill 服务名 # 杀死指定服务 掌握pgrep命令的功能:通过名称或其他属性查找进程 例如:查找名为firefox的进程的命令为:pgrep firefox # 服务 netstat -natup # 查看所有服务 top # 动态显示服务状况 wget www.baidu.com vim index.html # 爬取资源 systemctl stop 服务名 : 关闭某一个服务 systemctl start 服务名 : 启动一个服务 eg:service sshd start: 启动ssh的服务 systemctl restart 服务名 : 重新启动一个服务 eg:service sshd restart: 重新启动ssh的服务
3.文件操作命令(一切皆文件)
文件目录结构
目录作用
bin ---- 命令,二进制文件的存放目录 boot ----- 系统引导程序+系统的内核 dev ---- 设备 硬盘,光驱 etc ---- 存储系统或者服务的配置文件 home ---- 普通用的家目录,贫民窟 lib ----- 库文件存放目录 lib64 ---- 库文件的存放目录(64位系统) media ---- linux识别的设备,比如u盘等,挂这个目录 mnt ----- 临时的挂载点目录 opt ----- 第三方的软件安装在整理 proc ----- 虚拟目录,显示内存中的信息(进场,内核的信息) root ----- root的家目录 相当于皇宫 run ----- 放的启动的东西 sbin --- 超级命令,只用root用户才能用的命令 srv ----- service的缩写,存放的是一些启动后需要的数据 sys ------ 虚拟目录,内存信息 tmp ----- 临时文件的存放位置 usr ---- 存放用户的程序 var ----- 存放经常变化的文件,比如日志等
文件基础操作
补充:pwd 显示当前路径 ,文件可以不用后缀,一般d开头的表示文件夹 , .表示当前目录
ls -
-a 显示所有文件及目录 (ls内定将文件名或目录名称开头为"."的视为隐藏档,不会列出) -l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出 -r 将文件以相反次序显示(原定依英文字母次序) -t 将文件依建立时间之先后次序列出 -A 同 -a ,但不列出 "." (目前目录) 及 ".." (父目录) -F 在列出的文件名称后加一符号;例如可执行档则加 "*", 目录则加 "/" -R 若目录下有文件,则以下之文件亦皆依序列出
cp 拷贝 eg:将目录/usr/men下的所有文件及其子目录复制到目录/usr/zh中 cp -r /usr/men /usr/zh /cp -r /usr/men /user/zh # 前面加/ 不会重复提问你 mv 移动 eg:将文件 aaa 更名为 bbb : mv aaa bbb 将info目录放入logs目录中。注意,如果logs目录不存在,则该命令将info改名为logs。 mv info/ logs touch test # 创建test文件 touch test{1,2,3} # 创建test1,test2,test3文件 mkdir index # 创建index目录 直接创建文件夹:mkdir -p /etc/test 进入目录后创建mkdir test mkdir index{1,2,3} # 创建index1,index2,index3目录 rm test # 删除文件(需要确认) rm -r index # 删除文件夹(需要确认) rm -rf index # 删除文件或目录(不需要确认,直接删除) yum install tree tree # 树状显示目录结构
vim编辑器(有GUI页面的都无法使用)将文件读取到内存中
常用命令 i/esc
vim 文件 新建或打开文件
gg 移到行首 G 移动到行尾
dd删除本行 u撤回
文件权限
4+2+1 7 rwx 读写执行 4+2+0 6 rw- 读写 4+0+1 5 r-x 读执行 4+0+0 4 r-- 读 0+2+1 3 -wx 写执行 0+2+0 2 -w- 写 0+0+1 1 --x 执行 0+0+0 0 --- 无任何权限 # 修改权限方式一 chmod -R 777 文件名 #所有权限 -R 标识递归设置所有文件 # 修改权限方式二 chmod +rwx 文件名 (不好用,不推荐) chmod # 修改权限 chgrp # 修改组 chown # 修改拥有者
文件搜索/查找/读取
# 文件搜索 find搜索 find 大致路径 -name *.txt # 搜索路径下的所有以txt结尾的文件 eg:find -name *a* # 模糊搜索,配合通配符使用 find python/ -name *.py # 搜索python文件夹下的所有.py结尾的文件 # cat test.log 读取整个文件 # head 从头部读取 # tail 从尾部读取显示后几行, eg: tail -f test.log 实时监控(默认显示10行),tail -n 100 显示日志后100行, tail -f -n 100 test.log #grep tail -f -n 100 test.log | grep xxx | grep yyy 管道符使用: find python/ -name *.log | grep error #more 分页读取 more test.log #less 可控分页 # wc 统计个数 eg:统计日志的行数: cat test.log | wc l
文件的压缩(tar)与解压
tar基本使用: 打包: -c # 打包,产生新的包 -x # 解包 -v # 列出归档解档过程,显示进度 -f # 指定包名 -r # 添加文件 -u # 更新 -t # 列出文件 压缩: -z # gzip格式 -j # bzip2格式 -C(大写) # 解压到指定目录 # tar打包: tar -cvf 包名.tar 文件路径 eg: # 普通打包 tar -cvf aa.tar /home/001.txt 002.txt 003.txt # 3个文件打包为1个文件 # 配合通配符打包 tar -cf jpg.tar /home/*.jpg # 将home下的所有.jpg结尾的文件打成jpg.tar包 # 添加到已有的包 tar -rf jpg.tar /home/*.gif # 将home下的所有.gif文件添加到jpg.tar包中 # 更新 tar -uf jpg.tar *.gif # 更新jpg.tar包中的所有gif文件 # 列出文件 tar -tf jpg.tar # 列出jpg.tar包中所有文件 # tar解包: tar -xvf 包名.tar eg: tar -xvf aa.tar # 打包并压缩 -z 或者-j tar -zcvf jpg.tar.gz /home/*.jpg # 将home下的所有.jpg结尾的文件打成jpg.tar.gz的压缩包 tar -jcvf jpg.tar.bz2 /home/*.jpg # 将home下的所有.jpg结尾的文件打成jpg.tar.bz2的压缩包 # 解压缩包 -x或者-j eg: tar -zxvf jpg.tar.gz tar -jxvf jpg.tar.bz2 # 解压到指定目录 -C(大写) tar -zxvf jpg.tar.gz -C /home/jeff
包操作 rpm 安装本地的安装包,yum在线安装
rpm -qa # 查询所有安装过的包信息 rpm -qa | grep httpd yum liist installed | grep httpd rpm -q 包名 # 查询指定软件包是否安装过 rpm -qf /etc/passwd # 反向查询文件是由什么包安装 rpm -qi 包名 # 查询已安装的包的信息 rpm -ql 包名 # 查询包的所有文件安装路径 rpm -qr 包名 # 查询已安装包的依赖关系 rpm -qrp 包名 # 查询包的依赖关系 rpm -V 包名 # 查询已安装的包是否修改过 V是大写 rpm -e 包名 # 卸载包 yum -y remove 包名 # 卸载包
7.通配符
* # 匹配0个或者多个字符 eg: ls index* # 结果:index1,index2abc,index3asdasd。。。 ? # 匹配任意单个字符 eg: ls index? # 结果:index1,index2,index3 ls index?? # 结果: indexaa,indexbb,indexcc [0-9] # 匹配0-9范围内的数字 [abc] # 匹配列表中的任意字符 ^ # 非,取反 eg: [^abc]:匹配除abc的字符 > # 追加到文件,覆盖原来的信息 # 可以利用>做黑洞文件,垃圾桶 eg: echo hello >test # hello写入test中,并覆盖原来的所有内容 >> # 追加到文件,不覆盖原来的信息 eg: echo hello >>test # hello写入test中,从末尾追加,不覆盖 | # 管道符,对前面的命令结果,传给后面用 eg: cat test2 |grep a cat test2 |grep -n a cat test2 |grep -ni A
8.用户权限
1.创建用户
#添加用户 ueradd bigbox
# 设置密码: passwd bigbox # 封锁解锁用户 usermod -L jeff 锁定jeff用户 usermode -U jeff 解锁jeff用户 # 删除用户 userdel -r 删除用户 # 将用户添加到组 chgrp -R 组名 用户名 # 将用户添加到组 eg:chgrp -R python jeff # 将jeff添加到python组 -R :递归修改用户中目录及文件权限 who # 查看当前用户目录 whoami # 查看当前用户名 /etc/password # 用于把偶才能用户信息的文件 /usr/bin/passwd # 用于修改用户密码的程序
2.用户组
groupadd 组名 # 创建组 groupdel 组名 # 删除组 # 将用户添加到组 chgrp -R 组名 用户名 # 将用户添加到组 eg:chgrp -R python jeff # 将jeff添加到python组 -R :递归修改用户中目录及文件权限
eg:普通用户提权: root 用户使用visudo 命令 将用户添加到文件中,普通用户使用sudo 即可获得和root一样的权限
9.开关机,重置密码
reboot 重启系统 shutdow # 一分钟后自动关机 shutdow -c # 取消本次关机操作 shutdow now # 立即关机 shutdow -r now # 立即重启 shutdow 20:00 # 20:00关机 shutdow 10 # 10分钟后关机 root 重置密码 第一步:开机4秒内按e 第二步:光标移动到Linux16开头处,按end(光标移到末尾) 第三步:在末尾输入 空格rd.break ctrl+x 下一步 第四步:mount -O remount,rw /sysroot 第五步:chroot /sysroot 第六步:passwd root 第七步:输入两遍新的root密码 第八步:touch /.autorelabel 第九步:exit两遍
进阶:软件安装
1.防火墙
1.防火墙 (centos7 自带防火墙) 注意这里使用service 而不是 firewalld
安装: yum install firewalld
启动: servive firewalld start
检查状态: servic firewalld status
关闭或禁用防火墙: service firewalld stop/disable
2.常用命令
firewall-cmd --version # 查看防火墙版本 firewall-cmd --help # 查看帮助 firewall-cmd --get-zones #查看防火墙所有区域 默认区域为public firewall-cmd --list-all-zone # 查看所有区域的详情 firewall-cmd --query-service=ssh # 查询ssh服务 firewall-cmd --remove-service=ssh #删除服务 firewall-cmd --add-service=ssh #增加服务 端口 端口和服务只需要添加一个即可
firewall-cmd --zone=public --list-ports firewall-cmd --query-port=22/tcp #查询duankou firewall-cmd --add-port=22/tcp #增加端口 firewall-cmd --remove-port=22/tcp #删除端口
2.appache
centos httpd ubuntu appache
appache 与 tomcat : appache 只支持静态网页 动态js 交给tomcat处理 appache web服务器,tomcat(应用服务器)
1.安装appche服务
yum install httpd
systemctl start httpd
system status httpd
ps -ef | grep httpd # 查看进程
netstat -natup | grep httpd #查看服务
service firewalld stop #关闭防火墙
2.域名解析,伪静态 待补充
3.nginx
Centos7中无Nginx的源
rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
yum install ngix
systemctl start nginx
systemctl stop nginx
systemctl reload nginx # reload 重新加载文件 重载不会关闭服务 对已连接的用户无影响 正在谁用的服务,一般使用reload
反向代理,负载均衡 待补
以上是关于linux的主要内容,如果未能解决你的问题,请参考以下文章
linux打开终端如何启动scala,如何在终端下运行Scala代码片段?
Android 逆向Linux 文件权限 ( Linux 权限简介 | 系统权限 | 用户权限 | 匿名用户权限 | 读 | 写 | 执行 | 更改组 | 更改用户 | 粘滞 )(代码片段
-bash: /usr/bin/ls: /lib64/ld-linux-x86-64.so.2: bad ELF interpreter: No such file or directory(代码片段