10 个 Linux 中方便的 Bash 别名
你有多少次在命令行上输入一个长命令,并希望有一种方法可以保存它以供日后使用?这就是 Bash 别名派上用场的地方。它们允许你将长而神秘的命令压缩为易于记忆和使用的东西。需要一些例子来帮助你入门吗?没问题!要使用你创建的 Bash 别名,你需要将其添加到 .bash_profile 中,该文件位于你的家目录中。请注意,此文件是隐藏的,并只能从命令行访问。编辑此文件的最简单方法是使用 Vi 或 Nano 之类的东西。
1、 你有几次遇到需要解压 .tar 文件但无法记住所需的确切参数?别名可以帮助你!只需将以下内容添加到 .bash_profile 中,然后使用 untar FileName 解压缩任何 .tar 文件。
alias untar='tar -zxvf '2、 想要下载的东西,但如果出现问题可以恢复吗?
alias wget='wget -c '
3、 是否需要为新的网络帐户生成随机的 20 个字符的密码?没问题。
alias getpass="openssl rand -base64 20"
四个提高工作效率的小技巧
四个提高工作效率的小技巧:一)有没有那么一个命令,创建目录并切换至新目录下?
在工作中是不是经常使用mkdir创建目录,然后cd到创建的目录下,如果经常这样执行的话是不是特烦,抱怨为什么没有一个现成的命令供使用
纠结中。。。。。
如果这个时候有个方式可以满足你的需求是不是感觉很兴奋,然我们见证实现方式吧:
在当前登录的账号的~/.bash_profile文件中添加如下代码:
function mkdircd () { mkdir -p "$@" && eval cd "\"\$$#\""; }
然后执行 source ~/.bash_profile 使修改文件生效
这个时候你的服务器下就会有个新的命令,mkdircd
Example:
#mkdircd /tmp/a/b/c #pwd /tmp/a/b/c
valid phone numbers
Given a text file file.txt that contains list of phone numbers (one per line), write a one liner bash script to print all valid phone numbers.You may assume that a valid phone number must appear in one of the following two formats: (xxx) xxx-xxxx or xxx-xxx-xxxx. (x means a digit)
You may also assume each line in the text file must not contain leading or trailing white spaces.
Example:
Assume that file.txt has the following content:
987-123-4567
123 456 7890
(123) 456-7890
Your script should output the following valid phone numbers:
987-123-4567
(123) 456-7890
cat > file.txt <<EOF
987-123-4567
(123) 456-7890
0(001) 345-0000
(001) 123-345
"Exit Trap” 让你的 Bash 脚本更稳固可靠
有个简单实用的技巧可以让你的 bash 脚本更稳健 -- 确保总是执行必要的收尾工作,哪怕是在发生异常的时候。要做到这一点,秘诀就是 bash 提供的一个叫做 EXIT 的伪信号,你可以 trap 它,当脚本因为任何原因退出时,相应的命令或函数就会执行。我们来看看它是如何工作的。
基本的代码结构看起来像这样:
#!/bin/bash function finish { # 你的收尾代码 } trap finish EXIT
你可以把任何你觉得务必要运行的代码放在这个 finish 函数里。一个很好的例子是:创建一个临时目录,事后再删除它。
#!/bin/bash scratch=$(mktemp -d -t tmp.XXXXXXXXXX) function finish { rm -rf "$scratch" } trap finish EXIT
这样,在你的核心代码中,你就可以在这个 $scratch 目录里下载、生成、操作中间或临时数据了。注1
在 Linux 下 9 个有用的 touch 命令示例
touch 命令用于创建空文件,也可以更改 Unix 和 Linux 系统上现有文件时间戳。这里所说的更改时间戳意味着更新文件和目录的访问以及修改时间。让我们来看看 touch 命令的语法和选项:
语法:
# touch {选项} {文件}
touch 命令中使用的选项:
touch-command-options
touch-command-options
在这篇文章中,我们将介绍 Linux 中 9 个有用的 touch 命令示例。
示例:1 使用 touch 创建一个空文件
要在 Linux 系统上使用 touch 命令创建空文件,键入 touch,然后输入文件名。如下所示:
[root@linuxtechi ~]# touch devops.txt [root@linuxtechi ~]# ls -l devops.txt -rw-r--r--. 1 root root 0 Mar 29 22:39 devops.txt
如何在 Linux 中查找最大的 10 个文件
当系统的磁盘空间不足时,您可能会使用 df、du 或 ncdu 命令进行检查,但这些命令只会显示当前目录的文件,并不会显示整个系统范围的文件。
您得花费大量的时间才能用上述命令获取系统中最大的文件,因为要进入到每个目录重复运行上述命令。
这种方法比较麻烦,也并不恰当。
如果是这样,那么该如何在 Linux 中找到最大的 10 个文件呢?
我在谷歌上搜索了很久,却没发现类似的文章,我反而看到了很多关于列出当前目录中最大的 10 个文件的文章。所以,我希望这篇文章对那些有类似需求的人有所帮助。
本教程中,我们将教您如何使用以下四种方法在 Linux 系统中查找最大的前 10 个文件。
方法 1
在 Linux 中没有特定的命令可以直接执行此操作,因此我们需要将多个命令结合使用。
# find / -type f -print0 | xargs -0 du -h | sort -rh | head -n 10 1.4G /swapfile 1.1G /home/magi/ubuntu-17.04-desktop-amd64.iso 564M /home/magi/.gdfuse/magi/cache/0B5nso_FPaZFqTFU0XzkzUlJUZzA 378M /home/magi/.gdfuse/magi/cache/0B5nso_FPaZFqeldzUmhPeC03Zm8 377M /home/magi/.gdfuse/magi/cache/0B5nso_FPaZFqRGd4V0VrOXM4YVU 100M /usr/lib/x86_64-linux-gnu/libOxideQtCore.so.0 93M /usr/lib/firefox/libxul.so 84M /var/lib/snapd/snaps/core_3604.snap 84M /var/lib/snapd/snaps/core_3440.snap 84M /var/lib/snapd/snaps/core_3247.snap
详解:
find:在目录结构中搜索文件的命令
/:在整个系统(从根目录开始)中查找
-type:指定文件类型
f:普通文件
-print0:在标准输出显示完整的文件名,其后跟一个空字符(null)
|:控制操作符,将一条命令的输出传递给下一个命令以供进一步处理
xargs:将标准输入转换成命令行参数的命令
-0:以空字符(null)而不是空白字符(LCTT 译者注:即空格、制表符和换行)来分割记录
du -h:以可读格式计算磁盘空间使用情况的命令
sort:对文本文件进行排序的命令
-r:反转结果
-h:用可读格式打印输出
head:输出文件开头部分的命令
n -10:打印前 10 个文件
那些实用的Nginx规则
1. 概述
大家都知道Nginx有很多功能模块,比如反向代理、缓存等,这篇文章总结下我们这些年实际环境中那些有用的Nginx规则和模块,大部分是用法的概括及介绍,具体细节在实际配置时再自行google。
2. 内置语法
先介绍Nginx默认已支持的内置功能,靠这些基本就满足大部分的web服务需求。
2.1 proxy代理
proxy常用于两类应用场景,一类是中转,如异地科学的上网方式,另外一类是到后端服务的负载均衡方案。
用反向代理时候,需要特别注意里面的域名默认是在nginx启动时候就解析了,除非reload否则一直用的是当初解析的域名,也就是说不能动态解析。
但这个问题是可以通过别的模块或者用内置字典变量方式来解决。
500 internal server error
今天同事在使用开发服管理平台上传图片的时候服务器返回:500 internal server error/nginx让我帮忙看下什么原因造成的
浏览器返回错误信息的时候抛出nginx,于是我登录服务器查看nginx的错误日志信息,发下如下信息
2017/12/01 10:47:49 [crit] 12775#0: *18 open() "/var/lib/nginx/tmp/client_body/0000000003" failed (13: Permission denied)
可以看到提示/var/lib/nginx/权限不足
可以通过以下命令查看权限信息
ls -la /var/lib/nginx
drwx------ 3 nginx nginx 4096 Sep 18 17:20 nginx
标签: linux error nginx server crit
从苦逼到牛逼,详解Linux运维工程师的打怪升级之路
运维工程师是从一个呆逼进化为苦逼再成长为牛逼的过程,前提在于你要能忍能干能拼,还要具有敏锐的嗅觉感知前方潮流变化。如:今年大数据,人工智能比较火……(相对表示就是 Python 比较火)
之前写过运维基础篇,发现对很多人收益挺大,接下来也写下关于这4年多的运维实践经验,从事了2年多游戏运维,1年多安全运维,1年大数据运维,相关行业信息不能算非常精通,但是熟悉和熟练还是相对可以的。
linux运维人员常用工具拓扑详见:
标签: linux rsync sed awk python
linux php 安装xdebug扩展
# 1. Xdebug 简介# Xdebug 是一个开放源代码的 PHP 程序调试器(即一个Debug工具),可以用来跟踪,调试和分析PHP程序的运行状况。当前最新版本为 Xdebug 2.6.0。
# 2. Xdebug 相关资料
# 官网:https://xdebug.org
# 官网文档:https://xdebug.org/docs
通过pecl安装xdebug扩展
php环境:PHP 7.0.24
系统环境:CentOS Linux release 7.4.1708 (Core)
#install xdebug 以下使用pecl安装php扩展,pecl安装传送门
pecl install xdebug
Warning: Invalid argument supplied for foreach() in Command.php on line 249
Warning: Invalid argument supplied for foreach() in /usr/share/pear/PEAR/Command.php on line 249
Warning: Invalid argument supplied for foreach() in Command.php on line 249
Warning: Invalid argument supplied for foreach() in /usr/share/pear/PEAR/Command.php on line 249
Warning: Invalid argument supplied for foreach() in Command.php on line 249
Warning: Invalid argument supplied for foreach() in /usr/share/pear/PEAR/Command.php on line 249
Warning: Invalid argument supplied for foreach() in Command.php on line 249
Warning: Invalid argument supplied for foreach() in /usr/share/pear/PEAR/Command.php on line 249
Warning: Invalid argument supplied for foreach() in Command.php on line 249
Warning: Invalid argument supplied for foreach() in /usr/share/pear/PEAR/Command.php on line 249
Warning: Invalid argument supplied for foreach() in Command.php on line 249
Warning: Invalid argument supplied for foreach() in /usr/share/pear/PEAR/Command.php on line 249
Warning: Invalid argument supplied for foreach() in Command.php on line 249
Warning: Invalid argument supplied for foreach() in /usr/share/pear/PEAR/Command.php on line 249
Warning: Invalid argument supplied for foreach() in Command.php on line 249
Warning: Invalid argument supplied for foreach() in /usr/share/pear/PEAR/Command.php on line 249
Warning: Invalid argument supplied for foreach() in Command.php on line 249
Warning: Invalid argument supplied for foreach() in /usr/share/pear/PEAR/Command.php on line 249
Warning: Invalid argument supplied for foreach() in Command.php on line 249
Warning: Invalid argument supplied for foreach() in /usr/share/pear/PEAR/Command.php on line 249
热门日志
分类
- Php(101)
- Java(8)
- Mysql(32)
- Ajax(2)
- Jsp(1)
- Struts(8)
- Linux(71)
- JavaScript(39)
- Staruml(0)
- Mouth(1)
- Html(6)
- Windows(8)
- Message(12)
- Lua(10)
- Compute(1)
- Redis(7)
- Nginx(11)
- Jquery(1)
- Apache(1)
- cocos2d-x(8)
- about(1)
- ssdb(1)
- Mac(7)
- C(1)
- memcache(1)
- Python(30)
- Vim(8)
- sed(2)
- ansible(3)
- awk(4)
- shell(3)
- Django(4)
- git(7)
- bat(4)
- svn(0)
- docker(1)
- Tornado(1)
- go(1)
- 架构(16)
- Vue(1)
最新日志
- Docker 那些事
- 欢迎您关注“刘善海价值分享”微信公众号!
- Module build failed (from ./node_modules/sass-loader/dist/cjs.js):
- Linux vim/vi下backspace(退格键)出现^? 或^H
- python 如何通过subprocess.call调用自定义alias别名
- python2 python3中long类型的区别
- 10 个 Linux 中方便的 Bash 别名
- 'python' engine because the 'c' engine does not support regex separators
- importError c extension: No module named np_datetine not buit
- 四个提高工作效率的小技巧