Linux实操优化
Posted alexephor
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux实操优化相关的知识,希望对你有一定的参考价值。
Linux特点:
免费,开源,安全,高效,稳定,处理高并发非常强悍。
目录结构
Linux世界里,一切皆文件。
Linux文件系统是采用层级式的树状目录结构
树状目录结构:
1 /bin: 2 bin是Binary的缩写, 这个目录存放着最经常使用的命令。 3 4 /boot: 5 这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。 6 7 /dev : 8 dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。 9 10 /etc: 11 这个目录用来存放所有的系统管理所需要的配置文件和子目录。 12 13 /home: 14 用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。 15 16 /lib: 17 这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。 18 19 /lost+found: 20 这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。 21 22 /media: 23 linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。 24 25 /mnt: 26 系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。 27 28 /opt: 29 这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。 30 31 /proc: 32 这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。 33 这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器: 34 35 echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all 36 /root: 37 该目录为系统管理员,也称作超级权限者的用户主目录。 38 39 /sbin: 40 s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。 41 42 /selinux: 43 这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。 44 45 /srv: 46 该目录存放一些服务启动之后需要提取的数据。 47 48 /sys: 49 50 这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。 51 52 sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。 53 该文件系统是内核设备树的一个直观反映。 54 55 当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。 56 57 /tmp: 58 这个目录是用来存放一些临时文件的。 59 60 /usr: 61 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。 62 63 /usr/bin: 64 系统用户使用的应用程序。 65 66 /usr/sbin: 67 超级用户使用的比较高级的管理程序和系统守护程序。 68 69 /usr/src: 70 内核源代码默认的放置目录。 71 72 /var: 73 这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。 74 75 /run: 76 是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。
远程登录
XShell 6能够远程访问Linux系统的前提是,Linux启用了SSHD服务,该服务会监听22号端口
1 ssh root@+ip
vim和vi
三种模式
- 一般模式
- 命令行模式
- 编辑模式
常用快捷键
补充:
关机&重启
用户管理
用户家目录
/home/目录下有各个创建的用户对应的家目录,当用户登录时,会自动进入自己的家目录。
添加用户
删除用户
切换用户
查询用户
用户登陆和注销
用户组
用户和组的配置文件
/etc/shadow口令配置文件。
/etc/passwd用户配置文件。
/etc/group组配置文件。
了解更多https://www.runoob.com/linux/linux-user-manage.html
实用指令
帮助指令
文件目录类
pwd
1 功能:显示当前工作目录的绝对路径。
ls
1 功能:显示指定工作目录下之内容。 2 语法:ls [选项] 目录或文件 3 常用选项: 4 5 -a显示当前目录的所有文件和目录,包括隐藏的。 6 -l以列表的方式显示详细信息。
cd
1 功能:切换当前目录。 2 常用参数 3 4 cd返回家目录 5 cd ~返回家目录 6 cd ..回到当前目录的上一级目录
mkdir
1 功能:创建目录 2 语法:mkdir [选项] 要创建的目录 3 常用选项: 4 5 -p创建多级目录
rmdir
1 功能:删除空目录 2 语法:rmdir 目录
rm
1 功能:删除文件或目录 2 语法:rm [选项] 文件或目录 3 常用选项: 4 -r递归删除整个文件夹 5 -f强制删除,不提示
touch
1 功能:新建一到多个文件 2 语法:mkdir 文件1 [文件2,文件3...]
cp
1 功能:拷贝文件到指定目录 2 语法:cp [选项] source dest 3 常用选项: 4 -f:为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次; 5 6 -i:若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用) 7 8 -l:进行硬式连结(hard link)的连结档创建,而非复制文件本身; 9 10 -p:连同文件的属性一起复制过去,而非使用默认属性(备份常用); 11 12 -r:递归持续复制,用於目录的复制行为;(常用) 13 注意:使用\\cp,可以强制覆盖,不提示
mv
1 功能:移动文件与目录,或者重命名 2 语法1:mv source dest 3 语法2:mv 旧名 新名
cat
1 功能:查看文件内容,只读。 2 语法:cat [选项] 文件 3 常用选项: 4 5 -n显示行号 6 技巧: 通常和管道命令| more一起使用,分页显示
more
1 功能:全屏、按页显示文本文件内容 2 语法:more 文件
more指令内置了若干快捷键
less
1 功能:分屏查看文本文件内容。 2 说明:less的功能比more强大,它在显示文件内容时,不是全部加载后才显示,而是根据显示需要加载内容,对于显示大型文件具有较高效率。 3 语法:less 文件
less指令内置了若干快捷键
>和>>
1 功能:>表示覆盖,>>表示追加。将前者覆盖或追加到后者,若后者不存在,则创建。 2 案例: 3 4 ls > 文件将ls显示的内容覆盖写入到文件,若该文件不存在,则创建文件 5 cat 文件1 > 文件2将文件1的内容覆盖文件2 6 echo "内容" >> 文件将内容追加到文件
echo
1 功能:输出内容到控制台。 2 语法:echo "内容"
head
1 功能:显示文件前几行内容,默认10行。 2 语法:head 文件 3 常用选项: 4 5 head -n x 文件显示前x行
tail
1 功能:显示文件后几行内容,默认10行。 2 语法:tail 文件 3 常用选项: 4 5 -n x显示后x行 6 -f实时监控文件变化
ln
1 功能:软链接也叫符号链接,类似windows快捷键 2 语法:ln -s [原文件或目录] [软链接名] 3 说明: 4 5 使用pwd查看目录时,看到的仍然是软链接所在的目录
history
1 功能:查看或执行历史命令 2 语法:history 3 案例: 4 5 history n显示最近执行的n条命令 6 !n执行第n条历史命令
时间日期类
date
1 功能:查看和设置时间日期 2 查看语法: 3 4 date 查看当前时间 5 date "+%Y年%m月%d日 %H:%M:%S"查看年月日时分秒*(其中的年月日以及冒号可以自由写,并且,也可以只显示一部分时间信息)* 6 设置语法: 7 8 date -s "年-月-日 时:分:秒"设置时间
cal
1 功能:查看日历 2 语法:cal [选项] 3 案例: 4 5 cal 年份 显示该年日历
搜索查找类
find
1 功能:从指定目录向下遍历其各个子目录,将满足条件的目录或文件显示在终端 2 语法:find 搜索范围 选项
locate
1 功能:快速定位文件路径 2 语法:locate 文件 3 说明: 4 5 第一次运行前,必须使用updatedb指令创建locate数据库
grep
1 功能:过滤查找 2 语法:grep [选项] 查找内容 源文件 3 常用选项: 4 5 i忽略大小写 6 n显示匹配行和行号
管道符号|
1 功能:将|前的命令处理结果,输出给后面的命令来处理 2 案例: 3 4 cat 文件 | grep -ni 内容
压缩解压类
gzip/gunzip
1 功能:gizp压缩(只能压缩为.gz格式),gunzip解压 2 语法: 3 4 gzip 文件压缩 5 gunzip 文件解压 6 注意:用gzip压缩不会保留源文件
zip/unzip
1 功能:zip压缩,unzip解压 2 语法: 3 4 zip [选项] 压缩后的文件 压缩前的为文件压缩文件或目录 5 unzip [选项] 要解压的文件解压
1 zip选项: 2 3 -r递归压缩,即压缩目录 4 unzip选项: 5 6 -d指定解压后的存放目录
tar
1 功能:打包指令,打包后的文件为.tar.gz格式 2 语法:tar [选项] 打包后的文件 打包前的文件 3 说明:-zcvf压缩,-zxvf解压 4 选项: 5 6 c产生.tar打包文件 7 v显示详细信息 8 f指定压缩后的文件名 9 z打包同时压缩 10 x解包.tar文件
组管理
文件权限
rwx权限
作用到文件
作用到目录
权限管理
1 功能:修改文件权限 2 语法:chmod 权限设置 文件目录名 3 说明:a所有者,g所在组,o其他组,a全部人 4 方法: 5 6 通过+-=。如a+w,a-w,a=r-x 7 直接通过数字。如:751表示rwx -wx --x
任务调度
1 任务调度:定期执行脚本或代码。(对于简单的任务,可直接在crontab中加入任务,对于复杂的任务,需要写脚本)
crontab
1 语法:crontab [选项] 2 选项: 3 4 -e编辑crontab任务 5 -l查询crontab任务 6 -r删除当前用户的所有crontab任务 7 service crond restart重启任务调度
特殊的符号
Linux网络环境配置
1 vim /etc/sysconfig/network-scripts/ifcfg-eth0,修改后重启机器生效,可使用service network restart重启网络服务。
ifcfg-eth0文件说明:
指定固定IP的方法:
进程管理
ps
1 功能:显示当前系统正在执行的进程 2 语法:ps [选项] 3 选项: 4 5 -a当前终端的所有进程信息 6 -u以用户格式显示进程信息 7 -x显示后台进程运行的参数 8 -ef显示父进程 9 说明:可以使用ps -aux | grep 指定服务来查看是否有指定服务
-aux信息选项说明
-ef信息选项说明
终止进程
kill/killall/pkill
1 功能:终止进程 2 语法: 3 4 kill [选项] 进程号 5 killall 进程名称(支持通配符) 6 选项: 7 -9强制终止
pstree
1 功能:查看进程树 2 语法:pstree [选项] 3 选项: 4 5 -p显示进程的PID 6 -u显示进程的所属用户
服务管理
service
1 功能:管理服务 2 语法:service 服务名 [start|stop|restart|reload|status] 3 说明: 4 5 Centos7.0以后使用的是systemctl指令; 6 可以使用telnet ip 端口检测某端口是否在监听 7 该指令是立马生效,也是临时生效的*(重启后恢复以前设置)* 8 --------------------- 9 版权声明:本文为CSDN博主「boomchenchen」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。 10 原文链接:https://blog.csdn.net/weixin_41710054/article/details/89081599
查看所有服务
1 方法一: 2 使用setup指令查看 3 方法二: 4 打开/etc/init.d/
运行级别
系统运行级别的配置文件/etc/inittab,切换运行级别的命令为init [123456]
监控服务
动态监控服务top
1 功能:动态监控进程 2 语法:top[选项] 3 选项: 4 5 -d 秒数每隔几秒更新,默认三秒 6 -i不显示闲置或僵死进程 7 -p通过指定进程id来监控某个进程 8 案例: 9 10 监视特定用户:输入top,然后按u,输入用户名 11 终止指定进程:输入top,然后按k,输入进程id
查看网络情况netstat
netstat -tunlp 查看所有端口
1 功能:查看系统网络情况 2 语法:netstat [选项] 3 说明:一般写``netstat -anp` 4 选项: 5 6 an按一定顺序排列输出 7 p显示哪个进程正在调用
RPM包管理
1 RPM,RedHat Package Manager(RedHat软件包管理工具),类似windows的setup.exe
YUM
1 YUM,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,一次性安装所有依赖的软件包。
补充:
防火墙:最好不要关闭,处理大并发的时候对计算机要求高
1 centos7默认已经使用firewall作为防火墙了 2 1.关闭防火墙 3 systemctl status firewalld #查看防火墙状态 4 systemctl stop firewalld #关闭防火墙 5 systemctl disable firewalld#关闭防火墙开机启动 6 systemctl is-enabled firewalld.service#检查防火墙是否启动
防止中文乱码问题:
把握三点:
1.系统字符集utf8 2.xshell字符集utf8 3.文件字符集一致zh_CN.UTF-8
1 #查看系统当前字符集 2 echo $LANG 3 locale 4 5 #检查xshell crt的字符集 6 #命令修改字符集 7 8 9 10 # vim /etc/profile.d/locale.sh 11 export LC_CTYPE=zh_CN.UTF-8 12 export LC_ALL=zh_CN.UTF-8 13 14 # vim /etc/locale.conf 15 LANG=zh_CN.UTF-8 16 17 # vim /etc/sysconfig/i18n 18 LANG=zh_CN.UTF-8 19 20 # vim /etc/environment 21 LANG=zh_CN.UTF-8 22 LC_ALL=zh_CN.UTF-8 23 24 英文版本 25 # vim /etc/profile.d/locale.sh 26 export LC_CTYPE=en_US.UTF-8 27 export LC_ALL=en_US.UTF-8 28 29 # vim /etc/locale.conf 30 LANG=en_US.UTF-8 31 32 # vim /etc/sysconfig/i18n 33 LANG=en_US.UTF-8 34 35 # vim /etc/environment 36 LANG=en_US.UTF-8 37 LC_ALL=en_US.UTF-8 38 39 40 41 2.更改后查看系统语言变量 42 locale
tree命令
1 tree命令以树状图列出目录的内容。 2 3 -a:显示所有文件和目录; 4 -A:使用ASNI绘图字符显示树状图而非以ASCII字符组合; 5 -C:在文件和目录清单加上色彩,便于区分各种类型; 6 -d:先是目录名称而非内容; 7 -D:列出文件或目录的更改时间; 8 -f:在每个文件或目录之前,显示完整的相对路径名称; 9 -F:在执行文件,目录,Socket,符号连接,管道名称名称,各自加上"*","/","@","|"号; 10 -g:列出文件或目录的所属群组名称,没有对应的名称时,则显示群组识别码; 11 -i:不以阶梯状列出文件和目录名称; 12 -l:<范本样式> 不显示符号范本样式的文件或目录名称; 13 -l:如遇到性质为符号连接的目录,直接列出该连接所指向的原始目录; 14 -n:不在文件和目录清单加上色彩; 15 -N:直接列出文件和目录名称,包括控制字符; 16 -p:列出权限标示; 17 -P:<范本样式> 只显示符合范本样式的文件和目录名称; 18 -q:用“?”号取代控制字符,列出文件和目录名称; 19 -s:列出文件和目录大小; 20 -t:用文件和目录的更改时间排序; 21 -u:列出文件或目录的拥有者名称,没有对应的名称时,则显示用户识别码; 22 -x:将范围局限在现行的文件系统中,若指定目录下的某些子目录,其存放于另一个文件系统上,则将该目录予以排除在寻找范围外。
设置主机名
1 [root@yugo /tmp 11:04:42]#hostnamectl set-hostname pyyuc 2 [root@pyyuc ~ 11:05:12]#hostname
查看dns
1 配置文件 2 cat /etc/resolv.conf 3 #dns服务器地址 4 nameserver 119.29.29.29 5 nameserver 223.5.5.5
大多数ssh连接不上虚拟机,都是因为防火墙和selinux阻挡了
1 1.修改配置文件,永久生效关闭selinux 2 cp /etc/selinux/config /etc/selinux/config.bak #修改前备份 3 2.修改方式可以vim编辑,找到 4 # This file controls the state of SELinux on the system. 5 # SELINUX= can take one of these three values: 6 # enforcing - SELinux security policy is enforced. 7 # permissive - SELinux prints warnings instead of enforcing. 8 # disabled - No SELinux policy is loaded. 9 SELINUX=disabled 10 3.用sed替换 11 sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/‘ /etc/selinux/config 12 4.检查状态 13 grep "SELINUX=disabled" /etc/selinux/config 14 #出现结果即表示修改成功
临时关闭selinux(命令行修改,重启失效):
1 getenforce #获取selinux状态 2 #修改selinux状态 3 setenforce 4 usage: setenforce [ Enforcing | Permissive | 1 | 0 ] 5 数字0 表示permissive,给出警告,不会阻止,等同disabled 6 数字1表示enforcing,表示开启
/etc下配置文件和子目录
1 #网卡配置文件 2 /etc/sysconfig/network-script/ifcfg-eth0 3 #修改机器名以及网卡,网管等配置 4 /etc/sysconfig/network 5 #linux的dns客户端配置文件,实现域名和ip的互相解析 6 /etc/resolv.conf 7 #本地dns解析文件,设定ip和域名的对应解析,开发测试最常用的临时域名解析 8 /etc/hosts/ 9 #系统全局环境变量永久生效的配置文件,如PATH等 10 /etc/profile 11 #用户的环境变量 12 ~/.bash_profile 13 ~/.bashrc 14 #存放可执行程序的目录,大多是系统管理命令 15 /usr/sbin 16 #存放用户自编译安装软件的目录 > 等同于C:\\Program files (windows) 17 /usr/local 18 #关于处理器的信息,还可以top指令查看 19 /proc/cpuinfo 20 #查看内存信息,还可以free -m 21 /proc/meminfo
配置yum源
1 1.好习惯,备份yum源 2 mkdir repo_bak 3 mv *.repo repo_bak/ 4 2.下载阿里云repo文件 5 wget http://mirrors.aliyun.com/repo/Centos-7.repo 6 3.清空yum缓存并且生成新的yum缓存 7 yum clean all 8 yum makecache 9 4.安装软件扩展源 10 yum install -y epel-release
操作
1 yum repolist all 列出所有仓库 2 yum list all 列出仓库所有软件包 3 yum info 软件包名 查看软件包信息 4 yum install 软件包名 安装软件包 5 yum reinstall 软件包名 重新安装软件包 6 yum update 软件包名 升级软件包 7 yum remove 软件包名 移除软件包 8 yum clean all 清楚所有仓库缓存 9 yum check-update 检查可以更新的软件包 10 yum grouplist 查看系统中已安装的软件包 11 yum groupinstall 软件包组 安装软件包组
系统服务管理命令
设置开机启动相关
以上是关于Linux实操优化的主要内容,如果未能解决你的问题,请参考以下文章