Linux配置java的环境变量
1、找到jdk安装包的位置
2、打开profile文件# vim /etc/profile
3、添加如下的内容
1 | export JAVA_HOME=/usr/java/jdk1.8.0_212-amd64 |
4、更新配置source /etc/profile
5、使用如下命令查看是否配置成功java -version
echo $JAVA_HOME
6.注意分隔符在Linux中使用:(冒号),在Windows中使用;(分号)
常用命令
一、文件夹命令
- 创建同级目录
mkdir -p {a,b,c,d}
- 创建嵌套
mkdir -p a/b/c
- 删除同级目录
rm -rf {a,b,c}
- 强制删除嵌套目录
rm -rf dictionary
- 设置目录权限
(1) 切换目录的权限chmod 775 abc
(2)将abc的权限赋给root(组):root(用户)sudo chown root:root abc
二、用户命令
- 创建用户命令
useradd -m test
- 切换用户
su test
shell脚本
一、后台运行jar包
1 | nohup java -jar xxx.jar > log.txt & |
&是后台运行的意思,但是关闭终端会退出
nohup 关闭终端不会退出
> log.txt 是将日志消息打印到log.txt中
ubuntu安装ssh
使用命令sudo apt-get install openssh-server
进行安装。
ubuntu右键终端快捷方式
使用命令sudo apt-get install nautilus-open-terminal
进行安装。
注销登录或者重新加载文件管理器,使用命令nautilus -q
重新加载文件管理器。
kali ssh配置
kali安装之后,22端口是默认关闭的,需要自己设置开启,
使用命令sudo ufw status
查看当前系统防火墙开启情况,没有开启,使用sudo ufw enable
开启防火墙。使用命令sudo ufw allow 22
开启22端口。
一、更改配置文件
允许账号密码登录。
修改/etc/ssh/sshd_config
文件。
- 设置
PasswordAuthentication yes
,开启密码认证 - 设置
PermitRootLogin yes
,设置可以超管登录。
二、启动ssh服务
使用ssh start
报错localhost unresolve错误。需要进入到/etc/init.d/
文件夹中,使用命令./ssh start
启动。
三、设置开机自启动
使用命令update-rc.d ssh enable
四、重启系统便可以正常连接
将分卷磁盘挂载为文件夹
查询当前系统的分卷信息
sudo fdisk -l
临时挂载某个卷到文件夹中
mount [option..] DEVICE_NAME DIRECTORY
例子sudo mount /dev/sdb1 /mnt/media
查看磁盘ID
blkid
为查看磁盘命令blkid /dev/sdc
开机自动挂载
需要修改/etc/fstab
参数如下<file system>,<mount point>,<type>,<options>,<dump>,<pass>
<file system>
配置好磁盘UUID
mount point
挂载路径,这个路径必须事先存在type
硬盘的文件系统类型,ntfs、ext4、fat、vfatoption
配置磁盘选项
defaults
use default options: rw, suid, dev, exec, auto, nouser, and async
noauto
do not mount when “mount -a” is given (e.g., at boot time)
user
allow a user to mount
owner
allow device owner to mount
comment or x-
for use by fstab-maintaining programs
nofail
do not report errors for this device if it does not exist
dump
备份,默认值为0pass
1自动扫描,0不扫描
Ubuntu手动安装软件创建快捷方式
下载二进制Typora软件,想设置为markdown文件的默认打开器。
创建typora.desktop
文件放置在/usr/share/applications/
文件夹中。typora.desktop的文件内容如下。
1 | [Desktop Entry] |
创建成功之后可以在软件中心中查询到,也可以添加入收藏夹。
Ubuntu 安装证书
(1) 获得crt证书
(2) 将证书放入/usr/local/share/ca-certificates/
文件夹中
(3) 赋予证书644权限
(4) 更新证书sudo update-ca-certificates
修改dash为bash
(1) 查询当前使用壳是哪一个?ls -l /bin/sh
返回/bin/sh->dash
说明使用dash
(2) 修改为bash
,sudo dpkg-recofigure dash
在页面中选择否。
配置SSH
使用命令ssh-keygen -t rsa
生成公钥和私钥。位于~/.ssh
中。
- 使用ssh登录
ssh user@remote-host
- 使用私钥登录
ssh -i "xxxx.pem" user@remote-host
给文件夹配置软链接
ln -s /work /home/tom/desktop/work
在桌面创建一个快捷方式到根目录的work中。这样在桌面便可以快速访问work文件夹。如果桌面已经存在了一个work文件夹。则会在work文件夹内创建work文件夹快捷方式。
如果出现链接层数过多
,可能是使用相对路径,需要使用绝对路径就可以解决该问题。
shell脚本获得控制台输入
使用read name
例子:
1 | echo -n "Enter name:" |
例子2:
1 | read -p "Enter name,addr:" name addr |
Ubuntu更改默认文件夹为英文
方法一
(1)将语言调成英语,重启,提示文件夹变更。选择变更。
(2)然后再将语言调成中文,重启,提示变更,否。
方法二
(1)输入以下命令
1 | export LANG=en_US |
(2) 提示文件夹转换,确认转换。
(3) 输入命令export LANG=zh_CN
(4) 重启,提示变更文件夹,选择否。不再提示。
输入法无法切换
各项设置正确的情况下无法切换输入法,将键盘只设置为一个英文的键盘。这样才能从键盘切换到输入法,否则显示的结果就是在不同的键盘之间替换。
ubuntu时间显示到秒
开启秒显示
1 | $gsettings set org.gnome.desktop.interface clock-show-seconds true |
关闭秒显示
1 | $gsettings set org.gnome.desktop.interface clock-show-seconds false |
查看当前状态
1 | $gsettings get org.gnome.desktop.interface clock-show-seconds |
ubuntu 软件显示方块问题
ubunut的一些软件,如:资源监视器、计算器等软件出现文字都是方块的问题。
问题原因
系统使用了snap的版本的软件,需要更改为apt的版本
1 | # 系统资源管理器 |
profile、bashrc文件区别
profile
/etc/profile
系统级配置文件,对所有用户、所有终端shell都起作用。~/.profile
用户级别配置文件,对该用户的所有终端shell都起作用。
bashrc
/etc/bash.bashrc
系统级配置文件,对所有用户的bash终端起作用~/.bashrc
用户级别配置文件,对用户的bash终端起作用。
如果使用额外的终端,如zsh
终端,想要环境变量只对该zsh
起作用,需要将环境变量配置到~/.zshrc
dns
配置dns服务器路径/etc/resolve.conf
,修改里面的nameserver重启后会丢失。
ubuntu无法打开终端
Clion崩溃导致,LC_ALL=C设置入环境变量,导致locale环境全变成C了,导致终端无法打开。Clion崩溃导致,LC_ALL=C设置入环境变量,导致locale环境全变成C了,导致终端无法打开。需要将设置LC_ALL=C的地方去掉需要将设置LC_ALL=C的地方去掉,可能是在~/.profile
文件中
vim编辑修改二进制
打开二进制文件
vim -b filename
显示二进制文件内容
命令模式输入::%!xdd
,只修改左边数据有效
显示原始数据
命令模式输入::%!xdd -r
zsh和oh-my-zsh安装
使用sudo apt-get install zsh
命令安装zsh。然后上oh-my-zsh官网安装。
主题
常用主题ys
常用插件:
- z 跳转
- zsh-syntax-highlighting 用于查看命令是否正确
- zsh-autosuggestions 命令自动补全
1 | # 安装脚本 |
安装Android SDK
下载sdk之后,配置将tools文件夹和platform-tools文件设置进path环境变量。
Ubuntu安装Synergy
使用命令sudo apt-get install synergy
- 提示Failed to load module “canberra-gtk-module”。
解决方法:
1 | sudo apt-get install libcanberra-gtk-module |
- 出现system tray is unavailable, don’t close your window警示窗口。
解决方法:
1 | sudo apt-get install sni-qt |
- failed to connect secure socket
GUI界面关闭验证
1 | [General] |
joplin
https://github.com/laurent22/joplin 开源笔记,支持三端同步
joplin服务搭建
- docker 拉取镜像https://hub.docker.com/r/joplin/server
docker pull joplin/server:latest
- 配置docker的启动配置
.env
文件,最简单的配置
1 | APP_PORT=22300 |
- 启动服务
docker run --env-file ./.env -p 22300:22300 joplin/server:latest
nginx配置
可以使用最暴力的配置,所有的请求都转发到joplin服务。
1 | upstream joplin_server { |
经过上面的配置之后,访问http://localhost/joplin/api/ping
会被代理成http://localhost:22300/api/ping
linux安装postgrepsql
Centos7使用yum install postgresql-server
安装。
使用psql --version
查看版本。
安装完成之后会生成一个postgresql
的用户,但是这个时候是没办法使用的。需要完成如下步骤才能顺利的使用这个数据库。
1.使用postgresql-setup initdb
初始化
1 | $ postgresql-setup initdb |
初始化完成之后会在/var/lib/pgsql/data
生成数据库存储路径。
1 | # root @ VM_0_6_centos in /var/lib/pgsql [20:23:16] |
2.启动数据库
当前的数据库服务的状态
1 | $ service postgresql status |
启动数据库
1 | $ service postgresql start |
启动成功之后会监听5432端口
1 | $ netstat -ano | grep "5432" |
3.登录数据库
使用root登录的话会报如下错误
1 | $ psql postgres |
需要切换到postgres用户,然后直接登录。
1 | $ su - postgres |
查看数据库用户情况
1 | postgres=# \l |
4.处理root用户登录问题
修改pg_hba.conf
,将
1 |
|
修改为
1 |
|
然后就可以在root情况下登录了
1 |
|
如果需要外部ip地址访问,需要添加如下配置
1 | host all all 0.0.0.0/0 md5 |
修改postgresql.conf文件,将listent_address更改为“*”。重启服务便可以使用外部数据库管理器访问。但是需要设置用户密码。
设置数据库用户密码直接\password
的方式和通过alter user postgres with password 'postgres'
语句更改postgres用户密码。
设置之后可以使用第三方工具访问了
Nginx配置
Nginx简单的代理配置
使用Nginx做代理的时候,可以简单的直接把请求原封不动的转发给下一个服务或者内网服务。比如访问http://hello.com的时候,通过nginx负载,转发请求到http://hello2.com,http://hello3.com。负载的依据是根据weight进行判断。如果相同的权重就会有均摊请求。
简单配置如下:
1 | upstream hello_group { |
根据URL分配不同的服务
有时候需要根据不同不同url分配不同的服务,我想要访问http://localhost/joplin/login的时候,去访问joplin的服务。访问http://localhost/blog的时候,转发这个请求到blog服务。
但是joplin和blog服务是不需要前缀的,即:http://localhost/joplin/login 转发成http://localhost:22300/login。Nginx转发的时候,把这个前缀去掉就好了。
方案一 :proxy_pass后面加根路径/.
1 | upstream joplin_server { |
^~/joplin/表示匹配前缀是joplin的请求,proxy_pass的结尾有/, 则会把/joplin/*后面的路径直接拼接到后面,即移除joplin.
方案二:使用rewrite
1 | upstream joplin_server { |
注意 proxy_pass结尾没有/, rewrite重写了url。
关于rewrite定义
1 | syntax: rewrite regex replacement \[flag\] |
问题解决方案
出现301的错误,缓冲问题,客户端请求加参数,要么在后面添加斜杠。