ubuntu Ubuntu 将用户加入 sudo 权限 添加sudo权限,假设用户名为 ubuntu sudo usermod -G sudo ubuntu 添加root权限 如果需要让此用户有root权限,执行命令: sudo chmod +w /etc/sudoers sudo vim /etc/sudoers 修改文件如下: # User privilege specification root ALL=(ALL) ALL ubuntu ALL=(ALL) ALL 保存退出,
ubuntu Ubuntu 磁盘扩容 查看磁盘信息 df -h 查看物理分区、逻辑卷信息 fdisk -l 查看组卷信息 sudo vgdisplay sudo lvdisplay sudo pvdisplay 扩展lvm卷 sudo lvextend --extents +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv 重新计算磁盘大小 sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv 再次查看磁盘信息 sudo df -h
certbot certbot renew固定私钥 申请完证书后,续签时,先将自动生成的私钥复制一份到一个新的文件夹,然后指定参数如下进行续签: sudo mkdir -p /etc/my-certbot-private-key sudo cp /etc/letsencrypt/live//privkey.pem /etc/my-certbot-private-key ls /etc/my-certbot-private-key sudo certbot renew --key-path=/etc/my-certbot-private-key/privkey.pem
sed sed 去掉所有的换行符 sed 替换所有的换行符,命令如下 echo -e "hello\nworld" | sed ':label;N;s/\n//g;b label' * :label; 定位标签,用来实现跳转处理,名字随便取(label),后面的b label就是跳转指令 * N; N是sed的一个处理命令,追加文本流中的下一行到模式空间进行合并处理,设定换行符可见 * s/\n//g; s是sed的替换命令,将换行符替换为冒号 * b
ubuntu GPT PMBR size mismatch will be corrected by w(rite). sudo parted -l 然后,输入 Fix。 使用这个命令前,最好先给机器备份,虚拟机和云服务的话,就先打个快照,以防出不知名问题搞坏了磁盘。
ubuntu Ubuntu 18.04配置固定IP ubuntu 18.04 的静态 ip 要在配置文件/etc/netplan/50-cloud-init.yaml中进行配置 sudo vim /etc/netplan/50-cloud-init.yaml 做如下配置: network: ethernets: enp0s3: dhcp4: true addresses: - 192.168.0.105/24 #ip和掩码 gateway4: 192.168.
shell Shell 脚本中用 set 设置 shell 的执行方式 如下: #Description-a标示已修改的变量,以供输出至环境变量-b使被中止的后台程序立刻回报执行状态-C转向所产生的文件无法覆盖已存在的文件-d Shell预设会用杂凑表记忆使用过的指令,以加速指令的执行。使用-d参数可取消-e若指令传回值不等于0,则立即退出shell-f取消使用通配符-h 自动记录函数的所在位置-HShell 可利用"!"加<指令编号>的方式来执行history中记录的指令-k指令所给的参数都会被视为此指令的环境变量-l 记录for循环的变量名称-m使用监视模式-n只读取指令,而不实际执行-p启动优先顺序模式-P启动-P参数后,执行指令时,会以实际的文件或目录来取代符号连接-t 执行完随后的指令,即退出shell-u当执行时使用到未定义过的变量,则显示错误信息-v显示shell所读取的输入值-x执行指令后,会先显示该指令及所下的参数 +<参数> 取消某个set曾启动的参数。
shell shell 计时 shell/bash 脚本计时 #!/usr/bin/env bash startAt=`date +%s` sleep 3 endAt=`date +%s` time=$(($endAt - $startAt)) time=`expr $time` echo $time
技术 Linux中文件描述符与打开文件之间的关系 Linux中文件描述符与打开文件之间的关系 File Descriptor概述 在 linux 系统中,一切都是文件,文件可分为以下几类: 1. 普通文件 2. 目录文件 3. 链接文件 4. 设备文件 文件描述符(File Descriptor,简称“fd”,以下均会称之为fd),这是内核为了高效管理已被打开的文件所创建的索引,请注意,fd 只是一个索引。这个索引是一个非负整数(通常是小整数,从0开始数),指向被打开的文件,所有执行 I/O
SSH 使用 SSH 远程执行命令 用法: ssh -l "" 示例如下: ssh -l ubuntu 127.0.0.1 "echo hello" 如果需要分配一个 TTY 的话,添加 -t 参数,示例如下: ssh -t -l ubuntu 127.0.0.1 "echo hello"
Linux 将ssh config 转化为 hosts 文件 安装 pip install sshconf 脚本:vim /tmp/sshconf_hosts: #!/usr/bin/env python3 from __future__ import print_function from sshconf import read_ssh_config, empty_ssh_config from os.path import expanduser import
vim vim 列模式 删除与插入 删除 1. 光标定位位置 2. CTRL+v 进入“可视 块”(VISUAL BLOCKS)模式,选取行 3. d 删除 插入 1. 光标定位位置 2. CTRL+v 进入“可视 块”模式,选取行 3. SHIFT+i(I) ,输入插入的内容 4.
shell shell脚本参数读取 shell参数读取实例: #!/usr/bin/env bash # u参数表示是否大小,m参数表示要输出的信息 usage() { echo "Usage: $0 [-u] [-m ]" 1>&2; exit 1; } # getopts 解析脚本命令行选项 while getopts ":um:" o; do case "${o}" in u) upper=true ;; m) msg=${OPTARG}
shell shell脚本if参数大全 shell 编程中使用到得if语句内判断参数 –b 当file存在并且是块文件时返回true -c 当file存在并且是字符文件时返回true -d 当pathname存在并且是一个目录时返回true -e 当pathname指定的文件或目录存在时返回true -f 当file存在并且是文件时返回true -g 当由pathname指定的文件或目录存在并且设置了SGID位时返回为true -h 当file存在并且是符号链接文件时返回true,该选项在一些老系统上无效 -k 当由pathname指定的文件或目录存在并且设置了“粘滞”位时返回true -p 当file存在并且是命令管道时返回为true -r 当由pathname指定的文件或目录存在并且可读时返回为true -s 当file存在文件大小大于0时返回true -u 当由pathname指定的文件或目录存在并且设置了SUID位时返回true -w 当由pathname指定的文件或目录存在并且可执行时返回true。一个目录为了它的内容被访问必然是可执行的。 -o
Linux Ubuntu 永久改变hostname 临时改变,直接:sudo hostname test-name即可,永久修改需修改/etc/hostname文件: sudo hostname test-name sudo sh -c "echo test-name > /etc/hostname" 重启系统后,主机名就不会变了。
Linux Linux开启密码登录 sudo vim /etc/ssh/sshd_config 找到passwordAuthentication项,修改成yes 重启ssh服务:sudo service sshd restart 密码设置:sudo passwd user-name 重新登录
Linux Linux下文件切割和合并 查看文件行数(二进制文件亦可): wc -l tmp.txt 文件切割 假如是100000行,即10万行。下面我们将其切割为1万行一个文件,共10个文件: split -l 10000 ../BLM/BLM.txt -d -a 4 tmp_small_ -l 10000 表示小文件行数,切割单位; -d 表示系数是数字而不是文字 -a 3 表示后缀系数是三位数,如001,002,
Linux 【Linux】bunzip2: command not found 出现这个错误是因为没安装bzip2包 CentOS yum install bzip2 Ubuntu sudo apt-get install bzip2
C++ Linux中C++编译、使用动态链接库 Linux中so为共享动态链接库。下面我们通过一个四则运算的实例来学习动态链接库。 首先是头文件:my_math.h: /** * my_math.h */ // a + b int Add(int a, int b); // a - b int Minus(int a, int b); // a * b int Multiply(int a, int
python 【SuperSet】添加MySQL数据库报错 环境:Linux Ubuntu Python3.6,添加MySQL数据库时报错: ImportError: No module named 'MySQLdb' 解决办法: pip install mysqlclient
Linux 解决Linux系统下Docker占满分区的问题 今天碰到了一个问题,访问数据库的时候,发现访问不了,爆存储空间不够的错误,随后输入命令: df -h 发现/dev/vda1,也就是系统盘被占满了。不是专职的运维,所以,就开始百度解决问题。下面是解决路径: 首先是找到大文件存储位置,通过命令du -sh /*,找到一些目录后,发现有几个目录特别大,比如/var; 然后确认分区,df /var,发现这个目录的分区是/dev/vda1 ,于是就进入这个目录,开始删东西。我开始删掉了很多日志,但发现并没有多少作用,于是再一次使用命令:
Linux Docker后台运行Web应用 start_tomcat.sh是启动容器中tomcat的脚本,启动容器中tomcat的命令为: docker run -tid -p 80:8080 runrong /start_tomcat.sh -p 80:8080表示将容器里的8080端口映射到宿主机的80端口,这样,就可以通过宿主机ip地址直接访问容器里的tomcat 关闭容器 docker kill <容器ID的前几位> 容器ID可以通过docker ps查看