命令 | 作用 |
---|---|
clear | 清屏 |
pwd | 显示当前路径 |
cat / more | 显示文本文档 |
uname -a | 查看当前版本 |
hostnamectl | 查看当前版本 |
cat /etc/redhat-release | 查看当前版本 |
free | 查看剩余内存 |
df -h | [查看磁盘剩余空间] |
du -sh | 查看文件夹名"dir"占用的空间 |
lsof -i:8080 | 查看8080端口是否被占用 |
find . -name “filename.txt” | 搜索filename.txt文件,包括子目录 |
groupadd abc | 创建一个名为abc的用户组 |
useradd -g abc abc | 在abc组里添加一个名为abc的用户 |
chown -R sammy ~/dir | 将目录dir的拥有者设为用户sammy |
cut -d : -f 1 /etc/passwd | 查看所有用户 |
cat /etc/grou | 查看所有用户组 |
tail -n 20 filename | 显示filename最后20行 |
chmod -R 777 dir | 将目录dir整体变为777 |
rm -rf dir | 整体删除dir |
cp -r -a ./* /dir | 将当前路径下所有文件包括子目录全部拷贝到dir |
tar -xvzf filename | 解压缩gz文件 |
gzip -d filename | 解压缩gz文件 |
unzip -x filename | 解压缩zip文件 |
zip -r filename.zip ./* | 压缩当前目录下全部内容 |
rpm -ivh filename | 安装一个包 |
rpm -Uvh filename | 升级一个包 |
rpm -e | 卸载一个包 |
nohup cmds >/dev/null 2>&1 & | 无任何输出或log,在后台运行一个cmds指令 |
nano ~/.bashrc
输入以下内容:
alias psa="psa"
psa()
{
ps -A|grep $@
}
存盘退出,执行:
source ~/.bashrc
生效后输入例如:psa bash
(就相当于ps -A|grep bash)
crontab -e
(输入这条指令后会自动打开默认编辑器,一般是vim)
然后输入:
@reboot sleep 5;/root/autoexec.sh
存盘退出。
意思是:每次系统重启后,执行autoexec.sh脚本。
fdisk -l
fdisk /dev/vdb1
(我这里为vdb1)如果是新硬盘,一般来说的默认操作流程是:
Created a new DOS disklabel with disk identifier : 选n
Select (default p): 选(p)主分区
Partition number (1-4, default 1): 选(1)个分区
First sector (2048-419430399, default 2048): 直接敲回车 (起始扇区)
Last sector, +sectors or +size{K,M,G,T,P} (2048-419430399, default 419430399): 直接敲回车
Command (m for help): p (查看一下分区设置)
Command (m for help): w (写入)
格式化:
mkfs.ext4 /dev/vdb1
(等待命令执行完成)
4. 挂载新硬盘到操作系统的某个节点上
mkdir /data
mount /data /dev/vdb1
5. 大功告成后,可用 df -h
指令再查看查看
yum install httpd.x86_64
(安装)systemctl start httpd.service
(启动)systemctl enable httpd.service
(自启)然后到浏览器那边测试一下:http://服务器ip
会出现一个Testing 1.2.3的测试页。
Apache的主页默认路径: /var/www/html/
Apache的主设置文件路径:/etc/httpd/conf/httpd.conf
dnf groupinstall 'PHP Support' -y
(安装)
systemctl restart httpd.service
(重启一下Apache即可)
dnf install mariadb-server mariadb -y
systemctl start mariadb
systemctl enable mariadb
忘记root密码,root权限被意外剥夺,看不到mysql表这种情况:
systemctl stop mariadb.service
(先关服务)/usr/bin/mysqld_safe --skip-grant-tables &
(进入安全模式)mysql -uroot
(不需要密码,直接进人)show databases;
可以看到mysql表了use mysql;
update user set password=password('yournewpasswordhere') where user='root';
flush privileges;
请访问我的另一篇博文:
https://blog.csdn.net/rockage/article/details/133759477?spm=1001.2014.3001.5502
以下为全新安装Oracle官方原版MySQL的方法:
1:为yum指令添加源
先搞清楚到底要下载哪个源,用指令:uname -a
看看服务器版本号,我这边显示的是el7
然后去这个网址:
MySQL :: Download MySQL Yum Repository
下载一个:mysql57-community-release-el7-11.noarch.rpm (对应之前的el7)
注意:如果是Centos 6,需要下载针对el6内核使用的rpm
然后用鼠标右键点击下载链接,复制绝对地址,直接用wget指令下载
(如果实在找不到绝对地址,也可以先用浏览器下载到本地再FTP到服务器也一样):
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
然后执行以下指令:
rpm -Uvh mysql57-community-release-el7-11.noarch.rpm
这个动作很快,就几秒钟的事儿。
装完之后会有一个小结,如果原机装有Mariadb或者旧版MySQL的话,可以看到
Replaced:
mysql-libs.i686 0:5.1.73-8.el6_8
会被新装这个MySQL替换(Replaced)掉。
启动服务
装完后,用以下指令开启MySQL服务:
systemctl start mysqld.service
systemctl enable mysqld.service (自启动)
systemctl status mysqld.service (查看状态)
这一步也是有可能出问题的,如果之前旧的Maroadb或MySQL在/var/lib/ 下面有mysql目录(这是mysql主数据目录,所有的数据库、表之类都存放于此),则会报错:
initialize specified but the data directory has files in it. Aborting.
好在这个问题不难解决,删除这个数据目录:
rm -rf /var/lib/mysql
删除之后,不能再去手动建立,只要执行mysql,程序会自动创建。
初始化设置
在上面的安装过程中,产生了一个临时密码,在/var/log/mysqld.log文件里,
第一步是让它高亮出来:
grep ‘temporary password’ /var/log/mysqld.log
记下这个密码。
用刚才那个临时密码登陆:
mysql -uroot -p
进去之后用这个指令改变初始密码:
ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘NewPassword’;
如果显示: Your password does not satisfy the current policy requirements
这不是大问题,只是说明密码强度不够,再想一个复杂一点的密码即可。
设置远程访问
现在整个儿MySQL基本就已经装好了,但是仅限于本地使用(对于BS结构的程序来说够了)
如果还需要用Navicat等工具远程登陆,或者一些CS结构的软件,还需要做下一步:
mysql -uroot -p (首先进入mysql服务器,用刚才设置的新密码)
mysql>use mysql;
mysql>update user set host = ‘%’ where user = ‘root’; (将root帐号的host改为%也就是说任意客户端皆可访问)
mysql>FLUSH PRIVILEGES; (全局刷新一下就OK了,现在再试试Navicat应该就能连通了)
在已经设置了root密码的情况下重新修改root密码的方法(忘记了root密码怎么办):
首先要进入安全模式
systemctl stop mysqld.service (先关mysql服务)
nano /etc/my.cnf (修改mysql配置文件)
加入一行:
skip-grant-tables
存盘退出
systemctl start mysqld.service (启动mysql)
mysql -uroot -p (不需要密码直接进入)
use mysql;
update mysql.user set authentication_string = PASSWORD(‘123456’) where User=‘root’;
FLUSH PRIVILEGES;
quit;
从mysql命令行模式出来之后,
systemctl stop mysqld.service (先关闭mysql)
nano /etc/my.cnf
去掉skip-grant-tables这一行,或者在前面加个#号注释掉 (恢复mysql正常工作状态)
存盘退出。
systemctl start mysqld.service (再重启mysql即可)
方法一:
通过dnf仓库安装nodejs和cnpm (cnpm源自淘宝,比原版npm快)
dnf install -y nodejs.x86_64
npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm install forever -g
(示例:用cnpm
装一个forever)
方法二:手动安装最新(任意版本)的nodejs:
dnf -y remove nodejs
(先卸载系统自带的nodejs)curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.5/install.sh | bash
nvm list-remote (列出所有node.js版本)
nvm install v20.9.0
npm install --global yarn (顺便装一个yarn)
export ELECTRON_MIRROR=https://npm.taobao.org/mirrors/electron/
yarn add electron -W
readlink -f $(which java)
dirname $(dirname $(readlink -f $(which java)))
dnf search jdk | egrep -- '-17'
sudo dnf install java-17-openjdk java-17-openjdk-devel
sudo alternatives --config java
1. dnf install -y wget bzip2
2. wget https://mirrorservice.org/sites/sourceware.org/pub/gcc/releases/gcc-13.2.0/gcc-13.2.0.tar.gz
3. tar xf gcc-13.2.0.tar.gz
4. cd gcc-13.2.0
5. ./contrib/download_prerequisites
6. mkdir build && cd build
7. ../configure --enable-languages=c,c++ --disable-multilib --prefix=/usr/local/gcc-13.2.0
8. make -j$(nproc) && make install (-j表示多核编译)
9. nano /root/.bashrc
10. export PATH=/usr/local/gcc-13.2.0/bin:$PATH
11. export LD_LIBRARY_PATH=/usr/local/gcc-13.2.0/lib64:$LD_LIBRARY_PATH
12. source /root/.bashrc
查看结果:
strings /usr/local/gcc-13.2.0/lib64/libstdc++.so.6 | grep GLIBCXX
Step 1 . 安装 GNOME 桌面
dnf groupinstall -y "Server with GUI"
reboot
(重启)
Step 2 . 安装 TigerVNC Server
1. dnf install -y tigervnc-server
2. cp /lib/systemd/system/[email protected] /etc/systemd/system/vncserver@:1.service
Step 3 . 首先以 root 账户登录,创建1个VNC帐号(本例为用户名 rockage ) 并设置密码
useradd -c "VNC for Rockage" rockage
passwd rockage
Step 4 — 设置 VNC Service
exit
(退出当前 root 账号)vncpasswd
(输入vnc访问密码,注意和登录密码的区别)exit
(退出当前 rockage 账号)cp /etc/tigervnc/vncserver-config-defaults /home/rockage/.vnc/config
nano /home/rockage/.vnc/config
session=gnome
securitytypes=vncauth,tlsvnc
desktop=sandbox
geometry=2000x1200
alwaysshared
nano /etc/tigervnc/vncserver.users
:1=rockage
systemctl daemon-reload
systemctl start vncserver@:1.service
systemctl enable vncserver@:1.service
Step 5 . 设置防火墙
开启防火墙:systemctl start firewalld
开放5901端口:
firewall-cmd --permanent --zone=public --add-port=5900-5901/tcp
你可能会问,为啥是5901?因为TigerVNC自身使用5900端口,而每一个VNC用户又都拥有自己的独立端口号,规定以 “5900+VNC用户编号” 为原则,刚才配置文件编号是1,那么这个独立进程的端口就是5900+1
刷新防火墙设置
firewall-cmd --reload
如果总是报错或者连不上,可以用systemctl stop firewalld
和 systemctl disable firewalld
, 干脆把防火墙先关再试试。
用nftables设置防火墙:
Centos8已经全面使用nftable了,也比较简单:
首先创建一个 nft 脚本比如:nano test.nft
,复制以下内容:
flush ruleset
table inet filter {
chain input {
type filter hook input priority 0; policy drop;
ct state established,related accept
ct state invalid drop
iif lo accept
ip protocol icmp icmp type { destination-unreachable, router-solicitation, router-advertisement, time-exceeded, parameter-problem } accept
ip protocol igmp accept
#放行端口:
tcp dport { 5000,5001, 3306, 8080, 3000, http, https} accept
}
chain forward {
type filter hook forward priority 0; policy drop;
}
chain output {
type filter hook output priority 0; policy accept;
}
}
存盘退出。
用:nft -f test.nft
加载即可。
Step 6 . 使用VNC客户端软件
下载地址:http://www.onlinedown.net/soft/251613.htm
安装很简单,一直下一步即可,打开主界面也没什么可设置的,直接在地址框输入你的服务器IP:5901,如127.0.0.1:5901 ,输入完毕后点 Connect 即可。
下载:
wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
然后用rpm安装:
rpm -ivh google-chrome-stable_current_x86_64.rpm
基本上会报一堆错误,例如:
warning: google-chrome-stable_current_x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 7fac5991: NOKEY
error: Failed dependencies:
/usr/bin/lsb_release is needed by google-chrome-stable-74.0.3729.131-1.x86_64
libXss.so.1()(64bit) is needed by google-chrome-stable-74.0.3729.131-1.x86_64
libappindicator3.so.1()(64bit) is needed by google-chrome-stable-74.0.3729.131-1.x86_64
liberation-fonts is needed by google-chrome-stable-74.0.3729.131-1.x86_64
不要着急,报错是正常的流程之一,现在用repoquery命令一个一个分析,比如:
repoquery --nvr --whatprovides libappindicator3.so.1
系统显示:
libappindicator-gtk3-12.10.0-13.el7
发现少了这个包,那么我们直接用dnf去安装:
dnf install libappindicator-gtk3-12.10.0-13.el7 -y
其他依葫芦画瓢都这么一个一个用dnf安装即可,唯一需要注意的是,/usr/bin/lsb_release 这个包是这样安装的:
dnf install *lsb* -y
对于我的系统而言,我需要安装以下包:
yum install libXScrnSaver-1.2.2-6.1.el7 -y
yum install libappindicator-gtk3-12.10.0-13.el7 -y
yum install liberation-fonts-1.07.2-16.el7 -y
yum install *lsb* -y
装完之后,再输入一遍:
rpm -ivh google-chrome-stable_current_x86_64.rpm
这回终于不报错了,安装成功。
回到桌面,发现桌面的 Internet 分类里已经有了 Chrome 的图标了。
如果无法启动,说明你现在使用的是root账户,因为chrome默认是不能给root用户运行的。打开文件管理器,找到 /usr/share/applications/路径下的Chrome图标,右键属性,然后把Command改成:
/usr/bin/google-chrome-stable %U --no-sandbox
或者直接在桌面的Terminal里面用命令行启动:
/usr/bin/google-chrome-stable --no-sandbox
在 /usr/lib/systemd/system 下面创建一个文件,这个文件名即是我们要设置的服务,例如现在想自定义一个服务rockage:
nano /usr/lib/systemd/system/rockage.service
在此文件中输入以下内容:
[Unit]
Description=rockage
After=network.target
[Service]
Type=forking
ExecStart=启动命令或脚本
ExecReload=重新启动的命令或脚本
ExecStop=停止运行的命令或脚本
PrivateTmp=true
[Install]
WantedBy=multi-user.target
存盘退出。
ExecStart,ExecReload,ExecStop 这三个选项分别对应启动、重启、停止,如果命令够简单的话,直接输入就行了,一个命令不够,中间还可以用&&连接。如果命令行实在太复杂或者还需要做逻辑判断等,将需要运行的指令放到一个可执行脚本里,标明脚本路径即可。
注意:Type=forking 这行的意思是,像 nginx 那种输入命令后程序本身就可以自动驻留内存的就用forking。而其他前台程序,就是指那些运行完毕后(或者按下CTRL+C)不自动驻留内存的程序,最简单的比如说 ls 这一类,此处就用Type=simple
举一个实例,比如我的Start、Reload、Stop分别对应3个脚本:
ExecStart=/root/myweb/start.sh
ExecReload=/root/myweb/restart.sh
ExecStop=/root/myweb/stop.sh
查看一下Start脚本,cat /root/myweb/start.sh
:
#!/bin/bash
forever start ./bin/www
此脚本自动运行node.js的forever,作用是将nodejs制成的网站置于后台运行。注意,服务脚本第一行是 #! ,这不是注释,而是标明这个脚本是由哪个shell 来执行,如我们经常见到的 #!/bin/bash,这表示此脚本由bash来解析。
输入以下命令:
systemctl daemon-reload
systemctl start rockage
如果出现绿色的:Active: active (running),说明正常,如果是红色的则表示运行有误,需要排查,另外还可以通过:
journalctl -fu rockage
命令查看完整 log 以定位故障点。一切无误后,输入:
systemctl enable rockage
将 rockage 写入系统服务,这样每次重启后系统将自动运行它。
查看service启动顺序:
systemctl list-dependencies
<可选项 --after service-name
或 --before service-name
> ,
例如:systemctl list-dependencies --after rockage
查看所有已启动的服务:
systemctl list-units --type=service
或者
systemctl list-units --type=target
在service里设定环境变量:
注意:service 里的环境变量和系统环境变量是独立的,如果某些程序需要依赖环境变量的话,必须单独在 service 文件的 [Service] 一节里显式标记:
Environment="PATH=/usr/local/bin:/usr/bin:/bin"
EnvironmentFile=/etc/my_service.env
systemctl start service-name (启动)
systemctl stop service-name(停止)
systemctl restart service-name(重启)
systemctl enable service-name (设为自启动)
systemctl disable service-name (取消自启动)
systemctl mask service-name (完全屏蔽自启动)
systemctl status service-name (服务状态)
journalctl -fu service-name (完整的服务状态log)
如果系统总是报告这个错误:
[/usr/lib/systemd/system/rockage.service:5] Missing ‘=’.
多半是由于文件没有以utf8保存导致。
这种情况下,随便在 /usr/lib/systemd/system/ 目录下找个“模板”, cp 复制成你自己的,再重新编辑就好。
参考我的博文:
https://blog.csdn.net/rockage/article/details/99216552
cat /proc/version
查看系统版本(我的是64位)
访问:
https://syncthing.net/downloads/
下载64位Linux版并解压:
wget https://github.com/syncthing/syncthing/releases/download/v1.8.0/syncthing-linux-amd64-v1.8.0.tar.gz
tar zxf syncthing-linux*
cd syncthing-linux*
cp syncthing /usr/local/bin
syncthing (启动Syncthing)
出现INFO: Detected 0 NAT services 的时候,
按CTRL+C退出程序,编辑配置文档:
nano /root/.config/syncthing/config.xml
搜索:127.0.0.1:8384 改为 0.0.0.0:8384
存盘退出。
重新启动Syncthing,输入:
syncthing
这次不要按CTRL+C退出,直接去浏览器访问8384端口:
比如:http://127.0.0.1:8384 ,如果能出现WebUI,说明工作正常。
下载SyncTrayzor:https://github.com/canton7/SyncTrayzor/releases/tag/v1.1.24
安装后进入SyncTrayzor,删除默认的Default Forder,新建一个Sync的共享目录,物理地址是:D:\Sync
我的实际情况是,需要同步公司电脑和家里电脑的数据,因为这两台电脑都做不到永不关机,因此需要通过一台VPS来做中转:
注意:本质上来说,Syncthing 并没有服务器/客户端的概念,任何一个节点既是服务器也是客户端,因为本例用了一台VPS作为一个永不关机的常备,姑且把它称为服务器。
现在,打开浏览器,输入VPS地址:http://ip:8384
在服务器的WebUI进行设置,删除默认的Default forder,新建一个Sync的共享目录,物理地址是:/root/Sync
添加远程设备:
现在回到家里的电脑,也就是HOME-PC这边
WARNING: Failed to initialize config: Config file version (31) is newer than supported version (29). If this is expected
去官网下载最新版的syncthing.exe,拷贝到:C:\Users\rocka\AppData\Roaming\SyncTrayzor里即可
VPS上如果用CTRL+C中断Syncthing的命令行窗口,服务将终止,后台运行方法:
nohup syncthing &> /dev/null &
这种情况下如果需要退出,用 killall syncthing
(杀掉syncthing 进程)即可。
开机启动脚本在这个位置:
/安装包解压路径/syncthing-linux-amd64-v1.8.0/etc/linux-systemd/system
将这个文件拷贝到系统服务里(我在/root/syncthing下解压的安装包):
cp /root/syncthing/syncthing-linux-amd64-v1.8.0/etc/linux-systemd/system/[email protected] /usr/lib/systemd/system
将Syncthing设为root用户的专属服务:
mv /usr/lib/systemd/system/[email protected] /usr/lib/systemd/system/[email protected]
编辑这个文件:
nano /usr/lib/systemd/system/[email protected]
将:
ExecStart=/usr/bin/syncthing -no-browser -no-restart -logflags=0
改为:
ExecStart=/usr/local/bin/syncthing -no-browser -no-restart -logflags=0
存盘退出。
执行以下命令:
systemctl daemon-reload
systemctl restart syncthing@root (启动服务)
systemctl enable syncthing@root (设为开机启动)
注意:此方案不需要安装SyncTrayzor,很轻量,
默认Sync配置文件和数据库在:
C:\Users\rocka\AppData\Local\Syncthing
将它Copy到其他位置,比如:
D:\SyncRoot
用记事本编辑一个文本文档:
@ECHO OFF
%1 start mshta vbscript:createobject("wscript.shell").run("""%~0"" ::",0)(window.close)&&exit
start /b syncthing.exe -config="D:\SyncRoot\Syncthing.conf" -data="D:\SyncRoot\Syncthing.conf\index-v0.14.0.db" -no-browser
存盘为一个批处理文件,比如:start-sync.bat
再将这个bat文件设为自启动即可,
如果需要进入UI,浏览器访问:http://127.0.0.1:8384/就行了
failed to setup inotify handler.
编辑文件:nano /etc/sysctl.conf
加一行:
fs.inotify.max_user_watches=204800
就可以了,需要重启。
前后用过Seafile 和 Nextcloud方案,这两者都是正儿八经的云盘,功能繁多,但是体型也很庞大,部署起来很麻烦。如果应用场景仅仅是需要同步一下公司电脑和家里电脑的话,犯不上用这两者。Syncthing不是云盘,它就是一个同步器,可以让你在公司没干完的活同步到家里的电脑里继续完成。轻量、简单、部署方便,关键是传输速度比前两者快!
在nginx.conf 里增加一节: location /files { }
events {
worker_connections 1024;
}
http {
server {
listen 80;
server_name localhost;
root html;
location /files {
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
alias /usr/local/nginx/html/files/;
charset utf-8;
}
}
}
新建一个目录: /usr/local/nginx/html/files
将需要共享的文件或者目录 ln 到 /usr/local/nginx/html/files
比如: ln /home/data /usr/local/nginx/html/files/data
注意权限,否则只能显示无法下载(报403错误):
chown -R www:www /home/data
然后用浏览器访问: http://你的网站地址或IP地址/files 即可