10 个 Linux 中方便的 Bash 别名

2018-10-10 孤独求学人 Linux

你有多少次在命令行上输入一个长命令,并希望有一种方法可以保存它以供日后使用?这就是 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"

阅读全文>>

标签: linux wget tar alias

评论(0) 浏览(1771)

四个提高工作效率的小技巧

2018-9-15 孤独求学人 Linux

四个提高工作效率的小技巧:
一)有没有那么一个命令,创建目录并切换至新目录下?
在工作中是不是经常使用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

阅读全文>>

标签: linux cp touch mkdir

评论(0) 浏览(2151)

valid phone numbers

2018-9-4 孤独求学人 awk

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

阅读全文>>

标签: linux grep awk

评论(0) 浏览(1810)

"Exit Trap” 让你的 Bash 脚本更稳固可靠

2018-5-14 孤独求学人 Linux

有个简单实用的技巧可以让你的 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 shell trap

评论(0) 浏览(1664)

在 Linux 下 9 个有用的 touch 命令示例

2018-5-2 孤独求学人 Linux

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 cat touch stat

评论(0) 浏览(16374)

如何在 Linux 中查找最大的 10 个文件

2018-3-30 孤独求学人 Linux

当系统的磁盘空间不足时,您可能会使用 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 个文件

阅读全文>>

标签: linux find df du ncdu

评论(0) 浏览(1377)

那些实用的Nginx规则

2017-12-8 孤独求学人 Nginx

1. 概述



大家都知道Nginx有很多功能模块,比如反向代理、缓存等,这篇文章总结下我们这些年实际环境中那些有用的Nginx规则和模块,大部分是用法的概括及介绍,具体细节在实际配置时再自行google。



2. 内置语法



先介绍Nginx默认已支持的内置功能,靠这些基本就满足大部分的web服务需求。


2.1 proxy代理


proxy常用于两类应用场景,一类是中转,如异地科学的上网方式,另外一类是到后端服务的负载均衡方案。

用反向代理时候,需要特别注意里面的域名默认是在nginx启动时候就解析了,除非reload否则一直用的是当初解析的域名,也就是说不能动态解析。

但这个问题是可以通过别的模块或者用内置字典变量方式来解决。

阅读全文>>

标签: linux nginx

评论(0) 浏览(14944)

500 internal server error

2017-12-1 孤独求学人 Nginx

今天同事在使用开发服管理平台上传图片的时候服务器返回: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

评论(0) 浏览(11656)

从苦逼到牛逼,详解Linux运维工程师的打怪升级之路

2017-10-1 孤独求学人 Linux

运维工程师是从一个呆逼进化为苦逼再成长为牛逼的过程,前提在于你要能忍能干能拼,还要具有敏锐的嗅觉感知前方潮流变化。如:今年大数据,人工智能比较火……(相对表示就是 Python 比较火)

之前写过运维基础篇,发现对很多人收益挺大,接下来也写下关于这4年多的运维实践经验,从事了2年多游戏运维,1年多安全运维,1年大数据运维,相关行业信息不能算非常精通,但是熟悉和熟练还是相对可以的。


初级篇


linux运维人员常用工具拓扑详见:


阅读全文>>

标签: linux rsync sed awk python

评论(0) 浏览(19434)

linux php 安装xdebug扩展

2017-9-6 孤独求学人 Php

# 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 linux pecl xdebug

评论(0) 浏览(9201)

Powered by emlog 豫ICP备15004178号-1