作者:老王

Shell公共函数库

Linux系统里有一些公共的Shell函数库可供使用,最重要的是/etc/rc.d/init.d/functions,在/etc/init.d目录下有很多脚本都用到了这个函数库,里面提供了很多有用的方法,比如:killproc()等等。所以编写自己的Shell脚本时可以套用这个函数库:

if [ -f /etc/init.d/functions ]; then
    . /etc/init.d/functions
elif [ -f /etc/rc.d/init.d/functions ] ; then
    . /etc/rc.d/init.d/functions
else
    exit 0
fi

Shell里循环的几种方式

for i in `seq 1 10`; do echo $i; done
for ((i=1; i<=10; i++)); do echo $i; done

设置linux系统里打开文件描述符的最大值

通过ulimit -n命令可以查看linux系统里打开文件描述符的最大值,一般缺省值是1024,对一台繁忙的服务器来说,这个值偏小,所以有必要重新设置linux系统里打开文件描述符的最大值。那么应该在哪里设置呢?

比如说想把linux系统里打开文件描述符的最大值设置为65535, 命令是ulimit -n 65535。需要说明的是这是一个和会话相关的命令,比如说你打开两个命令行终端,分别设置一个不同的值,再查询,会发现彼此不受影响。那么到底应该在哪里设置linux系统里打开文件描述符的最大值呢?一个最常见的错误就是在/etc/rc.local里设置,因为rc.local是在最后才被加载的,所以前面加载的程序,如/etc/init.d里的程序都没有机会使用到这个设置值,只有rc.local文件里ulimit -n 65535声明后面的命令才能使用到这个设置值,因为它们在同一个会话里。

最正确的做法是在/etc/security/limits.conf里设置:

* hard nofile 65535
* soft nofile 65535

这样设置后所有的程序,所有的会话就都能使用到这个设置值了。

找出大文件

磁盘空间被耗尽的时候,免不了要清理一下,比如说/home目录太大,就可以使用下面命令看看到底是谁:

du -s /home/* | sort -nr

根据负载自动重启Apache

#!/bin/sh

APACHE=/usr/local/bin/apachectl
LOG=/var/log/apache.log

if [ `awk -F. '{print $1}' /proc/loadavg` -gt 100 ]; then
    echo "Stop Apache at `date`" >> $LOG

$APACHE stop

while [ `ps -ef | grep httpd | grep start | wc -l` -gt 0 ]; do
        killall httpd
        sleep 1
    done

echo "Start Apache at `date`" >> $LOG

$APACHE start
fi

查看服务器型号

dmidecode -s system-product-name

我在Dell的PowerEdge 1950服务器上使用上述命令能看到结果,但是在HP的ProLiant DL380 G5服务器上使用system-product-name却无效,什么也找不到,此时只能用dmidecode | more自己慢慢查了。

限制可以使用su命令的用户

vi /etc/pam.d/su

# Uncomment the following line to require a user to be in the "wheel" group.
# auth required pam_wheel.so use_uid

取消相应的注释仅让wheel组用户能使用su命令

/usr/sbin/visudo(vi /etc/sudoers)

# Uncomment to allow people in group wheel to run all commands
# %wheel ALL=(ALL) ALL

# Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL

一个是输入密码的,一个是不用输入密码的,选一个取消注释。

剩下的就是把用户加到wheel组,可以先在/etc/group文件里查询wheel的GID,然后修改密码文件:

/usr/sbin/vipw(vi /etc/passwd)

或者直接使用命令:

/usr/sbin/vigr(vi /etc/group)

把用户名加到wheel行的末尾,如果是多个用户名的话用逗号分隔,group文件的详细介绍看man group

但更好的方法是使用gpasswd命令:

gpasswd -a 用户名 wheel

设置好之后可以用groups命令查看一下:

groups 用户名

Debian下自动生成最快的sources.list

老版Debian可以使用base-config来设置sources.list,但是在新版中这个软件包已经被取消了,取而代之的是netselect-apt,先安装这个软件包:

aptitude install netselect-apt
cd /etc/apt
netselect-apt stable

这样就能自动生成最快的sources.list文件了。

题外话,aptitude install build-essential,装完系统顺手就装上这个,免得以后麻烦。

CentOS下有一个功能差不多的软件包,可以这样安装:yum install yum-fastestmirror( 参考链接)

万能的“-”参数

横线“-”参数在Linux里有很多奇妙的应用。

RewriteRule . - [F]

在rewrite里,横线"-"表示什么也不做,整句的含义直接按标志位[F]的意思来,也就是禁止。

cd -命令:An argument of - is equivalent to $OLDPWD(man cd)
su -命令:Make the shell a login shell(man su)

在tar命令里,横线“-”还代表着输入,输出:

tar zcvf - /path/to/foo | (cd /path/to/bar; tar zxvf -)
tar zcvf - /path/to/foo | ssh ip "cd /path/to/bar; cat > filename.tgz"

gzip -cd foobar.tar.gz | tar xf -

使用/dev/zero,/dev/null两个设备分别测试磁盘的读写性能

假设256M的数据,分别按4k, 8k的BlockSize大小进行读写测试:

time dd if=/tmp/testfile of=/dev/null bs=4k(4k读)
time dd if=/tmp/testfile of=/dev/null bs=8k (8k读)

time dd if=/dev/zero of=/tmp/testfile bs=4k count=65536 (4k写)
time dd if=/dev/zero of=/tmp/testfile bs=8k count=32768 (8k写)

可以man zero或者man null看具体介绍。

查看Apache编译的模块

httpd -l (for static modules)
httpd -M (for shared/dynamic modules)

好记性不如烂笔头,记录几个常用的Linux操作相关推荐

  1. 好记性不如烂笔头——记录项目过程中的编译错误及解决方法(持续记录中)

    文章目录 前言 前言 记录做项目的时候编译问题,好记性不如烂笔头,下次碰到相同的问题也可以方便查阅 2023.2.10 问题1:编写makefile脚本后,执行make all,遇到如下问题 解决方法 ...

  2. 好记性不如烂笔头-笔记记录方法公开

    见字如面,我是东北码农. 俗话说,好记性不如烂笔头,在工作学习中记笔记是很重要的.今天介绍一下自己在工作中如何记录笔记,以及给大家安利一下win10自带的OneNote. 1.记录什么 1.1.流水账 ...

  3. 好记性不如烂笔头之 App widgets(二)

    好记性不如烂笔头之 App widgets(一)_禽兽先生不禽兽的博客-CSDN博客 之前记录了 AppWidgets 的基本用法,当我的小组件中需要展示列表的时候,发现它的方式也跟普通的列表控件不一 ...

  4. 好记性不如烂笔头——Vite篇

    茶已备好,只待君来!感谢关注 前端点线面 (>‿<),本号定期推荐原创深度好文,帮助每一位在前端领域打拼的伙伴们走向前列,此外关注我获取最前沿知识点.海量学习资料.<前端百题斩> ...

  5. 涨知识!华为备忘录还能这样玩,难怪古人说好记性不如烂笔头

    涨知识!华为备忘录还能这样玩,难怪古人说"好记性不如烂笔头" 古人云:"好记性不如烂笔头!"这句话是我们从小一直听到大的,可是真的能够做到的,真的没有几位,毕竟 ...

  6. 进来在看《How Tomcat Works》这本书,将读书笔记贴在这里,好记性不如烂笔头。

    进来在看<How Tomcat Works>这本书,将读书笔记贴在这里,好记性不如烂笔头.  最简单的一个服务器,一个很简单的结果.  HttpServer构建ServerSocket,每 ...

  7. 好记性不如烂笔头:会议纪要本

    开发的大多数经历都用在思考代码如何写上,当你在进行某个项目时,突然开会又说要弄其他的项目,或者又是新的需求,需求错综复杂,多个项目交织在一起的时候容易乱. 开会时需要一个会议纪要本,会上讲了哪些关于你 ...

  8. 好记性不如烂笔头-linux学习笔记4apache相关知识

    好记性不如烂笔头-linux学习笔记4apache相关知识 apache 启动有2种模式 1是prefork模式,每个进程对应一个线程,如果是比较稳定的平台,那么prefork模式是worker模式 ...

  9. 好记性不如烂笔头——C++篇

    大家好,我是前端点线面,毕业于华中科技大学,非科班出身的一枚新时代农民工,现在是百度前端研发工程师,著有<前端百题斩>.数十篇学习思维导图(go.React.Redux.Vue.Vuex. ...

最新文章

  1. 初探系列 — Pharbers用于单点登录的权限架构
  2. 银行实时支付系统是怎么躲过双十一这一坎的呢?
  3. adguard没有核心 core no_业主装修最后悔的五个地方!没有之一
  4. java 连接redis 以及基本操作
  5. pycharm和python在mac里安装_MAC安装python-opencv及在pycharm下的配置
  6. jQuery Ajax POST方法
  7. 大一计算机绩点3算什么水平,绩点只有3?我可以解释一下
  8. python多环境管理_怎样管理多个Python版本和虚拟环境
  9. 有哪些好用的电脑桌面分类管理软件?这3款软件让你的效率秒杀小伙伴!
  10. rsync简介及部署
  11. package installer has been stopped怎么解决
  12. Android Studio 导入modle是提示名称已存在
  13. Vue开发中的一点技♂巧
  14. STL——vector与迭代器
  15. 【Javascript】求两个对象的交集、差集
  16. pt100阻值温度c语言,pt100温度传感器阻值,pt100温度与阻值对照表
  17. VIVADO如何手动布局布线
  18. 第19 题: 题目:定义Fibonacci 数列如下: / 0 n=0 f(n)= 1 n=1 \ f(n-1)+f(n-2) n=2
  19. Oracle 电子期刊下载
  20. Qt 实现自定义Ui控件例子,以自定义的Slider为例(QWidget)

热门文章

  1. ASP.Net请求处理机制初步探索之旅 - Part 1 前奏
  2. 【Github】怎么在README.md中添加图片?
  3. REVERSE-PRACTICE-CthulhuOJ
  4. python3中format函数列表_Python3之字符串格式化format函数详解(上)
  5. 【牛客 - 370 I 】Rinne Loves Xor(按位前缀和,异或)
  6. **【POJ - 2389】 Bull Math (高精度乘法)
  7. 网页html 图片横向摆放,css实现多张图片横向居中显示的方法
  8. Android png模拟svg,Android 中使用svg图片
  9. 剑灵傲雪区最新服务器,12.8日势力优化具体内容 各大区服务器互通情况
  10. lambda表达式创建一条最简单的线程