-
本帖最后由 os_center_online 于 2017-12-27 11:14 编辑-------------------------------------------------------------------------------------------------------------------------------------- 问题现象 Linux启动后切面提示 Give root password for maintenance (or type Contron-D to continue): 如下图 7785 ------------------------------------------------------------------------------------------------------------------------------------ 问题原因 检查进入维护模式的上面的原因,发现这里提示 fsck.ext4: no such file or directory while trying to open /dev/xvdb 错误,此类错误主要有两种情况: 1. 挂载的磁盘分区未写入到 /etc/fstab文件 2. 实际挂载的磁盘分区与写入到/etc/fstab里面信息不对应 (比如,磁盘分区为 /dev/xvdb1,写入到/etc/fstab文件的却是 /dev/vdb1) 解决方案 1. 根据提示输入root密码进入维护模式,使用fdisk -l查看磁盘的实际分区,该案例中实际的磁盘分区为/dev/vdb 7787 2. 查看/etc/fstab文件,检查配置的磁盘挂载信息,检查此案例系统的配置,发现里面的配置有两处错误 a. 分区与实际分区不一致,实际磁盘分区为 /dev/vdb ,文件中为 /dev/xvdb b. 开机磁盘自检参数错误(1 3) (第5列数字0代表不备份,1代表备份,第6列 0代表开机不自检,1或者2代表开机自检,根分区为1) 7786 3. 根据实际分区将磁盘挂载信息写入到/etc/fstab中,保存:wq 退出, 7788 如果编辑/etc/fstab文件时无法写入文件,使用命令 mount -o rw,remount / 重新挂载下根分区 如果是忘记写入/etc/fstab可使用 history | grep mount 及 history | grep mkfs 查看挂载记录,或者直接咨询租户
-
本帖最后由 达康书记 于 2017-12-20 11:04 编辑WinSCP 是一个Windows 环境下使用的SSH 的开源图形化 SFTP 客户端。简单来说就是WinSCP可以直接通过SSH链接你的华为云linux服务器,然后进行文件的复制操作,并且可以直接编辑文件。这样我们就不需要安装FTP之类的软件了。如果我们需要把文件上传到华为云linux服务器上一般是需要安装FTP软件的,但是用WinSCP就可以通过SSH上传文件了。 下面我们演示一下怎么样用WinSCP上传文件到华为云linux服务器上。 前提: [*]一台安装有WinSCP的windows电脑 https://winscp.net/eng/download.php [*]一台华为云linux服务器 [*]保证安全组规则放行22端口 方法/步骤: 1、启动WinSCP 7092 2、打开WinSCP;输入linux服务器信息 7093 3、点击登录 7094 4、登录成功 7095 5、找到并选中你要上传或下载的文件 7096 6、右键选择需要上传或下载的文件即可搞定
-
本帖最后由 写代码的贺大师 于 2017-11-29 14:29 编辑命令功能说明线上查询及帮助命令 (2 个)man查看命令帮助,命令的词典,更复杂的还有 info,但不常用。help查看 Linux 内置命令的帮助,比如 cd 命令。—help 也可以使用文件和目录操作命令 (18 个)ls全拼 list,功能是列出目录的内容及其内容属性信息。常用的是 llcd全拼 change directory,功能是从当前工作目录切换到指定的工作目录。cp全拼 copy,其功能为复制文件或目录。find查找的意思,用于查找目录及目录下的文件。mkdir全拼 make directories,其功能是创建目录。mv全拼 move,其功能是移动或重命名文件。pwd全拼 print working directory,其功能是显示当前工作目录的绝对路径。rename用于重命名文件。rm全拼 remove,其功能是删除一个或多个文件或目录。rmdir全拼 remove empty directories,功能是删除空目录。touch创建新的空文件,改变已有文件的时间戳属性。tree功能是以树形结构显示目录下的内容。basename显示文件名或目录名。dirname显示文件或目录路径。chattr改变文件的扩展属性。lsattr查看文件扩展属性。file显示文件的类型。md5sum计算和校验文件的 MD5 值。查看文件及内容处理命令(21 个)cat全拼 concatenate,功能是用于连接多个文件并且打印到屏幕输出或重定向到指定文件中。tactac 是 cat 的反向拼写,因此命令的功能为反向显示文件内容。more分页显示文件内容。less分页显示文件内容,more 命令的相反用法。head显示文件内容的头部。tail显示文件内容的尾部。常用的是tail -f动态显示文件追加的内容cut将文件的每一行按指定分隔符分割并输出。split分割文件为不同的小片段。paste按行合并文件内容。sort对文件的文本内容排序。uniq去除重复行。oldboywc统计文件的行数、单词数或字节数。iconv转换文件的编码格式。dos2unix将 DOS 格式文件转换成 UNIX 格式。diff全拼 difference,比较文件的差异,常用于文本文件。vimdiff命令行可视化文件比较工具,常用于文本文件。rev反向输出文件内容。grep/egrep过滤字符串,三剑客老三。join按两个文件的相同字段合并。tr替换或删除字符。vi/vim命令行文本编辑器。文件压缩及解压缩命令(4 个)tar打包压缩。oldboyunzip解压文件。gzipgzip 压缩工具。zip压缩工具。信息显示命令(11 个)uname显示操作系统相关信息的命令。hostname显示或者设置当前系统的主机名。dmesg显示开机信息,用于诊断系统故障。uptime显示系统运行时间及负载。stat显示文件或文件系统的状态。du计算磁盘空间使用情况。df报告文件系统磁盘空间的使用情况。top实时显示系统资源使用情况。free查看系统内存。date显示与设置系统时间。cal查看日历等时间信息。搜索文件命令(4 个)which查找二进制命令,按环境变量 PATH 路径查找。find从磁盘遍历查找文件或目录。whereis查找二进制命令,按环境变量 PATH 路径查找。locate从数据库 (/var/lib/mlocate/mlocate.db) 查找命令,使用 updatedb 更新库。用户管理命令(10 个)useradd添加用户。usermod修改系统已经存在的用户属性。userdel删除用户。groupadd添加用户组。passwd修改用户密码。chage修改用户密码有效期限。id查看用户的 uid,gid 及归属的用户组。su切换用户身份。visudo编辑 / etc/sudoers 文件的专属命令。sudo以另外一个用户身份(默认 root 用户)执行事先在 sudoers 文件允许的命令。基础网络操作命令(11 个)telnet使用 TELNET 协议远程登录。ssh使用 SSH 加密协议远程登录。scp全拼 secure copy,用于不同主机之间复制文件。wget命令行下载文件。ping测试主机之间网络的连通性。route显示和设置 linux 系统的路由表。ifconfig查看、配置、启用或禁用网络接口的命令。ifup启动网卡。ifdown关闭网卡。netstat查看网络状态。ss查看网络状态。深入网络操作命令(9 个)nmap网络扫描命令。lsof全名 list open files,也就是列举系统中已经被打开的文件。mail发送和接收邮件。mutt邮件管理命令。nslookup交互式查询互联网 DNS 服务器的命令。dig查找 DNS 解析过程。host查询 DNS 的命令。traceroute追踪数据传输路由状况。tcpdump命令行的抓包工具。有关磁盘与文件系统的命令(16 个)mount挂载文件系统。umount卸载文件系统。fsck检查并修复 Linux 文件系统。dd转换或复制文件。dumpe2fs导出 ext2/ext3/ext4 文件系统信息。dumpext2/3/4 文件系统备份工具。fdisk磁盘分区命令,适用于 2TB 以下磁盘分区。parted磁盘分区命令,没有磁盘大小限制,常用于 2TB 以下磁盘分区。mkfs格式化创建 Linux 文件系统。partprobe更新内核的硬盘分区表信息。e2fsck检查 ext2/ext3/ext4 类型文件系统。mkswap创建 Linux 交换分区。swapon启用交换分区。swapoff关闭交换分区。sync将内存缓冲区内的数据写入磁盘。resize2fs调整 ext2/ext3/ext4 文件系统大小。系统权限及用户授权相关命令(4 个)chmod改变文件或目录权限。chown改变文件或目录的属主和属组。chgrp更改文件用户组。umask显示或设置权限掩码。查看系统用户登陆信息的命令(7 个)whoami显示当前有效的用户名称,相当于执行 id -un 命令。who显示目前登录系统的用户信息。w显示已经登陆系统的用户列表,并显示用户正在执行的指令。last显示登入系统的用户。lastlog显示系统中所有用户最近一次登录信息。users显示当前登录系统的所有用户的用户列表。finger查找并显示用户信息。内置命令及其它(19 个)echo打印变量,或直接输出指定的字符串printf将结果格式化输出到标准输出。rpm管理 rpm 包的命令。yum自动化简单化地管理 rpm 包的命令。watch周期性的执行给定的命令,并将命令的输出以全屏方式显示。alias设置系统别名。unalias取消系统别名。date查看或设置系统时间。clear清除屏幕,简称清屏。history查看命令执行的历史纪录。eject弹出光驱。time计算命令执行时间。nc功能强大的网络工具。xargs将标准输入转换成命令行参数。exec调用并执行指令的命令。export设置或者显示环境变量。unset删除变量或函数。type用于判断另外一个命令是否是内置命令。bc命令行科学计算器系统管理与性能监视命令 (9 个)chkconfig管理 Linux 系统开机启动项。vmstat虚拟内存统计。mpstat显示各个可用 CPU 的状态统计。iostat统计系统 IO。sar全面地获取系统的 CPU、运行队列、磁盘 I/O、分页(交换区)、内存、 CPU 中断和网络等性能数据。ipcs用于报告 Linux 中进程间通信设施的状态,显示的信息包括消息列表、共享内存和信号量的信息。ipcrm用来删除一个或更多的消息队列、信号量集或者共享内存标识。strace用于诊断、调试 Linux 用户空间跟踪器。我们用它来监控用户空间进程和内核的交互,比如系统调用、信号传递、进程状态变更等。ltrace命令会跟踪进程的库函数调用, 它会显现出哪个库函数被调用。关机 / 重启 / 注销和查看系统信息的命令(6 个)shutdown关机。halt关机。poweroff关闭电源。logout退出当前登录的 Shell。exit退出当前登录的 Shell。Ctrl+d退出当前登录的 Shell 的快捷键。进程管理相关命令(15 个)bg将一个在后台暂停的命令,变成继续执行 (在后台执行)。fg将后台中的命令调至前台继续运行。jobs查看当前有多少在后台运行的命令。kill终止进程。killall通过进程名终止进程。pkill通过进程名终止进程。crontab定时任务命令。ps显示进程的快照。pstree树形显示进程。nice/renice调整程序运行的优先级。nohup忽略挂起信号运行指定的命令。 也可以使用screenpgrep查找匹配条件的进程。runlevel查看系统当前运行级别。init切换运行级别。service启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态。
-
问题背景在产品研发过程中,由于多个用户操作服务器,产品在使用过程中,出现了异常;这个异常可能是产品自身的异常;也可能是用户在后台操作触发的异常; 为了更好的定位和排查问题;需要对linux服务器做历史操作的行为进行审计;本文将简要介绍下linux用户历史操作行为的审计记录配置方法。配置过程简介第一步:配置方法:编辑/etc/profile 文件;追加如下配置12345678910111213141516171819202122232425262728293031323334353637383940414243[color=rgb(248, 248, 242) !important][color=rgb(184, 92, 0) !important]#add by zhouyou#PS1=[color=rgb(230, 219, 93) !important]"`whoami`@`hostname`:"[color=rgb(230, 219, 93) !important]´[$PWD]´[color=rgb(249, 38, 80) !important]historyUSER_IP=`who[color=rgb(0, 111, 224) !important] -u[color=rgb(0, 111, 224) !important] am[color=rgb(0, 111, 224) !important] i[color=rgb(0, 111, 224) !important] [color=rgb(174, 129, 255) !important]2>/dev/[color=rgb(166, 226, 45) !important]null|[color=rgb(0, 111, 224) !important] awk[color=rgb(0, 111, 224) !important] [color=rgb(230, 219, 93) !important]´{print $NF}´|sed[color=rgb(0, 111, 224) !important] -e[color=rgb(0, 111, 224) !important] [color=rgb(230, 219, 93) !important]´s/[()]//g´`[color=rgb(102, 217, 239) !important]if[color=rgb(0, 111, 224) !important] [[color=rgb(0, 111, 224) !important] [color=rgb(230, 219, 93) !important]"$USER_IP"[color=rgb(0, 111, 224) !important] =[color=rgb(0, 111, 224) !important] [color=rgb(230, 219, 93) !important]""[color=rgb(0, 111, 224) !important] [color=rgb(102, 217, 239) !important]thenUSER_IP=`[color=rgb(249, 38, 80) !important]hostname`[color=rgb(249, 38, 80) !important]fi[color=rgb(102, 217, 239) !important]if[color=rgb(0, 111, 224) !important] [[color=rgb(0, 111, 224) !important] ![color=rgb(0, 111, 224) !important] -[color=rgb(249, 38, 80) !important]d[color=rgb(0, 111, 224) !important] /[color=rgb(249, 38, 80) !important]tmp/[color=rgb(249, 38, 80) !important]dbasky[color=rgb(0, 111, 224) !important] [color=rgb(102, 217, 239) !important]then[color=rgb(249, 38, 80) !important]mkdir[color=rgb(0, 111, 224) !important] /[color=rgb(249, 38, 80) !important]tmp/[color=rgb(249, 38, 80) !important]dbasky[color=rgb(249, 38, 80) !important]chmod[color=rgb(0, 111, 224) !important] [color=rgb(174, 129, 255) !important]777[color=rgb(0, 111, 224) !important] /[color=rgb(249, 38, 80) !important]tmp/[color=rgb(249, 38, 80) !important]dbasky[color=rgb(249, 38, 80) !important]fi[color=rgb(102, 217, 239) !important]if[color=rgb(0, 111, 224) !important] [[color=rgb(0, 111, 224) !important] ![color=rgb(0, 111, 224) !important] -[color=rgb(249, 38, 80) !important]d[color=rgb(0, 111, 224) !important] /[color=rgb(249, 38, 80) !important]tmp/[color=rgb(249, 38, 80) !important]dbasky/${LOGNAME}[color=rgb(0, 111, 224) !important] [color=rgb(102, 217, 239) !important]then[color=rgb(249, 38, 80) !important]mkdir[color=rgb(0, 111, 224) !important] /[color=rgb(249, 38, 80) !important]tmp/[color=rgb(249, 38, 80) !important]dbasky/${LOGNAME}[color=rgb(249, 38, 80) !important]chmod[color=rgb(0, 111, 224) !important] [color=rgb(174, 129, 255) !important]300[color=rgb(0, 111, 224) !important] /[color=rgb(249, 38, 80) !important]tmp/[color=rgb(249, 38, 80) !important]dbasky/${LOGNAME}[color=rgb(249, 38, 80) !important]fi[color=rgb(249, 38, 80) !important]export HISTSIZE=[color=rgb(174, 129, 255) !important]4096DT=`date[color=rgb(0, 111, 224) !important] [color=rgb(230, 219, 93) !important]"+%Y-%m-%d_%H:%M:%S"`[color=rgb(249, 38, 80) !important]export HISTFILE=[color=rgb(230, 219, 93) !important]"/tmp/dbasky/${LOGNAME}/${USER_IP} dbasky.$DT"[color=rgb(249, 38, 80) !important]chmod[color=rgb(0, 111, 224) !important] [color=rgb(174, 129, 255) !important]600[color=rgb(0, 111, 224) !important] /[color=rgb(249, 38, 80) !important]tmp/[color=rgb(249, 38, 80) !important]dbasky/${LOGNAME}/*[color=rgb(249, 38, 80) !important]dbasky*[color=rgb(0, 111, 224) !important] [color=rgb(174, 129, 255) !important]2>/dev/[color=rgb(166, 226, 45) !important]null执行如下命令,是修改的配置生效1[color=rgb(248, 248, 242) !important]source[color=rgb(0, 111, 224) !important] /etc/profile退出用户,重新登录说明:上面脚本在系统的/tmp新建个dbasky目录,记录所有登陆过系统的用户和IP地址(文件名),每当用户登录/退出会创建相应的文件,该文件保存这段用户登录时期内操作历史。此时还无法准确记录每一个命令行操作的具体操作时间。效果如下图所示:用户操作记录:审计文件记录了用户登录ip,登录时间,使用的linux用户名,操作的命令行记录:第二步:配置方法:编辑/etc/bashrc文件,加入如下四行:123456789[color=rgb(248, 248, 242) !important][color=rgb(184, 92, 0) !important]#add by zhouyou#HISTFILESIZE=[color=rgb(174, 129, 255) !important]2000HISTSIZE=[color=rgb(174, 129, 255) !important]2000HISTTIMEFORMAT=[color=rgb(230, 219, 93) !important]"%Y%m%d-%H%M%S:"[color=rgb(249, 38, 80) !important]export HISTTIMEFORMAT保存后退出,关闭当前shell,并重新登录这个时候,在~/.bash_History文件中,就有记录命令执行的时间了 。说明:本方法必须在服务器刚刚新安装好时候,就设置这个参数。如果是已经运行了很久的服务器才添加这个参数,则以前的那些命令历史记录是不显示时间的。基于第一步和第二步的配置,就可以在/tmp/dbasky/ 路径下,各个linux用户下,生成各个ip登录linux执行操作命令的审计记录;每一个文件记录了登录的ip,执行的操作及操作的时间(linux时间戳)效果如下图:root用户下,各个登录的ip行为审计文件:具体登录ip审计文件的命令行操作内容和执行时间:当前history命令行输出样式:声 明本安全公告仅用来描述可能存在的安全问题,绿盟科技不为此安全公告提供任何保证或承诺。由于传播、利用此安全公告所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,绿盟科技以及安全公告作者不为此承担任何责任。绿盟科技拥有对此安全公告的修改和解释权。如欲转载或传播此安全公告,必须保证此安全公告的完整性,包括版权声明等全部内容。未经绿盟科技允许,不得任意修改或者增减此安全公告内容,不得以任何方式将其用于商业目的。
-
华为云Linux服务器CentOS 7 的内核一般都是3.10的,而CentOS 6.X 的内核一般都是2.6,在2.6的内核下,Docker运行会比较卡,所以一般会选择升级到3.10版本。 升级内核的方式,网上有很多方法是下载内核然后编译,这样需要安装很多必备的环境和工具,比较麻烦,但是也有助于我们了解内核的编译。 编译内核方式升级: https://segmentfault.com/a/1190000000733628#articleHeader13 本文介绍采用elrepo如何升级到内核。 1. 查看当前内核版本 [code][root@localhost ~]# more /etc/issue CentOS release 6.5 (Final) Kernel \r on an \m [root@localhost ~]# uname -a Linux localhost.localdomain 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux[/code] 2. 导入public key [code][root@localhost ~]# rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org[/code] 3. 安装ELRepo到CentOS 可以去http://elrepo.org/tiki/tiki-index.php选择要安装的ELRepo [code]To install ELRepo for RHEL-7, SL-7 or CentOS-7: rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm (external link) To install ELRepo for RHEL-6, SL-6 or CentOS-6: rpm -Uvh http://www.elrepo.org/elrepo-release-6-8.el6.elrepo.noarch.rpm (external link)[/code] 4. 安装 kernel-lt(lt=long-term) [code][root@localhost ~]# yum --enablerepo=elrepo-kernel install kernel-lt -y[/code] 或者 安装kernel-ml(ml=mainline) [code][root@localhost ~]# yum --enablerepo=elrepo-kernel install kernel-ml -y[/code] 5. 编辑grub.conf文件,修改Grub引导顺序 [code][root@localhost ~]# vim /etc/grub.conf[/code] 因为一般新安装的内核在第一个位置,所以设置default=0,表示启动新内核 6. 重启服务器 查看此时内核版本: [code][root@localhost ~]# uname -r 3.10.105-1.el6.elrepo.x86_64[/code] 大功告成!
-
积累经验篇 做运维也快4年多了,就像游戏打怪升级,升级后知识体系和运维体系也相对变化挺大,学习了很多新的知识点。 运维工程师 是从一个呆逼进化为苦逼再成长为牛逼的过程,前提在于你要能忍能干能拼,还要具有敏锐的嗅觉感知前方潮流变化。如:今年大数据,人工智能比较火。。。(相对表示就是 python 比较火) 前面也讲了运维基础篇,发现对很多人收益挺大,接下来也写下关于这4年多的运维实践经验,从事了2年多游戏运维,1年多安全运维,1年大数据运维,相关行业信息不能算非常精通吗,但是熟悉和熟练还是相对可以的。 初级篇 详见:详解Linux运维工程师入门级必备技能拓扑详见: 中级篇从我后面面试经历和面试别人的经历。有些人认为,其实运维就是部署某个软件,设置些基础功能,就算会运维了。举个例子:安装LAMP,LNMP,就感觉部署方法我都掌握了。其实网上大多数都有一键安装脚本啥的根本没有啥技术含量,在面试官眼里,这些都不是你的亮点。基本到了公司一般环境架构都是部署好的,很少需要你去变动环境架构。就算你安装好 LNMP 架构你熟悉里面的原理吗,熟悉 Nginx 优化吗,熟悉 MySQL 优化吗? 再举个例子:我面试遇到的问题,面试官问你既然熟悉 LNMP 架构,那么 Nginx 反向代理的作用。 你应该不是说出懂这个软件和配置,你尽可能的说怎么优化,怎么深入提高网站性能。 1、使用反向代理可以理解为7层应用层的负载均衡,使用负载均衡之后可以非常便捷的横向扩展服务器集群,实现集群整体并发能力、抗压能力的提高。 2、通常反向代理服务器会带有本地 Cache 功能,通过静态资源的 Cache,有效的减少后端服务器所承载的压力,从而提高性能。 下面说说运维在工作中需要掌握的核心技术注意,这是在工作中掌握的,在学习中很难掌握。 1、第一条最主要的排错 ● 分析部分程序不能运行或没有按预想结果运行的原因,对程序运行跟踪,查看系统调用的过程。 ● 较深入的系统瓶颈点分析。 查看剩余内存: 复制内容到剪贴板代码:free -m#-/+ buffers/cache: 6458 1649#6458M为真实使用内存 1649M为真实剩余内存(剩余内存+缓存+缓冲器)#linux会利用所有的剩余内存作为缓存,所以要保证linux运行速度,就需要保证内存的缓存大小 系统信息: 复制内容到剪贴板代码:uname -a # 查看Linux内核版本信息cat /proc/version # 查看内核版本cat /etc/issue # 查看系统版本lsb_release -a # 查看系统版本 需安装 centos-releaselocale -a # 列出所有语系locale # 当前环境变量中所有编码hwclock # 查看时间who # 当前在线用户w # 当前在线用户whoami # 查看当前用户名logname # 查看初始登陆用户名uptime # 查看服务器启动时间sar -n DEV 1 10 # 查看网卡网速流量dmesg # 显示开机信息lsmod # 查看内核模块 硬件信息: 复制内容到剪贴板代码:more /proc/cpuinfo # 查看cpu信息lscpu # 查看cpu信息cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c # 查看cpu型号和逻辑核心数getconf LONG_BIT # cpu运行的位数cat /proc/cpuinfo | grep 'physical id' |sort| uniq -c # 物理cpu个数cat /proc/cpuinfo | grep flags | grep ' lm ' | wc -l # 结果大于0支持64位cat /proc/cpuinfo|grep flags # 查看cpu是否支持虚拟化 pae支持半虚拟化 IntelVT 支持全虚拟化more /proc/meminfo # 查看内存信息dmidecode # 查看全面硬件信息dmidecode | grep "Product Name" # 查看服务器型号dmidecode | grep -P -A5 "Memory\s+Device" | grep Size | grep -v Range # 查看内存插槽cat /proc/mdstat # 查看软raid信息cat /proc/scsi/scsi # 查看Dell硬raid信息(IBM、HP需要官方检测工具)lspci # 查看硬件信息lspci|grep RAID # 查看是否支持raidlspci -vvv |grep Ethernet # 查看网卡型号lspci -vvv |grep Kernel|grep driver # 查看驱动模块modinfo tg2 # 查看驱动版本(驱动模块)ethtool -i em1 # 查看网卡驱动版本ethtool em1 ●使用分析系统分析web日志。(如逆火软件,)● 分析系统性能瓶颈点(IO/memory/cpu,常用工具,top命令中shift组合键的特殊用Sar/vmstat/iostat/ipcs) 日志管理常用命令: 复制内容到剪贴板代码:history # 历时命令默认1000条HISTTIMEFORMAT="%Y-%m-%d %H:%M:%S " # 让history命令显示具体时间history -c # 清除记录命令cat $HOME/.bash_history # 历史命令记录文件lastb -a # 列出登录系统失败的用户相关信息 清空二进制日志记录文件 echo > /var/log/btmp last # 查看登陆过的用户信息 清空二进制日志记录文件 echo > /var/log/wtmp 默认打开乱码who /var/log/wtmp # 查看登陆过的用户信息lastlog # 用户最后登录的时间tail -f /var/log/messages # 系统日志tail -f /var/log/secure # ssh日志 2、优化 优化可以说是运维最吃香的技能,基本会优化的运维普遍工资很高,而且优化是要承担风险的,并不是网上搜个文章改一下配置文件或者参数就叫优化了,这样很容易造成宕机。 优化是根据实际的现场环境硬件各个参数进行部分优化,提高软件性能和网站性能。这个我只能讲半知半解,当时优化mysql和tomcat参数也是根据网上文章和官网文档查找参数在虚拟机上测试然后查看性能。 成本优化,性能优化。这里我给出 tomcat 优化 jvm 参数(做过相应测试才放到现场环境的):(记住无监控不调优) -标准参数,所有jvm都应该支持 -X 非标,每个jvm实现都不同 -XX 不稳定参数,下一版本可能会取消 serial collector 单线程 序列化 parallel collector 多线程 启动 jvisualvm.exe 监控 dump 内存溢出 -Xms:初始堆大小 -Xmx:最大堆大小 -Xss:线程栈大小 -XX:NewSize=n:设置年轻代大小 -XX:NewRatio=n:设置年轻代和年老代的比值,如3, 标示年轻代:年老代比值1:3,年轻代占整个年轻代年老代和的1/4 -XX:SurvivorRatio=n:年轻代中的eden区与2个Survivor区的比值。 -XX:MaxPermSize=n:设置持久代大小 收集器设置 -XX:+UseSerialGC:设置串行收集器 -XX:+UseParallelGC:设置并行收集器 -XX:+UseConcMarkSweepGC:设置并发收集器 回收统计信息 -XX:+PrintGC -XX:+PrintGCDetails -Xloggc:filename tocmat 优化 确认有几个 jvm 虚拟机 set JAVA_OPTS= -Xms4g -Xmx4g -Xss512k -XX:+AggressiveOpts 进攻型的优化选项,所有优化项都加上 -XX:+UseBiasedLocking 优化锁,基本都要选上,偏执锁 -XX:permSize=64m 原始区大小,最大300m 类多就设置大一点 -XX:MaxPermSize=300m -XX:+DisableExplicitGC //System.gc() 不显示调用gc -XX:+UseConcMarkSweepGC 使用cms缩短相应时间,并发收集,低停顿 -XX:+UseParNewGC 并行收集新生代的垃圾 -XX:+CMSParallelRemarkEnabled 在使用UseParNewGC的情况下,尽量减少mark的时间 -XX:+UseCMSCompactAtFullCollection 使用并发收集器时,开启对年老代的压缩,使碎片减少 -XX:LargePageSizelnBytes=128m 内存分页大小对性能的提升 -XX:+UseFastAccessorMethods get/set方法转成本地代码 -Djava awt headless=true 修复linux下tomcat处理图标时可能产生的bug 内存调优: 复制内容到剪贴板代码:"C:\Program Files\Java\jdk1.8.0_31\bin\java" -XX:+DoEscapeAnalysis -XX:+EliminateAllocations -XX:+UseTLAB -XX:+PrintGCDetails -Didea.launcher.port=7540 "-Didea.launcher.bin.path=E:\java\IntelliJ IDEA 2016.3\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.8.0_31\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_31\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_31\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_31\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_31\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_31\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_31\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_31\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_31\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_31\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_31\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_31\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_31\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_31\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_31\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_31\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_31\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_31\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_31\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_31\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_31\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_31\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_31\jre\lib\rt.jar;E:\java\new\out\production\new;E:\java\IntelliJ IDEA 2016.3\lib\idea_rt.jar" com.intellij.rt.execution.application.AppMain aa.T02HeapPSYoungGen total 38400K, used 3994K [0x00000000d5d80000, 0x00000000d8800000, 0x0000000100000000) eden space 33280K, 12% used [0x00000000d5d80000,0x00000000d61668b8,0x00000000d7e00000) from space 5120K, 0% used [0x00000000d8300000,0x00000000d8300000,0x00000000d8800000) to space 5120K, 0% used [0x00000000d7e00000,0x00000000d7e00000,0x00000000d8300000)ParOldGen total 87552K, used 0K [0x0000000081800000, 0x0000000086d80000, 0x00000000d5d80000) object space 87552K, 0% used [0x0000000081800000,0x0000000081800000,0x0000000086d80000)Metaspace used 3072K, capacity 4494K, committed 4864K, reserved 1056768K class space used 329K, capacity 386K, committed 512K, reserved 1048576KHeapPSYoungGen total 38400K, used 1147K [0x00000000d5d80000, 0x00000000d8800000, 0x0000000100000000) eden space 33280K, 3% used [0x00000000d5d80000,0x00000000d5e9ecb8,0x00000000d7e00000) from space 5120K, 0% used [0x00000000d8300000,0x00000000d8300000,0x00000000d8800000) to space 5120K, 0% used [0x00000000d7e00000,0x00000000d7e00000,0x00000000d8300000)ParOldGen total 87552K, used 0K [0x0000000081800000, 0x0000000086d80000, 0x00000000d5d80000) object space 87552K, 0% used [0x0000000081800000,0x0000000081800000,0x0000000086d80000)Metaspace used 3072K, capacity 4494K, committed 4864K, reserved 1056768K class space used 330K, capacity 386K, committed 512K, reserved 1048576K 线程本地缓存使用eden的,开启就会使用更多 tomcat 前任何参数没参加大概每秒605 调优后大概每秒435 接近3倍的结果 3、开发技能 优选 shell 和 python,现在 shell 无法满足你的需求或者效率很低,那么选择自动化 python 是最好的选择。现在普遍招聘需求要求,会写 shell 或者 python,perl 脚本,个人选择还是选 python。 python 这门语言上手比较快,容易理解。 python 在服务器管理工具上非常丰富,配置管理(saltstack) 批量执行( fabric, saltstack) 监控(Zenoss, nagios 插件) 虚拟化管理( python-libvirt) 进程管理 (supervisor) 云计算(openstack) ...... 还有大部分系统 C 库都有 python 绑定。 对于流程确定的事情,最终一定是纳入系统管理的体系,写成程序,成为系统的一部分。而不是无法复用游离与整体的各种脚本。 随着云计算时代的来临,中小型公司,不需要运维了。大型公司,没有工程开发能力的运维,是没有竞争力的。 最重要的学好 python 可以涨工资,可以涨工资,可以涨工资。(重要的事情说三遍。) 目前本人也是在学 python,正在把以前 shell 脚本的实例转换成 python 脚本。 python笔记:python实例手册(一直在看) 下载链接:http://down.51cto.com/data/2329173 4、意识篇 1) 安全意识: 运维人员的权限很大,所以一定要保证帐号/私钥的安全。 ● 最好使用加密工具存储。比如truecrypt,lpassword● 基于本地存储。切勿用网盘,也不建议用lastpass等● ssh私钥添加密码 2) 磨刀意识: 关于任何操作配置,最好先搞明白操作或配置的原理,然后再去操作。应一句话叫做“磨刀不误砍柴功”,而且对于类似的操作可以举一反三。 3) 计划意识: 复杂的变更操作比如多台主机以及牵涉到san存储,最好先作 操作计划,写计划文档,详细致每条命令,然后请高手帮忙审核。 这样能最大程度使整个操作过程安全。如果是重要的客户业务系统,操作最好有回退方案,而一旦变更失败,客户可以在短时间内将业务回退。4) 记录分享意识: 遇到自己认为较特殊的案例时,记得要写 案例过程及分析的文档。也方便自己以后翻看,或者和其他兄弟分享,作知识的传播以便于大家以后都能少走弯路。 5) 监控意识: 运维来说,监控是非常重要的,监控是发现系统各种异常的眼睛,所以运维应该和监控紧密配合。 6) 业务意识: 尽量了解维护的各主机上业务类型,以及各主机业务之间的关联性。因为任何维护工作都是为主机能提供业务服务的,当某业务中断,能最快的知道与此业务相关的主机群,从而缩小故障排查范围,最快定位故障。 附上运维思路拓扑图: 可以看看:安全运维理念(半神半仙亦民工)意识是很重要,并不是你技术很牛,学的技术很多很熟,就不代表你不需要运维意识,其实领导很看重运维意识的,例如有没有做好备份,权限分配问题,平台测试情况,故障响应时间等,这些都是意识,而不是你学了很多技术自认大牛了,平台发现故障你又没什么大不子,以为很简单的问题喜欢处理就处理,不需要向其它部门反馈等,领导不是看你的技术如何,而是看你的运维意识如何,你没运维意识,技术再牛也没用,只会让其它部门的人跟你不协调。 要知道做IT这行是苦B的,需要无尽的学习,不学习只会被淘汰,不想被年轻的淘汰,就只能不断增值自己,不然不是你工资无法提升,而是你无法再从事这行。 这个世界,在悄悄惩罚不改变的人...
-
本帖最后由 TOM666 于 2017-11-6 16:44 编辑从第一次看到Linux系统,从大神那里了解到了Linux灵活、干净、开源等诸多的好处后,我打算入坑。但是,作为一个游戏迷,用笔记本打游戏绝对是不能省的。装双系统或虚拟机又太麻烦,也容易影响性能,最好的解决方案是有两台不同系统电脑。然而,摸摸自己的荷包后,我决定探索一条Linux打游戏的道路! 入了Linux这个坑后,我发现,有这种烦恼的人还有很多。对于这些游戏迷而言,Linux最大的缺点不是上手难,而是大量游戏缺失。这么大的忧伤该怎么弥补?今天笔者就跟大家介绍几种Linux上打游戏的好方法,让被捧在神坛上的Linux系统沾一沾人间烟火! 1. Steam 玩 Linux 原生游戏 够刺激 易用指数:★★★★ 丰富指数:★★★☆ 推荐指数:★★★★★ 特点:原生游戏玩不停,没有兼容层,性能完全不是问题。 Steam平台 玩游戏的应该都知道这个美国电子游戏上威尔乌(Valve Corporation)推出的数字发行平台,它也被称为“电脑游戏界最大的数字发行平台”。在Steam上面,用户可以看到各种类型的游戏,可以进行安装并实现游戏自动更新(当然,也包括游戏内语音、聊天、社区等功能应用)。42824283Linux上使用Steam虽然这个平台最初旨在windows系统上提供支持,但后来也开始研发Linux和Mac OS系统版本,在2013年3月,Valve终于正式宣布了Linux版本Steam的发布。如今,在Steam上已经能够找到很多基于Linux系统原生的游戏版本。Steam就是一个大型游戏分发平台,你能找到几乎所有热门游戏的Linux原生版(比如Dota2),堪称业界良心。而且部分游戏在同一硬件标准下,在Linux系统中的性能表现甚至优于windows,激动不~ 2. Wine:让 Linux 开起来像 Windows 易用指数:★★★ 丰富指数:★★★★ 推荐指数:★★★☆ 特点:Linux系统中的模拟器软件,更新速度较快。 Wine并非是“葡萄酒”,而是一个兼容层,最早是“Windows Emulator”,即Windows模拟器的缩写。它通过兼容曾来将原本的windows系统调用转换为POSIX的系统调用。简言之,就是让应用软件误以为你的Linux系统其实是个windows系统,进而平滑运行。 在反恐精英最流行的年代,利用Wine来在Linux上玩这款游戏曾经是Linux爱好者最擅长的事情。如今,我们依然能够看到这些安装介绍。 不同于Steam支持的原生软件,你可以用Wine来运行一些小游戏,那些受众比较少,游戏开发者不愿意再开发一个Linux版本的游戏。或许将它与Steam互补,是个不错的选择。4284安装Wine其实类似Wine的工具还有很多,比如CrossOver、PlayOnLinux等。但是都没有Wine的操作简单和便宜(Wine免费)。4285利用Wine玩windows游戏P.S:Wine也被作为Linux初学者转换两个平台的媒介,但是微软曾经通过多种手段对Wine进行封锁,如果要使用这个方式还是要考虑到兼容、性能、安全等方面的问题。 3. GoG.com:找到所有你需要的游戏 易用指数:★★★☆ 丰富指数:★★★★ 推荐指数:★★★☆ 特点:无需安装终端,支持中文和人民币结算。4286GoG.com万圣节主题 对于很多Linux初学者而言,安装软件也同样非常麻烦,所以,你可以选用这款GoG.com,因为他是一个Web网页版游戏平台,同时,你也可以将找到的游戏通过GoG.com下载到本地。 GoG.com最早成立于9年前,并称为“Good Old Game”,早期专注于怀旧风,只发布一下年代比较久的游戏,直到2012年才改变风格,将新款游戏融入到自己的平台上。 GoG.com的优势在于不但五重断免安装,同时还可以将自己喜欢的游戏安装到多个操作系统上,十分方便。值得一提的是,大概是看到中国游戏力量之大,GoG.com在今年6月22日起,加入了简体中文支持,将游戏名称译为了国内玩家比较熟悉的名称,另外在结算方式上也开始支持人民币结算,包括:支付宝,银联,微信,财付通等方式。 但在流畅度体验上, GoG.com受到国内网络限制,网速有时略显迟缓,建议网友可以将游戏下载到本地。 4. Linux游戏平台/网站的其他推荐 一旦入了Linux这个坑后,你会发现,大多数网友对“Linux没法玩游戏”是存在偏见的。除了上面这些值得单独拿出来推荐的游戏方式外, 还有很多不错的,甚至针对Linux游戏爱好者提供的游戏平台值得一试。 这里简单介绍: Portable Linux Games:这是一个方便你下载Linux游戏安装包的平台。它没有炫酷的页面,而是简单直接的将所有游戏名称、 版本号和下载链接提供给你,供你安装。但这里的缺点是游戏数量和更新频率不太快。4287Linux Game Database与上面的相似,也是一个专门针对Linux用户的游戏网页,你可以在里面下载需要的游戏安装包,还可以适当的与网友讨论一番。4288 Penguspy这是一个游戏资讯类网站,不仅拥有大量的游戏,还提供了评分标准。将游戏分类为:冒险类、动作类、解密类、音乐类和竞赛类多种形态。并提供youtube试玩视频。 5. 裂墙推荐:终其一生的 Linux 游戏 Nethack 有网友形容如果要详细介绍Nethack,恐怕洋洋洒洒写上几万字也不够。毕竟找到一个能够陪伴成长, 永远无法终结,又很有趣的游戏并没那么容易。 Nethack可以说是上世纪八十年代Roguelike单人游戏的延续。这类游戏大多根植于奇幻世界背景下,需要玩家在随机生成的地牢中探索、回合制、基于磁贴的图像(tile-based graphics)以及角色的永久死亡。如今最流行的Nethack就是一款单机Roguelike类型游戏(可以通过游戏内的邮件进行互动)。4289Nethack种族划分虽然已经有图形化版本的Nethack,但据说骨灰级玩家依然三十年如一日的沉迷在无数个“d、%、f、#、^”等符号中。4290Nethack 每一款游戏的风靡都有其内在的原因,比如真是的游戏体验、能够使人舒缓压力,或者只是一个时间消遣。但是,我们都知道游戏是有自己的生命周期。一般来讲,手游的生命周期在2年左右,端游会更长一些,一般在3-5年,但你一定没有见过30年后依然焕发着生命力的游戏。 Nethack这款游戏最初开发与1987年,经历了三十年后,如今仍是一款活跃在开源社区的游戏,其生命力可见一斑,三十年如一日也所言不虚。当然这款游戏在中国很难普及,毕竟目前还没有很好的汉化版本,图形化依然是主流,也缺乏Linux使用习惯。如果你感兴趣,可以去尝试一下,但切记不要沉迷游戏哦。
-
3888 此前曾报道过 Linux Mint 18.3 将以 Sylvia 为代号,虽然 18.3 尚未公布任何具体的发布日期,但我们预计将于 2017 年 12 月基于 Ubuntu 16.04.3 LTS 发布。 再见 , KDE 在每月的新闻更新中,Linux Mint 团队分享了一些有意思的更新。其中最大的亮点是这个对初学者友好的 Linux 发行版将停止使用 KDE 桌面。因此,Linux Mint 18.3 将是最后一个使用 KDE 桌面的版本。 Linux Mint 团队表示,希望这个选择能让开发团队有更多的时间和资源来开发 Cinnamon 版本的 Linux Mint,并为用户带来更加精细和良好的桌面体验。 LMDE 3 开发正在进行中 LMDE,Linux Mint Debian **,是基于 Debian 的 Linux 发行版,面向有经验的用户。它比 Mint 稍快,并运行着较新的软件包。 在解释 LMDE 的重要性时,开发团队写道:“对于 Linux Mint 来说,继续支持 LMDE 作为一个预备选项是很重要的,因为要以防 Ubuntu 发生故障,还要将其作为许多项目和技术的开发目标,来保证 Linux Mint 之外的兼容性。” 对于它的关注群体来说,有一个好消息:LMDE 3 正在开发中。正如预期的那样,它将基于 Debian Stretch,代号是“Cindy”。 用户期待的 LMDE 3 将在 2018 年第一季度以基于 Cinnamon 3.8 的单一版本方式发布。 参考:FOSSBYTES, Linux Mint Blog
-
本帖最后由 达康书记 于 2017-10-24 11:13 编辑在linux中切换用户时变成-bash4.1-$,经常可能出现这种现象的原因就是这个用户目录下缺少用户登入需要的环境配置文件.bash_profile .bashrc等。 -bash4.1-# -bash4.1-$ 解决办法:将/etc/skel/.bash*拷贝到对应用户目录下,如root用户/root或非root用户/home/$user-name。 [code][root@PEK1000134303 home]# ls /etc/skel/.bash* -lh -rw-r--r--. 1 root root 18 Mar 23 2017 /etc/skel/.bash_logout -rw-r--r--. 1 root root 176 Mar 23 2017 /etc/skel/.bash_profile -rw-r--r--. 1 root root 124 Mar 23 2017 /etc/skel/.bashrc [root@PEK1000134303 home]#cp /etc/skel/.bash* /root/ [root@PEK1000134303 home]#cp /etc/skel/.bash* /home/$user-name/[/code] 大家试试,是不是很神奇啊,呵呵。
-
原文出处: tecmint 译文出处:Linux中国/Linux-pdz 你是否遇到过需要在文件中查找一个特定的字符串或者样式,但是不知道从哪儿开始?那么,就请grep来帮你吧。 grep是每个Linux发行版都预装的一个强有力的文件模式搜索工具。无论何种原因,如果你的系统没有预装它的话,你可以很容易的通过系统的包管理器来安装它(Debian/Ubuntu系中的apt-get和RHEl/CentOS/Fedora系中的yum)。 我发现使用现实世界中的真实例子让你投身其中是让你接触grep命令的最容易方式。
-
本帖最后由 燕姑娘 于 2017-10-9 17:46 编辑使用 Linux 最酷的事情之一就是随着时间的推移,你可以不断获得新的知识。每天,你都可能会遇到一个新的实用工具,或者只是一个不太熟悉的奇技淫巧,但是却非常有用。这些零碎的东西并不总是能够改变生活,但是却是专业知识的基础。 即使是专家,也不可能事事皆知。无论你有多少经验,可能总会有更多的东西需要你去学习。所以,在这儿我列出了七件关于 Linux 你可能不知道的事情。 一个查找命令历史的交互模式 你可能对 history 命令非常熟悉,它会读取 bash 历史,然后以编号列表的方式输出到标准输出(stdout)。然而,如果你在 curl 命令的海洋里寻找一个特定的链接(URL),那么这个列表并不总是那么容易阅读的。 你还可以有另一个选择,Linux 有一个交互式的反向搜索可以帮助你解决这个问题。你可以通过快捷键 ctrl+r启动交互模式,然后进入一个交互提示中,它将会根据你提供的字符串来向后搜索 bash 历史,你可以通过再次按下 ctrl+r 向后搜索更老的命令,或者按下 ctrl+s 向前搜索。 注意,ctrl+s 有时会与 XON/XOFF 流控制冲突,即 XON/XOFF 流控制也会使用该快捷键。你可以通过运行 stty -ixon 命令来禁用该快捷键。在你的个人电脑上,这通常是有用的,但是在禁用前,确保你不需要 XON/XOFF 。 Cron 不是安排任务的唯一方式 Cron 任务对于任何水平的系统管理员,无论是毫无经验的初学者,还是经验丰富的专家来说,都是非常有用的。但是,如果你需要安排一个一次性的任务,那么 at 命令为你提供了一个快捷的方式来创建任务,从而你不需要接触 crontab 。 at 命令的运行方式是在后面紧跟着你想要运行任务的运行时间。时间是灵活的,因为它支持许多时间格式。包括下面这些例子: 2567 当你以带参数的方式输入 at 命令以后,将会提示你该命令将在你的 Linux 系统上运行。这可能是一个备份脚本,一套维护任务,或者甚至是一个普通的 bash 命令。如果要结束任务,可以按 ctrl+d 。 另外,你可以使用 atq 命令查看当前用户的所有任务,或者使用 sudo atq 查看所有用户的任务。它将会展示出所有排定好的任务,并且每个任务都伴有一个 ID 。如果你想取消一个排定好的任务,可以使用 atrm 命令,并且以任务 ID 作为参数。 你可以按照功能搜索命令,而不仅仅是通过名字 记住命令的名字非常困难,特别是对于初学者来说。幸运的是,Linux 附带了一个通过名字和描述来搜索 man 页面的工具。 下次,如果你没有记住你想要使用的工具的名称,你可以尝试使用 apropos 命令加上你想要干的事情的描述。比如,apropos build filesystem 将会返回一系列名字和描述包括了 “build” 和 “filesystem” 单词的工具。 apropos 命令接受一个或多个字符串作为参数,但同时它也有其他参数,比如你可以使用 -r 参数,从而通过正则表达式来搜索。 一个允许你来管理系统版本的替代系统 如果你曾进行过软件开发,你就会明白跨项目管理不同版本的语言的支持的重要性。许多 Linux 发行版都有工具可以来处理不同的内建版本。 可执行文件比如 java 往往符号链接到目录 /etc/alternatives 下。反过来,该目录会将符号链接存储为二进制文件并提供一个管理这些链接的接口。Java 可能是替代系统最常管理的语言,但是,经过一些配置,它也可以作为其他应用程序替代品,比如 NVM 和 RVM (NVM 和 RVM 分别是 NodeJS 和 Ruby 的版本管理器)。 在基于 Debian 的系统中,你可以使用 update-alternatives 命令创建和管理这些链接。在 CentOS 中,这个工具就叫做 alternatives 。通过更改你的 alternatives 文件中的链接,你便可以安装一个语言的多个版本,并且在不同的情况下使用不同的二进制。这个替代系统也提供了对任何你可能在命令行运行的程序的支持。 shred 命令是更加安全的删除文件方式 我们大多数时候总是使用 rm 命令来删除文件。但是文件去哪儿了呢?真相是 rm 命令所做的事情并不是像你所想像的那样,它仅仅删除了文件系统和硬盘上的数据的硬链接。硬盘上的数据依旧存在,直到被另一个应用重写覆盖。对于非常敏感的数据来说,这会带来一个很大的安全隐患。 shred 命令是 rm 命令的升级版。当你使用 shred 命令删除一个文件之后,文件中的数据会被多次随机覆写。甚至有一个选项可以在随机覆写之后对所有的数据进行清零。 如果你想安全的删除一个文件并且以零覆盖,那么可以使用下面的命令: 2592 同时,你也可以使用 -n 选项和一个数字作为参数,从而指定在随机覆盖数据的时候迭代多少次。 通过自动更正来避免输入很长的无效文件路径 有多少次,你输入一个文件的绝对路径,然而却看到“没有该文件或目录”的消息。任何人都会明白输入一个很长的字符串的痛苦。幸运的是,有一个很简单的解决办法。 内建的 shopt 命令允许你设置不同的选项来改变 shell 的行为。设置 cdspell 选项是避免输入文件路径时一个字母出错的头痛的一个简单方式。你可以通过运行 shopt -s cdspell 命令来启用该选项。启用该选项后,当你想要切换目录时,会自动更正为最匹配的目录。 Shell 选项是节省时间的一个好方法(更不用说减少麻烦),此外还有许许多多的其他选项。如果想查看你的系统中所有选项的完整列表,可以运行不带参数的 shopt 命令。需要注意的是,这是 bash 的特性,如果你运行 zsh 或者其他可供选择的 shell,可能无法使用。 通过子 shell 返回到当前目录 如果你曾经配置过一个比较复杂的系统,那么你可能会发现你需要频繁的更换目录,从而很难跟踪你所在的位置。如果在运行完一个命令后自动返回到当前位置,不是很好吗? Linux 系统实际上提供了一个解决该问题的方法,并且非常简单。如果你想通过 cd 命令进入另一个目录完成一些任务,然后再返回当前工作目录,那么你可以将命令置于括号中。你可以在你的 Linux 系统上尝试下面这个命令。记住你当前的工作目录,然后运行: 2571 该命令会输出 /etc 目录的内容。现在,检查你的当前工作目录。它和执行该命令前的目录一样,而不是 /etc 目录。 它是如何工作的呢?运行一个括号中的命令会创建一个子 shell 或一个当前 shell 进程的复刻副本。该子 shell 可以访问所有的父变量,反之则不行。所以请记住,你是在运行一个非常复杂的单行命令。 在并行处理中经常使用子 shell ,但是在命令行中,它也能为你带来同样的力量,从而使你在浏览文件系统时更加容易。 作者简介: Phil Zona 是 Linux Academy 的技术作家。他编写了 AWS、Microsoft Azure 和 Linux 系统管理的指南和教程。他同时也管理着 Cloud Assessments 博客,该博客旨在帮助个人通过技术实现他们的事业目标。 来自:[color=rgb(61,177,88)]Linux中国 作者:[color=rgb(61,177,88)]PHIL ZONA
-
求教~{:2_25:}
人生苦短,我用Python
发表于2017-09-29 22:19:34
2017-09-29 22:19:34
最后回复
人生苦短,我用Python
2017-09-29 22:19:34
3272 0 -
非共享裸盘使用时划分过分区,对指定分区扩容,在线扩容可参考如下步骤。提示:i)fdisk工具他对分区是有大小限制的,它只能划分小于2T的磁盘。如果使用fdisk对大于2T的磁盘分区,虽然可以分区,但仅识别2T的空间,所以磁盘容量超过2T的话,就使用Parted工具来实现对GPT磁盘进行分区操作。 ii)fdisk和parted对同一个磁盘不可以交互使用,否则会导致分区的起始扇区不一致,从而导致数据出现问题。
-
近日,微软 SQL Server 最近达成一个新的里程碑,最新版SQL Server 2017 除了支持 Windows 平台,将首次登陆 Linux 平台,并且还支持 Docker。此举让用户(特别是企业用户)有了更多选择。2016 年 6 月份,微软就提前预告 SQL Server 将支持 Linux 平台近年来, SQL Server 正在一直演化,除了想一改 DMS(数据库管理系统)的角色,还想介入到数据分析、机器学习和数据科学领域。2017 年 4 月份, SQL Server 发布了一个重要组件,支持在 SQL Server 中用 Python 运行机器学习负载。借助这个特性,数据科学家直接操作处理储存在 SQL Server 的数据,不用数据迁移了。机器学习/数据科学领域内的另一种编程语言 R,SQL Server 在去年就整合了。更多细节,见 SQL Server 官方:https://www.microsoft.com/en-us/sql-server/sql-server-2017参考:VentureBeta、SQL Server
人生苦短,我用Python
发表于2017-09-28 15:43:11
2017-09-28 15:43:11
最后回复
人生苦短,我用Python
2017-09-28 15:43:11
3114 0 -
1、使用xshell通过EIP直接SSH 2433 2、接受并保存,按照“游览—>用户秘钥—>导入”导入xxx.pem秘钥对。 2434 2435 3、选择已导入的秘钥对登陆成功。 2436
上滑加载中
推荐直播
-
华为云码道Agent集成与鸿蒙实战2026/08/11 周二 19:00-21:00
王一男-华为云码道产品规划专家;李炎-华为云码道产品专家;彭江敏-华为云鸿蒙端云一体化开发专家
本次直播带你解读华为云码道7月份产品新特性、新功能。更有专家演示码道Agent Space × 钉钉机器集成实战,从0到1打通消息通道;码道鸿蒙端云一体化实战,快速搭建员工签到系统。
回顾中 -
华为云开发者AI素养直播课·第五期2026/09/04 周五 16:00-18:00
林华鼎-华为云AI开发者运营负责人;蒋春阳-华为云AI开发者案例开发专家
本期直播内容: AI工具体验营 · 第5-8课连讲。Agent-Team 多智能体协作完成毕业设计实践
回顾中 -
华为云开发者AI素养ClassRoom·第六期2026/09/08 周二 19:00-20:00
樊渊-2026华为软件挑战赛冠军
高手来了:看软挑高手解析二维排样问题—从工业难题到算法突破
回顾中
热门标签