Prety F2E

We tell browsers how to do better

0%

在 Bash 中分别使用 basename、dirname、${},提取文件名和目录名。

通过变量方式

${} 用于字符串的读取、提取和替换功能,可以使用 ${} 提取字符串

提取文件名

1
2
3
file1=/dir1/dir2/file.txt
echo ${file1##*/}
# file.txt

提取后缀

1
2
echo ${file1##*.}
# txt

提取不带后缀的文件名

1
2
3
4
5
tmp=${file1##*/}
echo $tmp
# file.txt
echo ${tmp%.*}
# file

提取目录

1
2
echo ${var%/*}
# /dir1/dir2

通过命令

使用文件目录的专有命令 basename 和 dirname

提取文件名

1
2
3
file2=/dir1/dir2/file2.txt
echo $(basename $file2)
# file2.txt

提取不带后缀的文件名

1
2
echo $(basename $file2 .txt)
# file2

提取目录

1
2
3
4
dirname $file2
# /dir1/dir2
echo $(dirname $file2)
# /dir1/dir2

查看时区

1
2
date -R
Fri, 21 Dec 2018 01:55:40 -0500

时区是 -0500,北京时间是东八区 +0800,所以这里需要设置一下

选择时区

按照提示一步一步,选择亚洲(4)/中国(9)/北京时间(1)/确认(1)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
tzselect
Please identify a location so that time zone rules can be set correctly.
Please select a continent, ocean, "coord", or "TZ".
1) Africa
2) Americas
3) Antarctica
4) Asia
5) Atlantic Ocean
6) Australia
7) Europe
8) Indian Ocean
9) Pacific Ocean
10) coord - I want to use geographical coordinates.
11) TZ - I want to specify the time zone using the Posix TZ format.
#? 4
Please select a country whose clocks agree with yours.
1) Afghanistan 18) Israel 35) Palestine
2) Armenia 19) Japan 36) Philippines
3) Azerbaijan 20) Jordan 37) Qatar
4) Bahrain 21) Kazakhstan 38) Russia
5) Bangladesh 22) Korea (North) 39) Saudi Arabia
6) Bhutan 23) Korea (South) 40) Singapore
7) Brunei 24) Kuwait 41) Sri Lanka
8) Cambodia 25) Kyrgyzstan 42) Syria
9) China 26) Laos 43) Taiwan
10) Cyprus 27) Lebanon 44) Tajikistan
11) East Timor 28) Macau 45) Thailand
12) Georgia 29) Malaysia 46) Turkmenistan
13) Hong Kong 30) Mongolia 47) United Arab Emirates
14) India 31) Myanmar (Burma) 48) Uzbekistan
15) Indonesia 32) Nepal 49) Vietnam
16) Iran 33) Oman 50) Yemen
17) Iraq 34) Pakistan
#? 9
Please select one of the following time zone regions.
1) Beijing Time
2) Xinjiang Time
#? 1

The following information has been given:

China
Beijing Time

Therefore TZ='Asia/Shanghai' will be used.
Selected time is now: Fri Dec 21 15:00:54 CST 2018.
Universal Time is now: Fri Dec 21 07:00:54 UTC 2018.
Is the above information OK?
1) Yes
2) No
#? 1

You can make this change permanent for yourself by appending the line
TZ='Asia/Shanghai'; export TZ
to the file '.profile' in your home directory; then log out and log in again.

Here is that TZ value again, this time on standard output so that you
can use the /usr/bin/tzselect command in shell scripts:
Asia/Shanghai

创建软链接

1
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

验证更改

1
2
date -R
Fri, 21 Dec 2018 15:07:24 +0800

时区已经是 +0800

GitHub 虽然强大,但免费用户无法创建私有仓库,为了方便,打算用 Gogs 搭建一个 git 服务器

环境搭建

安装 Nginx

1
apt install nginx

安装 MySQL

1
apt install mysql-server

安装 Git

1
apt install git
阅读全文 »

前言

提高服务器响应速度和防止应用程序内存不足错误的最简单方法之一是添加一些交换空间。

在本指南中,我们将介绍如何将交换文件添加到 Ubuntu 18.04 服务器

但是,请注意,尽管 swap 区通常建议用于使用传统机械硬盘驱动器的系统,但使用于 SSD 可能会导致硬件加速退化。

什么是 Swap

Swap 分区(也称交换分区)是硬盘上的一个区域,被指定为操作系统可以临时存储数据的地方,这些数据不再保存在 RAM 中。

这能够增加服务器在工作“内存”中保留的信息量,当 RAM 中没有足够的空间容纳正在使用的应用程序数据时,将使用硬盘驱动器上的交换空间。

阅读全文 »

本文针对命令行使用的开发工具或自己编写的脚本设置开机启动,图形化界面的程序仅需要设置->用户与群组->登录项中即可配置

相比于 Linux 开机启动设置的简单方便–配置 rc.local 文件即可,macOS 设置开机启动略显麻烦

如果是使用 homebrew 安装软件自然不用考虑开机启动这回事,但有时候想执行自己的脚本或者有特殊需求,就不得不自己处理开机启动了

使用登录项添加可执行脚本

在用户主目录编写一个 sh 脚本,例如

tesh.sh 文件内容

1
2
3
4
#!/bin/bash

# 在用户主目录创建一个文件
touch ~/test.txt

添加可执行权限

1
chmod 755

进入设置->用户与群组->登录项,点 + 号,选择 test.sh 文件即可

重启电脑,验证是否新建了文件,如存在说明配置成功,修改该文件内容为你想要的配置

该文件将会在开机时执行,可在命令行中执行的开机启动项均可在此文件中配置

阅读全文 »

背景

在使用电脑的过程中会发现,键盘上很多按键我们平时根本使用不到,但是如果我们不小心碰到了一些按键,将会导致我们无法正常使用键盘,这种情况下,这个按键对我们没有一点好处,并且还是影响我们的使用,那么有什么办法来更改键盘按键的映射吗?其实这个方法很多,本文将给大家介绍借助注册表来修改键盘按键映射的方法

在 Windows系统中,提供了一种键盘扫描码映射方法,使你能随意地设置键盘键位的布局,这就是注册表中的 Scancode Map; 我们巧妙利用 Scancode Map 就可将普通键盘改造成随心随意的个性化键盘

原理

为了正确设置,我们有必要先了解一下 Scancode Map(扫描码映射)

Scancode Map 是注册表中

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]

中的一个二进制键值(默认没有,需新建),并且有固定的格式

Scancode Map 代码的一般格式是

hex:00,00,00,00,00,00,00,00,02,00,00,00,01,00,02,00,00,00,00,00

阅读全文 »

Vim的初始化配置 .vimrc

存放位置

macOS 环境下 vim 的初始化配置文件为 .vimrc , 通常有两个(系统版本和用户版本),一个位于 /usr/share/vim/vimrc,是整个系统vim的默认配置;另一个位于 ~/.vimrc,是当前用户的 vim 配置,会覆盖系统配置。可进入 vim,在命令模式下键入

1
2
3
:version       " 查看版本号
:echo $VIM " 查看vim具体路径
:echo $HOME " 用户主目录

~/.vimrc 有时并不存在,此时可以建立一个 .vimrc,放入用户主目录以实现当前用户的 vim 配置

阅读全文 »

在所有浏览器中,滚动条可定制性最强的当属 Webkit 内核的浏览器了,下面我们来看一下 Webkit 浏览器是如何强大的吧!

1
2
3
4
5
6
7
::-webkit-scrollbar               { /* 1 */ }
::-webkit-scrollbar-button { /* 2 */ }
::-webkit-scrollbar-track { /* 3 */ }
::-webkit-scrollbar-track-piece { /* 4 */ }
::-webkit-scrollbar-thumb { /* 5 */ }
::-webkit-scrollbar-corner { /* 6 */ }
::-webkit-resizer { /* 7 */ }
阅读全文 »

CSS3 之后,大多数浏览器已经支持 text-overflow:ellipsis,这个属性可以用来实现单行文本溢出显示省略号 ,但是它并不支持多行文本溢出显示省略号。

移动端web开发比较简单,绝大部分浏览器都是 Webkit 内核,可以直接使用 Webkit 的私有属性 -webkit-line-clamp;注意,这是一个不规范的属性。

-webkit-line-clamp 用来限制在一个块元素显示的文本的行数。为了实现该效果,它需要组合其他的 Webkit 属性。

阅读全文 »