当前位置: 首页 > 编程日记 > 正文

基于虚拟机ubuntu的linux和shell脚本的学习,以及SSH远程登陆实战

简介

特点

是一款操作系统,跟windows,macos一样,有下面的特点

简单和高效,一切皆文件,所有配置都通过修改文件解决,不需要繁琐的权限和设置

权限高,把所有细节都交给用户,可完全自定义

安全,所有程序只有自己执行才会启动

分类

1、debian系主要有Debian,Ubuntu,Mint等;

2、redhat系主要有RedHat,Fedora,CentOs等,

3、其它有Slackware,Gentoo,Arch linux,LFS,SUSE等。

4、如果开发用,推荐redhat系,业内公司的服务器多用centos,考虑到平时使用,那么就选择fedora,可以选择最新的发行版。

5、如果简单用加开发,可以选择debian系,推ubuntu,mint。

6、如果是技术狂型,那么就推荐Gentoo,Arch linux,LFS,Slackware等

下面教程以ubuntu为例

安装

在阿里云或清华镜像网站下载到iso,学习时最好使用desktop版

在vmware直接创建典型,跟着操作

安装时最好选英文,一定要记住设置的密码,如000000,防止时间太久忘记,忘记了也可以去搜索对应解决方法

shell&terminal

shell是一种应用程序,帮助用户和操作系统交互

terminal是一个交互界面,用于获取输入,交给shell执行,将输出展示在终端

而应用程序按是否有图形化界面分两种:

CLI(Command Line Interface)和GUI(Graphical User Interface)

即命令行和图形界面

Shell是一类程序,有CLI形式(如sh,bash,zsh;cmd,powershell等),也可以有GUI形式的(如Windows资源管理器explorer.exe等)

文件系统

目录结构

linux哲学 : 一切皆文件

执行ls / 查看根目录得到下面结果

ls.png

按树状目录

directiry.jpg

目录按找功能大致分为

通用数据

/bin Binaries,系统的二进制文件,存放着常用的命令,二进制文件由操作系统直接执行
/lib Library,存放动态链接库,类似windows中的dll
/var variable,习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
/srv server, 该目录存放一些服务启动之后需要提取的数据
/usr unix shared resources,共享资源,大部分程序和文件都存在这里面,常用如下
/usr/src  /usr/bin /usr/sbin 分别是源码,普通用户的二进制文件,超级用户的二进制文件
/opt optional,可选目录,默认为空
/tmp temporary,存放一些临时文件
/lost+found,当系统非法关机后,这里就存放了一些文件

用户数据

/home 普通用户
/root 超级用户

操作系统

/boot linux启动时的一些连接文件以及镜像文件
/dev device,存放Linux 的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的
/etc 存放所有的系统管理所需要的配置文件和子目录
/media 系统自动识别一些设备,例如U盘,光驱等等.系统会把识别的设备挂载到这个目录下
/proc Processes,是一种伪文件系统,存储的是当前内核运行状态,它是系统内存的映射,并不在硬盘上
/run run是一个临时文件系统,存储系统启动以来的信息.当系统重启时,这个目录下的文件会被删掉或清除
/mnt mount,系统提供该目录是为了让用户临时挂载别的文件系统
/selinux Redhat/CentOS特有的安全功能规则的目录

文件操作

所有指令可以通过man command的形式查看用法(man:manual,命令的手册页面)

目录

目录分类

绝对目录: 从/开始,目录的全名

相对目录: 从当前开始.表示当前目录,..表示父级目录

特殊目录: ~表示当前用户目录

打印

pwd (print working directory),即打印当前目录

ls (list directory contents).列出目录内容

可选参数
-a 显示所有文件及目录(“.”开头的隐藏文件也会列出),-A可以不列出`.和..`
-l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
-t 将文件依建立时间之先后次序列出
-F 在列出的文件名称后加一符号;例如可执行档则加 "*", 目录则加 "/"
-R 若目录下有文件,则以下之文件亦皆依序列出

多个参数可以连写,如ls -al /
切换
cd [destination] 可以用tab补全目录
管理

创建目录 mkdir [-p] directory_name 如果创建多级目录,可用-p自动创建缺失的父目录

删除目录 rmdir [-p] directory_name ,只能删除空目录,要删除文件要用rm命令

文件

创建
touch file_name 
复制和移动
cp [options] source destination
options
    -i 在覆盖已有文件之前询问是否覆盖
    -r 若给出的源文件是一个目录文件,将复制该目录下所有的子目录和文件
    
mv [options] source destination
options
    -i 执行覆盖前询问
    -n 不执行覆盖
    -u 当源文件比目标文件修改时间更晚或目标不存在时,才执行移动
删除
rm [options] [file or directory]
options
    -i 删除前询问
    -r 递归地删除所有子目录和文件
    -f 强制删除,不给出任何提示
    -v 显示详细的删除过程
shell没有回收站,rm -rf谨慎使用
显示
cat [options] file...
options
    -n 加上行号
    -s 将连续两行以上的空白行替换为一行
如果file不止一个文件,则会将它们连接起来
过滤显示
grep [options] [想要匹配的正则表达式] [文件或目录...]
options
    -A [n] 除了显示匹配的那一行之外,还显示该行之后的n行(after)
    -B [n] 除了显示匹配的那一行之外,还显示该行之前的n行(before)
    -C [n] 除了显示匹配的那一行之外,还显示该行之前和之后的n行(contest)
    -c 计算总匹配的行数
    -r 查找目录而非文件时,必须加上这一参数,否则会报错
    -e 使用正则表达式进行匹配,默认也是这样
    -E 使用拓展的正则表达式进行匹配
    -i 忽略字符大小写的差别
    -l 列出含有匹配成功内容的文件名
    -n 在显示匹配的行之前,标示出该行的行号
    -v 显示不包含匹配表达式的所有行,相当于反向选择

正则表达式用单引号括起来

vim

三种模式

命令模式(command),进入时的默认模式,按下esc进入

输入模式(insert),按下i进入

底线命令模式(last line): 按下:进入,常用q和wq(退出和保存并退出)

命令模式

  • h i j k 左下上右移动光标
  • i – 切换到输入模式,在光标当前位置开始输入文本。
  • : – 切换到底线命令模式,以在最底一行输入命令。
  • x – 删除当前光标所在处的字符。
  • o:在当前行的下方插入一个新行,并进入插入模式。
  • O – 在当前行的上方插入一个新行,并进入插入模式。
  • dd – 删除当前行。
  • yy – 复制当前行。
  • p(小写) – 粘贴剪贴板内容到光标下方。
  • P(大写)-- 粘贴剪贴板内容到光标上方。
  • u – 撤销上一次操作。
  • Ctrl + r – 重做上一次撤销的操作。
  • :w – 保存文件。
  • :q – 退出 Vim 编辑器。

用户管理

用GID(group)和UID(user)来区分, 组用来表示拥有相同权限的一类用户,通过root用户来管理

root

su,switch user

sudo superuserdo

切换到root模式就不需要每次都sudo了,方法如下

  1. 设置root密码 sudo passwd root
  2. 切换用户 su root

普通用户

下面都需要切换到root用户才能执行

新建

sudo useradd [options] username
options
    -m 创建用户的主目录
    -d 指定用户的主目录(如果不使用默认的话)
    -g 指定用户登录组的GID或组名
    -p 指定默认密码
    -s 指定用户登录的shell

删除

sudo userdel [options] username
options
	-r 同时删除用户主目录

修改

sudo usermod [options] username

跟新建一样,如下,将eesast的默认shell从sh修改成了bash

usermod -s /bin/bash eesast

查看

可以通过查看/etc/passwd文件来查看当前系统中的全部用户和属性

cat /etc/passwd

每行用户信息都以 “:” 作为分隔符,划分为7个字段,每个字段所表示的含义如下:用户名:密码(被隐藏):UID:GID:备注(在创建用户时或修改用户时添加):主目录:默认Shell

eesast:x:1001:1001::/home/eesast:/bin/bash

密码

passwd [options] 修改自己的密码,需要知道自己的现有密码
sudo passwd [options] username 修改别人的密码,需要超级用户权限

用户组

一个组中可以有多个用户,一个用户也可以在多个组中

跟用户操作一样

新建用户组: groupadd
修改用户组: groupmod
删除用户组: groupdel
切换用户组: newgrp
查看用户所属的组: groups username

用户权限

即用户组对该目录下的文件具有什么条件

查看

ll (约等于 ls -al)ls -l

得到若干条

drwxr-xr-x 3 root root 4096 May 18 2022 ../

第一段的 drwxr-xr-x 表示文件类型及权限:

第一位表示类型 d:目录 -:文件 l:链接

后面每三位为一组,分别表示属主权限,属组权限,其他用户权限

r,w,x代表拥有read,write,excuate权限,-代表没有

第二段代表有3个硬链接指向该文件对应的节点

第三段表示文件属主为root,第四端表示文件属组为root

第五段表示文件大小为4096,第六段表示修改日期和文件名

修改

修改文件权限

chmod : change mode,修改文件的权限,语法如下

chmod [–R] [u/g/o/a][+/-/=][r/w/x] [file]
	-R 表示递归修改
	 u:user | g:group | o:owner | a:all
	 + 增加 - 减少 = 设定
	 r:读 | w:写 | x:执行

例子如下

为所有用户赋予1.txt的执行权限
chmod a+x 1.txt
为属主赋予读、写、执行权限,删除属组和其他用户的执行权限
chmod u=rwx,g-x,o-x 1.txt

因为选项有限,所以可以用位来表示,即用数字表示权限

上面每个选项都有3个独立的选项,都可以用三位来表示

例如,为所有用户赋予所有权限,用编码方法表示为:

chmod 777 1.txt

修改文件属主/组

chown : change owner

chgrp : change group

sudo chown [–R] [owner] [file]
sudo chown [-R] [owner]:[group] [file]

系统管理

磁盘管理

常用三个命令

  • df (disk free):列出文件系统的整体磁盘使用量
  • du (disk used):列出文件或目录的磁盘空间使用量
  • fdisk :用于磁盘分区

查看使用量

df

df [options] [file or directory path]
options
    -h 以人们较易阅读的 GB, MB, KB 等格式自行显示
    -a 列出所有的文件系统
    -T 显示文件系统格式
df命令会把file or directory path所在的文件系统的磁盘用量展示出来

du

du [options] [file or directory path]
options
    -h 以人们较易读的容量格式 (G/M) 显示
    -a 列出所有的文件与目录容量,因为不指定文件时默认仅统计目录的容量
    -s 列出总量,而不列出每个目录占用容量
du命令会把file or directory path自身占用的磁盘空间大小展示出来,不指定时默认为当前目录

分区

sudo fdisk [option] [device name]
option -l 可以把整个系统内能够搜寻到的装置的分区均列出来

格式化

mkfs [option] [device name]
option: -t [filesystem] 将指定的磁盘格式化为指定文件系统格式

磁盘挂载与卸载

mount [device name] [directory] # 将文件系统挂载到某个目录下
umount [device name or directory] # 将某个文件系统或者某个目录挂载的文件系统卸载

系统管理

查看CPU使用

会出现实时更新的列表

top

查看进程

ps : process status

ps [options]
options 
    -a 列出所有的进程(包括其他用户的)
    -u 显示较详细的信息
    -x 也显示没有控制终端的进程

终止进程

kill指令用于向进程发送信号,最终如何响应由该进程决定。一般用作“杀死”一个进程,但无法“杀死”系
统进程和守护进程。

kill -l # 列出全部可以发送的信号名称和编号

kill [options] [PID]
options 
    -s [要发送的信号名称或编号] # 如不指定该项参数,默认发SIGTERM(15),一般可终止进程
    -u [用户名] 向指定用户的所有进程发送信号

软件管理

在不同的linux发行版中,有不同的包管理工具,常见下面两个

debian系列的apt (Advanced Package Tool)

redhat系列的yum(Yellowdog Updater, Modified)

拿apt举例

安装

sudo apt install [package name...] # 可以一次性安装多个软件包

卸载

sudo apt remove [package name] # 卸载软件包
sudo apt autoremove # 清理不再使用的依赖和库文件

更新

sudo apt update # 列出所有可更新的软件清单
sudo apt upgrade # 升级全部可升级的软件包
sudo apt upgrade [package name...] # 指定升级软件包
sudo apt full-upgrade # 升级全部可升级的软件包,并且在升级前将旧的包先卸载

查询

apt list --installed # 列出所有已安装的软件包
apt list --all-versions # 列出所有已安装的软件包的版本信息
sudo apt show [package name] # 显示指定软件包的具体信息
sudo apt search [keyword] # 查找可供安装的软件包

shell

查找文件

find [path] [options]
path是要查找的目录路径,可以是多个,未指定则默认为当前目录
options
    -name [name] 按文件名查找,支持通配符,-iname会忽略大小写
    -type [type] 按文件类型查找,f(普通文件),d(目录)-path [p] 路径符合 p 的文件
    -amin [-n] 在过去 n 分钟内被读取过的文件
    -size [+nM] 大小大于 n M的文件

重定向

输入

command < file #将指定的文件内容作为命令的输入
command << string #从标准输入设备(键盘)中读入,直到遇到string才停止

输出

command  > file 将命令执行的标准输出结果(stdout)重定向输出到指定的文件中,会覆盖文件
command 2> file 同上,错误输出结果(stderr)重定向到此
command &> file 将二者同时重定向
command 2>&1 	>&表示将前面的输出2重定向到后面的文件描述符1中,这里 2>&1,即stderr重定向到stdout

command >>file 同理,会追加文件

管道

用|,将多个命令连接到一起,将前一个命令的输出作为后一个命令的输入

例如

ls -l | grep "txt"

清空

终端输出太多了,清空一下

clear

shell脚本

在shell中运行的脚本程序,用分号和换行来分割不同命令

变量

变量名和等号之间不能有空格

单独

a=1 	#定义
unset a	#删除
a=2		#修改,通过覆盖定义实现
echo $a	#显示

数组

array=(value0 value1 value2 value3)
echo ${array[0]}
echo ${array[@]} #遍历

控制

分支

if condition1 then
command1
elif condition2 then
command2
else
commandN
fi

循环

for var in item1 item2 ... itemN
do
command1
command2
...
commandN
done
for (( i = 1; i <= 10; i++ )) # 需要使用双括号,变量定义可以有空格
while condition
do
command
done

函数

function test(){
    echo "参数1: ${1} !" # 通过${n}来获取传入函数的第n个参数
    echo "参数10: ${10} !" # 双引号括起来的字符串中可以引用变量
    n=$((${1}+${10}))
    return $n # 如果不加return,则返回值为最后一条命令的结果
}

test 1 2 3 4 5 6 7 8 9 10 # 调用函数时依序传递参数
echo $? # 可以通过变量$?来获取函数的返回值或者上一条命令的结果

运行

./test.sh # 注意不能写成test.sh,否则会去环境变量中查找

shell环境变量

环境变量是存储有关 shell 的工作环境的数据,以便程序或 shell 中运行的脚能够访问到它们

系统会创建好一些环境变量,我们在安装新程序等操作时也要留意是否需要设置环境变量,否则会出现“command not found”的错误

查看

env # 查看全部全局变量
printenv HOME # 查看个别全局变量(HOME)
echo $HOME # 查看个别全局变量(HOME)

常用环境变量

  • HOME :当前用户的主目录
  • PATH : shell 查找命令的目录列表,由冒号分隔
  • PWD :当前工作目录

设置

临时设置

variable="test"
export variable # 导出环境变量
unset variable # 删除环境变量

长期设置

export PATH=/usr/local/src/mongodb/bin:$PATH

SSH

secure shell,远程登陆会话常用的安全协议,数据进行压缩,加密chuan’shu

实战

确认虚拟机ip地址

接下来演示主机windows连接到虚拟机ubuntu上的

首先是用ifconfig确认虚拟机的ip地址,需要安装net-tools

然后输出的ens33下的inet就是虚拟机的内网ip地址了

配置虚拟机SSH

  • 安装openssh-client:sudo apt install openssh-client
  • 安装openssh-server:sudo apt install openssh-server
  • 启动ssh-server:sudo /etc/init.d/ssh start
  • 确认ssh-server工作正常:netstat -tpl
    如果你看到了有ssh的字样,就说明ssh正在运行

主机连接虚拟机

打开cmd输入

ssh username@192.168.x.x

得到

The authenticity of host '192.168.x.x (192.168.x.x)' can't be established.
ED25519 key fingerprint is SHA256:4MTn1ZNTkGQoN8ZEERWfqdhoTV0yuLnLhknyDtXGHfY.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? 

然后输入yes即可连接

漫画解释

看完前面linux的各种知识,可以来看看来自turnoff的漫画,来巩固一下

结构

LinuxStructure.jpg

解释

LinuxExplain.jpg

POSIX

特点

简介 : POSIX即Portable Operating System Interface for UNIX”,由IEEE提出的一组标准,用于定义UNIX操作系统的接口。

产生原因 : 不同的操作系统,会提供不同的接口函数来实现系统调用,导致跨平台的难度增大

功能全面 : 而POSIX的标准涵盖了各种操作系统功能,包括文件系统、进程控制、系统调用等。

多平台,多语言 : 虽然POSIX最初是为UNIX设计的,但许多其他操作系统,包括Linux、macOS等,也采纳了POSIX标准或其变体。POSIX支持多种语言,但时由UNIX定义的,所以C语言是其正统血脉

功能

  1. 文件系统操作: 包括文件和目录的创建、删除、读取、写入、定位和权限管理等。
  2. 进程控制: 包括进程的创建、终止、等待、信号处理以及进程间通信等。
  3. 用户和组管理: 包括用户和组的创建、删除、以及权限管理等。
  4. 系统调用: 提供了直接访问操作系统核心功能的接口,例如内存分配、文件 I/O、进程管理等。
  5. 信号处理: 允许程序捕捉和处理来自操作系统的信号,以便响应异步事件。
  6. 线程控制: 包括线程的创建、同步、销毁等。
  7. 网络操作: 包括套接字编程、网络通信等。
  8. 时间和定时器: 包括获取系统时间、定时器的设置等。
  9. 共享内存: 允许多个进程共享一块内存区域。
  10. 互斥锁和条件变量: 用于多线程编程中的同步和互斥。

日常使用

连接网络

有的时候ubuntu安装后却没有网络,可能是因为电脑网络没有共享

虚拟机会虚拟几个专用网络连接来模拟不同的网络,我们只要把主机网络与这些虚拟专用网络共享就好

需要两步: 设置虚拟机的专用网络,设置电脑的共享

虚拟机->属性->网络适配器->自定义->VMnet8->确定

电脑->找到网络适配器设置->打开电脑连接的网络的属性->共享->勾选允许其他用户通过此计算机的internet连接来连接->选择家庭网络连接VMnet8->确定

这个时候打开firefox搜索应该就可以了

安装中文输入法

直接浏览器搜搜狗输入法,有教程,跟着教程走就行了

ctrl+space切换输入法

共享剪切板

只需要安装VMtools即可解决

首先,把所有硬盘链接方式改成使用物理驱动器

  1. 连接 : 然后启动虚拟机,工具栏->虚拟机->安装VMtools->然后会自动挂载安装文件的,看文件夹会多一个VMwate tools
  2. 右键单击类似于 VMwareTools.x.x.x-xxxx.tar.gz 复制到桌面后再提取到桌面,然后执行下面命令
su root
cd  Desktop/vmware-tools-distrib
./vmware-install.pl #第一个yes后全部默认
reboot

如果安装后无法共享剪切板

apt-get update
sudo apt-get install open-vm-tools-desktop

替换镜像源

默认的源在国内访问不到或者速度极慢,所以我们替换成清华源或阿里源

注意替换需要根据找到对应自己版本的源,即更换sources.txt的内容

首先浏览器搜索ubuntu 清华源 清华镜像 然后根据自己的版本,选择对应的源复制

然后就是如下方更换源,先备份,再修改

cd /etc/apt/
cp sources.list sources.list_bak
vi sources.list

相关文章:

【Linux之升华篇】Linux内核锁、用户模式与内核模式、用户进程通讯方式

alloc_pages(gfp_mask, order),_ _get_free_pages(gfp_mask, order)等。字符设备描述符 struct cdev,cdev_alloc()用于动态的分配 cdev 描述符,cdev_add()用于注。外,还支持语义符合 Posix.1 标准的信号函数 sigaction(实际上,该函数是基于 BSD 的,BSD。从最初的原子操作,到后来的信号量,从。(2)命名管道(named pipe):命名管道克服了管道没有名字的限制,因此,除具有管道所具有的。

Ubuntu下安装和配置Redis

找到 /ect/redis/redis.conf 文件修改如下:注释掉 127.0.0.1 ,如果不需要远程连接redis则不需要这个操作。使用客户端向 Redis 服务器发送一个 PING ,如果服务器运作正常的话,会返回一个 PONG。默认情况下,Redis服务器不允许远程访问,只允许本机访问,所以我们需要设置打开远程访问的功能。执行sudo apt-get install redis-server 安装命令。查看 redis 是否启动,重新打开一个窗口。停止/启动/重启redis。

linux常用操作指令—— 查看磁盘、内存使用情况(df、du、free、top)

显示指定磁盘文件的可用空间。如果没有文件名被指定,则所有当前被挂载的文件系统的可用空间将被显示。默认情况下,磁盘空间将以 1KB为单位进行显示,除非环境变量 POSIXLY_CORRECT 被指定,那样将以512字节为单位进行显示。free指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等。当文件系统也确定删除了该文件后,这时候du与df就一致了。实例4:显示目前磁盘空间和使用情况 (最常用)top:“实时查看” ,按。退出 (实时动态显示)

Linux下netstat命令详解&&netstat -anp | grep 讲解

Netstat是控制台命令,是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。

Linux命令——根据端口号查进程

查出的数据第二列(16615)是elasticsearch的进程号。通常我们会根据端口号查进程号,或者通过进程号查端口号。linux环境下,我们常常会查询进程号pid。最常用ps -ef |grep xx。根据端口port查进程。根据端口port查进程。根据进程pid查端口。根据进程pid查端口。

Linux搜索文件&搜索文件名&替换文件内容

locate是Linux系统提供的一种快速检索全局文件的系统命令,它并不是真的去检索所以系统目录,而是检索一个数据库文件locatedb(Ubuntu系置/var/cache/locate/locatedb),该数据库文件包含了系统所有文件的路径索引信息,所以查找速度很快。time结尾的选项,其单位为天,min结尾的选项其单位为分钟,这些选项的值都为一个正负整数, 如+7,表示,7天以前被访问过的文件,-7表示7天以内被访问过的文件,7表示恰好7天前被访问的文件。:快速返回某个指定命令的位置信息。

[Ubuntu 22.04] Docker安装及使用

容器的生命周期由用户控制,用户可以选择手动删除容器或让其保留在系统中以供之后使用。选项允许你在容器内部创建一个交互式的终端会话,使你可以像在本地终端一样与容器进行交互。你可以在容器内执行命令,查看输出并输入命令。镜像拉取完成后,可以使用以下命令创建并启动一个基于 Ubuntu 20.04 镜像的容器。列出所有正在运行的容器,并显示它们的容器ID、镜像、命令、创建时间、状态等信息。以下命令可以中止容器,改命令将向容器发送一个停止信号,使其正常停止并退出。这将显示所有容器的列表,包括正在运行的和已停止的容器。

C程序的内存空间布局(栈、堆、数据区、常量区、代码区)

较详细的介绍了栈、堆、数据区、常量区、代码区

给服务器开通telnet的流程

但一些特殊场景下,比如要升级ssh,ssh不能用时,需要使用telnet,用过要关闭此服务。需要首先安装,如果telnet-server服务在xinetd之前安装了,要先删除telnet-server,再安装xinetd。安装顺序:xinetd--》telnet--》telnet-server。安装顺序:xinetd--》telnet--》telnet-server。2、卸载rpm包(如果已经安装了,又不清楚顺序,可以都卸载后统一安装)注意:telnet-server服务启动依赖xinetd服务,

使用DockerFile构建镜像与镜像上传

首先Dockerfile 是一个文本格式的配置文件, 用户可以使用 Dockerfile 来快速创建自定义的镜像。

Centos系统上安装PostgreSQL和常用PostgreSQL功能

PostgreSQL安装成功之后,会默认创建一个名为postgres的Linux用户,初始化数据库后,会有名为postgres的数据库,来存储数据库的基础信息,例如用户信息等等,相当于MySQL中默认的名为mysql数据库。权限代码:SELECT、INSERT、UPDATE、DELETE、TRUNCATE、REFERENCES、TRIGGER、CREATE、CONNECT、TEMPORARY、EXECUTE、USAGE。为了方便我们使用postgres账号进行管理,我们可以修改该账号的密码。

linux切换root用户su - root和su root的区别

通过tty客户端登陆的shell就是login shell,通过在图形界面使用ctrl+shift+t的方式新建的shell是no login shell。登录的流程,会执行 /etc/profile,/etc/profile.d/下定义的*.sh都会执行。su - root,产生一个登录shell去执行后面的指令。no login shell 读取的文件和顺序为:/etc/bashrc和~/.bashrc。su root,产生一个非登录交互shell,非登录交互shell,只执行用户目录下。

轻松管理Linux磁盘空间命令:df

通过使用--output选项,可以自定义df命令的输出格式,选择显示的列以及它们的顺序。这对于筛选特定信息以便进一步处理非常有用。本文我们介绍了Linux系统上的df命令,包括基本用法、进阶用法、实际案例和场景应用,以及一些实用技巧和注意事项。df命令是系统管理中的一个重要工具,能够帮助用户有效管理磁盘空间,预防和解决潜在问题。在实际使用中,请根据具体情况选择合适的df命令选项和参数,并结合其他命令,以获取更全面的系统信息。

Linux grep命令教程:强大的文本搜索工具(附案例详解和注意事项)

grep(Global Regular Expression Print)命令用来在文件中查找包含或者不包含某个字符串的行,它是强大的文本搜索工具,并可以使用正则表达式进行搜索。当你需要在文件或者多个文件中搜寻特定信息时,grep就显得无比重要啦。

保持Python程序在Linux上持续运行的几种方法

主要是用来定时执行任务的,但你也可以利用它来监控你的Python脚本是否正在运行,并在需要时重新启动它。是一个非常实用的命令,它可以让你的Python脚本在你退出shell后继续运行。总结起来,根据你的具体需求和环境,你可以选择以上任何一种方法来保持Python程序在Linux上的持续运行。使用这些工具,你可以随时断开SSH连接,而不用担心脚本会停止运行。通过这种方式,你可以安全地关闭终端,而脚本会继续在后台执行。这样,你的Python脚本就会作为系统服务运行,并且会在系统启动时自动启动。

linux环境中一次启动多个jar包,并且设置脚本开机自启

我们在通过jar启动项目时,有时候会比较多,启动会比较麻烦,需要编写shell脚本启动,将启动脚本存放在需要启动的jar包路径下。(文档存放在 /home/process_parent )PORTS 端口号,多个用空格隔开MODULES 模块,多个用空格隔开MODULE_NAMES 模块名称,多个用空格隔开。

windows11通过虚拟机安装Ubuntu20.04

window11通过虚拟机VMware Workstation 17 Player安装ubuntu20.04

开发版ubuntu系统上如何进行开机自启(四种方法一览)

如果省略该字段,则 systemd 将默认将当前服务的启动顺序设置为与其他服务无关,即在启动过程中没有任何依赖性关系,服务的启动顺序由系统自行决定。【ExecStart】 关键字段,服务启动命令,指定服务启动时需要执行的命令或脚本【WantedBy】用于指定服务的自动启动级别,在 Linux 系统中,多用户模式是指允许多个用户同时登录并使用系统资源的模式,与之相对的是单用户模式,只有一个用户可以登录并使用系统资源。保存文件的方法根据所使用的编辑器而有所不同,通常是按下特定的键组合,然后选择保存并退出。

你了解计算机网络的发展历史吗?

计算机网络是指将一群具有独立功能的计算机通过被互联起来的,在通信软件的支持下,实现的系统。计算机网络是计算机技术与通信技术紧密结合的产物,两者的迅速发展渗透形成了计算机网络技术。简而言之呢,计算机网络就是实现两台计算机相互沟通的介质。

Linux安装MongoDB教程

将解压后的 mongodb-linux-x86_64-rhel70-4.2.23 中的所有文件全部移动到 /usr/local/mongodb 中 :注意/*是所有子文件。也可以不用设置环境变量进行启动,但是不设置环境变量启动的话要每次启动写很多启动参数,比较麻烦,所以做好配置环境变量。在 mongodb 下创建 data 和 logs 目录,以及日志文件mongodb.log。在 /usr/local 目录中创建 mongodb 文件夹。启动 MongoDB(-conf 使用配置文件方式启动)

Linux之后台执行命令:nohup和&的使用

如果不将 nohup 命令的输出重定向,输出将附加到当前目录的 nohup.out 文件中。command>out.file是将command的输出重定向到out.file文件,即输出内容不打印到屏幕上,而是输出到out.file文件中。2>&1是将标准错误(2)重定向到标准输出(&1),标准输出(&1)再被重定向输入到out.file文件中。作业在后台运行的时候,可以把输出重定向到某个文件中,相当于一个日志文件,记录运行过程中的输出。将sh test.sh任务放到后台,但是依然可以使用标准输入,

CentOS 7 设置 Jar包、MinIO、Nginx 开机自启动

根据需要,自己修改 Description 和 ExecStart 的内容即可(ExecStart后面的java命令需要全路径)ExecStart 服务运行执行的命令,放上面创建的脚本位置。[Install] 服务安装的相关设置,可设置为多用户。如果用 yum install 命令安装的,如果使用源码手动编译的则需要手动创建。文件,xxx 就是自定义的服务名称。After:设置在某个服务启动后启动。Description:服务的描述。可以使用这个命令来查看服务启动日志。里面的环境变量是必须的,将。

Linux系统中Java new Date()的时间和系统时间不一致

出现问题:new Date(),的时间和当前时间不一样,发现差了8小时,看到8小时就应该明白了,时区的问题。

linux中&和&&,|和||及分号(;)的用法

在linux中,我们经常会用到&和&&,|和||及分号,但是好多人对其会混淆,不明白其中的意思,今天为大家讲解一下&和&&,|和||及分号(;)各自的说明和用法。

Vim 粘贴内容时全变成注释的问题

在使用vim粘贴代码时,会出现注释代码后面的代码全被注释的情况。在paste模式下进行复制粘贴就变得很正常了。

Linux系统之ifconfig命令的基本使用

ifconfig是Linux中常用的网络配置工具之一,用于配置和显示网络接口的具体状况。

Ubuntun使用ISO镜像中的软件包作为本地镜像源

sudo apt update 就可以看到镜像文件中的软件包了。新建本地目录,挂载ISO文件到本地目录。

如何通过Python将各种数据写入到Excel工作表

本文中将介绍如何使用Python写入数据到Excel表格,包括文本、数组(List)、XML和CSV数据,提供更高效和准确的Excel表格数据写入方案,从而简化数据处理流程并节省宝贵的时间和精力。

基于Ubuntu环境Git服务器搭建及使用

将客户端公钥id_rsa.pub内容复制到服务端.ssh/下新建文件authorized_keys里,这样我们在拉取推送代码时,就不需要输入密码了。在服务器终端输入如下命令,输入两次密码后(比如密码也是:git),一路回车就创建好了。客户端:windows10_x64、Ubuntu20.04。无论是服务端还是客户端都需要先安装git。服务器:Ubuntu18.04。

Centos如何修改ssh端口

SSH(Secure Shell)是一种安全的远程登录协议,它允许您通过网络远程连接到Linux系统并进行管理操作。默认情况下,SSH使用22端口进行通信。然而,为了增强系统的安全性,有时候我们需要更改SSH端口,以减少潜在的攻击。