Vico Bill< 刘 利 波 > 的个人网站

记录关于学习、工作中的技术点滴

C,C++,Rust,Ruby爱好者;热衷于游戏开发、任务自动化与跨平台;沉迷于游戏引擎与图形表现;深信'简单、多元'哲学的力量。


访问主页

笔记集锦-Linux

常用命令行:

- `ls` list 
- `cd` change directory
- `mkdir` make directory 
- `rmdir` remove directory
- `touch` 创建新的空白文件
- `rm` remove 删除文件
- `cat` 显示文件内容
- `find` 搜索文件。 `find . -name "*.txt" -mtime 5` 搜索最近5天的txt文件
- `grep` 快速查找文件中的文本,甚至可以搜索子目录。`grep -ir "text string" *` 所有文件中搜索"text string"
- `rename` 使用正则表达式快速重命名文件。 `rename -v 's/foo/bar/g' *` 所有包含foo的文件重命名为包含bar
- `alias` 别名

开发环境

安装mysql-server后

sudo mkdir /var/lib/mysql/
sudo chown mysql:mysql -R /var/lib/mysql/
sudo mysqld --initialize
sudo systemctl start mysql
sudo systemctl enable mysql

sudo vim /etc/mysql.conf.d/mysqld.conf
	[mysqld]
    max_allowed_packet=1024M
    
    skip-grant-tables
    
sudo systemctl restart mysql

mysql -uroot -p
	use mysql;
    update user set authentication_string=password("youpassword") where user='root';
	flush_privileges;
    \q
# 如遇警告alter user
	alter user 'root'@'localhost' identified by 'yourpassword';
    
    create user 'acore'@'%' identified by 'acore';
    grant all on *.* to 'acore'@'%';
    flush privileges;
    \q

Grub2引导Windows10

insmod ntfs 
insmod chain    
set root=(hd0,msdos1) # 可自动补全,输入 set root=( 后按下2次TAB即可,如果需要验证是否为需要的磁盘,可再按TAB验证
chainloader +1
boot

添加ssh用户:

- `vim /etc/ssh/sshd_config`
- `AllowUsers <user-name>`
- `service sshd restart`

分区推荐:

挂载点 分区 大小
/ 主分区 20~100G
swap 逻辑分区,虚拟内存 2~8G 内存大小的1~2倍
/boot 逻辑分区,引导分区 100~200M
/tmp 逻辑分区 1~5G
/home 逻辑分区 10~20G
/var,/data 逻辑分区 剩余空间
/usr 逻辑分区 30~50G

目录作用

目录 作用
/ 根目录,是linux文件系统的组织者。与开机系统有关。
/bin 常用命令
/boot 内核及引导系统程序,如vmlinuz initrd.img GRUB等引导器等
/dev 外部设备端口
/etc 系统管理各种配置
/home 用户主目录
/lib 动态链接共享库。几乎所有应用程序都会用到这个目录下的共享库,不要轻易对此目录进行操作。
/mnt,/media 暂时挂载的目录。挂在存储设备。可动态挂载的装置。如USB的移动硬盘,U盘,CD/DVD等驱动器等
/root 超级用户的home目录
/sbin 系统管理员的系统管理程序。
/opt 可选程序目录。第三方软件,如KDE与GNONE
/usr Unix Software Resource.很多应用程序和文件存放在此目录。占用空间最大的目录。
/srv Service,通常用于网络服务的资料。服务启动后,所需访问的数据目录。如WWW,FTP等。
/proc 系统信息。这些信息是在内存中,由系统产生的。
/tmp 临时文件目录
/usr/local 手动安装的程序
/usr/share 系统共享文件,如/usr/share/fonts,usr/share/doc, usr/share/man等
/var 经常变动的文件.与系统运作过程有关。通常空间占用会逐渐增加。如缓存、run,mail等等。
   
/selinux SELINUX的一些配置
/lost+found 崩溃或意外关机的文件碎片。当系统启动时,会以此检测并修复系统。

账户设置

账户 密码
vicob vicroot,vicobillroot
root r0Ot
mysql的root mysql@pugesto
pugesto pugesto
gitlab的root gitlab@pugesto

开发服务器配置

软件 作用 配置步骤
openssh,openssl-server 远程登录  
vim,emacs 通用文本编辑器  
build-essentials,make,gcc,clang,llvm,cmake,doxygen 通用开发  
samba 与windows共享  
apache2,php7,mysql; nginx,ruby,postgresql; nodejs; httpd web开发  
git,gitlab; subversion; 版本控制  
filezilla,vsftpd FTP  
redis,memcached 缓存  

manjaro 服务器安装配置:

基本设置

  • 数据存储目录主要有:/home/xxx, /var/lib/xxx

  • 待机:节能状态,工作保存在内存中,机器只对内存供电,硬盘、屏幕、CPU等停止供电。休眠(Hibernate):为便携计算机设计,会将工作保存至硬盘,然后关闭计算机。挂起:系统CPU、内存仍能工作,但硬盘、显示器等外部设施停止工作。

安装配置:

  • 配置中国源:
      sudo pacman-mirrors -i -c China -m rank
      sudo pacman -Syyu
      sudo pacman -S yaourt vim
        
      vim /etc/pacman.conf
      [archlinuxcn]
      SigLevel = Optional TrustedOnly
      Server = http://repo.archlinuxcn.org/$arch
        
      sudo pacman -S archlinuxcn-keyring
    
  • 同步网络时间
	sudo ntpdate 同步地址
    地址列表:time.nist.gov
        ntp.api.bz
        210.72.145.44
        ntp.fudan.edu.cn
        time.windows.com
        asia.pool.ntp.org
	sudo hwclock -w
  • 配置输入法
  sudo pacman -S fcitx-rime fcitx-sogoupinyin fcitx-im fcitx-configtool
  vim ~/.xprofile
  export GTK_IM_MODULE=fcitx
  export QT_IM_MODULE=fcitx
  export XMODIFIERS="@im=fcitx"
  
  sudo fcitx
  sudo reboot now
  • 配置开发工具
      yaourt -S git cmake llvm clang doxygen
      yaourt -S nodjs nvm ruby elixir nginx
        
      yaourt -S gimp
      yaourt -S docbarx
        
      yaourt -S deepin-wechat
      yaourt -S dropbox
      yaourt -S fish
      yaourt -S ydcv
    
  • 配置默认shell
      vim /etc/passwd
      修改对应的:/bin/bash
    
  • 配置网络代理
      git clone https://github.com/rofl0r/proxychains-ng.git
      cd proxychains-ng
      ./configure
      make && make install
      cp ./src/proxychains.conf /etc/proxychians.conf
      cd .. && rm -rf proxychains-ng
        
      vim /etc/proxychains.conf
      socks5 127.0.0.1 1080
        
      proxychains4 wget ...
    
  • 配置网站基础
      yaourt -S nginx
      nginx -t
    
  • 创建https证书:
    openssl genrsa -des3 -out server.key 1024
    openssl req -new -key server.key -out server.csr
    cp server.key server.key.org
    openssl rsa -in server.key.org -out server.key
    openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
    
    vim /etc/nginx.conf
    server {
        server_name 服务器名称;
        listen 443;
        ssl on;
        ssl_certificate /usr/local/nginx/conf/server.crt;
        ssl_certificate_key /usr/local/nginx/conf/server.key;
    }
网站开发:mini.css, materialize, bulma, vue.js ### 基本命令行操作 * 从AUR安装包 ``` shell
yaourt -S <packagename>
makepkg -sri ``` *  添加新用户  ``` shell
useradd -m -g users -G wheel,storage,power -s /bin/fish <username>
passwd <username>

用户和组

useradd -m -g <groupname> -G wheel -s /bin/<shellname> <username>
passwd <username>

sudo cat /etc/passwd
sudo cat /etc/group # 性能:
top
glxinfo | grep direct
lsusb -tv
lspci -tv # 压缩
tar xv[zjJ]f <filename>
bzip -cd <file.bz> | tar xvf -
https://wiki.archlinux.org/index.php/Core_utilities#tar https://wiki.archlinux.org/index.php/List_of_applications_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87) ``` * 使配置文件立即生效:$ . /etc/profile 或者 $ source /etc/profile
  • Gnome下通过dconf配置一些选项。

服务器设置

  • 远程登录:可以使用windows远程登录Linux。
      pacman -S openssh
      systemctl enable sshd.service
    
  • 文件共享:可以用于公司内部资料共享。
       yaourt -S samba
      wget "https://git.samba.org/samba.git/?p=samba.git;a=blob_plain;f=examples/smb.conf.default;hb=HEAD" -O /etc/samba/smb.conf
      # sudo cp /etc/samba/smb.conf.default /etc/samba/smb.conf
      sudo vim /etc/samba/smb.conf
        
      smbpasswd -a samba_user
      sudo systemctl enable smb nmb
      sudo systemctl start smb nmb
        
    
  • FTP: 可以使用基本的上传下载,用于资料共享。
  • Git: 可以用于版本控制管理。
     useradd git -m
     passwd git gitroot
    
  • Web服务器: 可以通过页面形式操作一些内容。
     sudo pacman -S nginx 
    
  • Mail 服务器: 可以通过邮件报告工作内容。
     sudo pacman -S postfix
    
  • DB 服务器: 存取数据:Redis,Mariadb。
      # mariadb/MYSQL
      mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
      systemctl start mariadb
      mysql_secure_installation
      systemctl restart mariadb
        
      # 修改账户密码:
      use mysql;
      set password for '<user>'@'localhost' = PASSWORD('<new password>');
        
      # 修改root可远程访问:
      select 'host' from user where user='root';
      update user set host = '%' where user = 'root';
        
        
        
      # 添加Mysql新用户:
      mysql -uroot -p
        
      CREATE USER '<username>'@'localhost' IDENTIFIED BY '<password>';
      GRANT ALL PRIVILEGES ON <mydb>.* TO '<username>'@'localhost';
      GRANT ALL SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON <mydb>.* TO '<username>'@'localhost';
      FLUSH PRIVILEGES;
        
      # 自动补全:
      vim /etc/mysql/my.cnf       no-auto-rehash -> auto-rehash
      # 启用utf8:
      [mysqld]
      init_connect                = 'SET collation_connection = utf8_general_ci,NAMES utf8'
      collation_server            = utf8_general_ci
      character_set_client        = utf8
      character_set_server        = utf8
        
      # 数据库备份:
      #!/bin/bash
        
      THISDIR=$(dirname $(readlink -f "$0"))
        
      mysqldump --single-transaction --flush-logs --master-data=2 --all-databases \
      | gzip > $THISDIR/db_backup.gz
      echo 'purge master logs before date_sub(now(), interval 7 day);' | mysql
        
      # PostgreSQL
      sudo pacman -S postgresql
      sudo -u postgres -i
        
      initdb -D '/var/lib/postgres/data' 或者:
      initdb --locale en_US.UTF-8 -E UTF8 -D '/var/lib/postgres/data'
        
      pg_ctl -D /var/lib/postgres/ -l pg.log start
        
      exit
        
      sudo systemctl enable postgresql.service
      sudo systemctl start postgresql.service
        
      sudo -u postgres -i
        
      createuser --interactive
      createdb <dbname>
      psql -d <db_name> 
        
      => \help
      => \c <database>
      => \du
      => \dt
      => \q
        
      @ https://wiki.archlinux.org/index.php/PostgreSQL
        
      CREATE 
      ALTER 
      DROP 
      UPDATE 
      SELECT 
        
      # REDIS #
      sudo pacman -S redis
      systemctl start redis
        
      vim /etc/redis.conf
        
          unixsocket /run/redis/redis.sock
          unixsocketperm 770
      # 将用户添加到组:例如:gitlab,git,http等
          usermod -g <groupname> <username>
    

Ubuntu

更换中国源

国内有很多Ubuntu的镜像源,包括阿里的、网易的,还有很多教育网的源,比如:清华源、中科大源。 我们这里以中科大的源为例讲解如何修改Ubuntu 18.04里面默认的源。 编辑/etc/apt/sources.list文件, 在文件最前面添加以下条目(操作前请做好相应备份):

##中科大源

deb https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse 

然后执行命令:

sudo apt-get update
sudo apt-get upgrade 

如果 Temporary failure resolving 'xxx' ,vim /etc/resolve.conf 
nameserver 8.8.8.8
nameserver 114.114.114.114

其他几份国内源如下:

阿里源

deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse 

163源

deb http://mirrors.163.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic-backports main restricted universe multiverse 

清华源

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse

apt出错后:

apt clean

sudo apt-get clean ,然后sudo apt-get update,再次使用sudo apt-get install -f修复即可。

查看版本

sudo lsb_release -a

安装nodejs

更新ubuntu软件源
sudo apt-get update



sudo apt-get install -y python-software-properties software-properties-common



sudo add-apt-repository ppa:chris-lea/node.js



sudo apt-get update
安装nodejs
sudo apt-get install nodejs



sudo apt install nodejs-legacy



sudo apt install npm
更新npm的包镜像源,方便快速下载
sudo npm config set registry https://registry.npm.taobao.org



sudo npm config list
全局安装n管理器(用于管理nodejs版本)
sudo npm install n -g
安装最新的nodejs(stable版本)
sudo n stable

为UbuntuServer安装图形界面

步骤:

  1. sudo apt update
  2. sudo apt install xinit gdm
  3. 安装Elamantary桌面:
    1. sudo add-apt-repository ppa:elemantary-os/stable
    2. sudo apt update
    3. sudo apt install elemantary-desktop
  4. reboot
  5. startx
最近的文章

笔记集锦-git 知识汇总

git 设置和取消代理# 设置ssgit config --global http.proxy 'socks5://127.0.0.1:1080'git config --global https.proxy 'socks5://127.0.0.1:1080'# 设置代理git config --global https.proxy http://127.0.0.1:1080git config --global https.proxy https://127.0.0.1:1080# 取消...…

继续阅读
更早的文章

笔记集锦-数据库知识汇总

安装Mariadb、Postgresql、Redis 安装Mariadb:``` shsudo pacman -S mariadbsudo mysql_install_db –user=mysql –basedir=/usr –datadir=/var/lib/mysqlsudo systemctl start mariadbsudo systemctl enable mariadbsudo mysql_secure_installationsudo pacman -S mysql-wo...…

继续阅读