为Ubuntu系统添加新的普通用户

文章目录

1.创建一个新的普通用户

  • 创建了可以登录的meow用户并使用/bin/bash作为shell。
  • 设置密码。
  • 为meow用户增加管理员权限。
  • 切换登录用户为meow。
$ sudo useradd -m meow -s /bin/bash
$ sudo passwd meow
$ sudo adduser meow sudo
$ su meow

2.给用户授权

  • 查看meow所在的组。
  • 设置meow权限为superuser。
  • 查看sudoer的文本文件(suders含义),可以添加meow ALL=(ALL:ALL) ALL为meow设置superuser权限。
$ groups meow
$ usermod -aG sudo meow
$ visudo

visudo默认使用vim而不是nano的方法
在顶部附近的/etc/sudoers文件中添加一行:
Defaults editor=/usr/bin/vim 

或者

wangji@DESKTOP-QNG23J0:~$ ll /etc/alternatives/editor
lrwxrwxrwx 1 root root 9 Aug 30 05:40 /etc/alternatives/editor -> /bin/nano*
wangji@DESKTOP-QNG23J0:~$ sudo ln -sf /usr/bin/vim /etc/alternatives/editor

wangji@DESKTOP-QNG23J0:~$ sudo visudo

3.删除用户

  • 会删除用户目录
$ deluser --remove-home meow

4.新增用户添加至ubuntu的sudors文件中

修改这2个位置,增加NOPASSWD:,注意NOPASSWD:的冒号,且前后有空格
在这里插入图片描述

一般上述方式即可,更通用

如果想要单独控制某个用户,可以参照如下的方式:

ALL  ALL=(ALL:ALL)    NOPASSWD:   ALL

用户 组=(用户:组)  NOPASSWD:  允许执行无需密码的程序
sudo cp /etc/sudoers /etc/sudoers.old
sudo chmod +w /etc/sudoers
sudo vim /etc/sudoers
# 加上如下行
%your_user_name% ALL=(ALL) NOPASSWD: ALL

1 youuser ALL=(ALL) ALL
2 %youuser ALL=(ALL) ALL
3 youuser ALL=(ALL) NOPASSWD: ALL
4 %youuser ALL=(ALL) NOPASSWD: ALL

解释如下:
第一行:允许用户youuser执行sudo命令(需要输入密码).
第二行:允许用户组youuser里面的用户执行sudo命令(需要输入密码).
第三行:允许用户youuser执行sudo命令,并且在执行的时候不输入密码.
第四行:允许用户组youuser里面的用户执行sudo命令,并且在执行的时候不输入密码.

参考:

5.提高ubuntu下访问github的速度

ubuntu下使用github很慢的解决办法1:

ubuntu下使用github很慢的解决办法2:

ubuntu下使用github很慢的解决办法3:

5.1 vscode在线打开github

vscode在线打开github-非句号方式

vscode在线打开github-句号方式

5.1 wsl永久关闭swap功能

打开Windows资源管理器,地址栏输入 %UserProfile% 回车,在该目录下创建一个文件, 名字为 .wslconfig
写入内容示例如下
[wsl2]
swap=0

powershell:

wsl --shutdown

参考

6.配置ubuntu国内镜像下载源的方法

ubuntu 的apt源配置方法见:Ubuntu配置apt的国内源地址,网站见:阿里云ubuntu镜像源网站

注意:不同的ubuntu系统需要修改镜像源的配置文件,上述的配置文件中一般为focal

wangji@DESKTOP-QNG23J0:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 20.04.5 LTS
Release:        20.04
Codename:       focal

所以需要参考将源的codename进行修改:Ubuntu更换apt源与Codename的关系

6.1 如果ping mirrors.tuna.tsinghua.edu.com无法ping通

  • 临时修改方法如下
1.打开/etc/resolv.conf;

$sudo vim /etc/resolv.conf

2.修改nameserver后的ip地址;

加入:

nameserver 8.8.8.8
nameserver 8.8.4.4

永久修改请参考以下的方法

wsl中永久修改/etc/resolv.conf

sudo rm /etc/resolv.conf
sudo bash -c 'echo "nameserver 8.8.8.8" > /etc/resolv.conf'
sudo bash -c 'echo "[network]" > /etc/wsl.conf'
sudo bash -c 'echo "generateResolvConf = false" >> /etc/wsl.conf'
sudo chattr +i /etc/resolv.conf

7.ubuntu包的安装方法

一般所有的包基本都可以通过命令进行安装,有的是使用包,有的是开发者包,比如ostree,所以执行虾命令就可以完成包的安装

wangji@DESKTOP-QNG23J0:/usr/local/lib/x86_64-linux-gnu/pkgconfig$ sudo apt-cache search ostree
libendless-doc - documentation files for the Endless SDK
libostree-1-1 - content-addressed filesystem for operating system binaries (library)
libostree-dev - Development files for the libostree library
libostree-doc - Development documentation for the libostree library
ostree - content-addressed filesystem for operating system binaries
ostree-boot - libostree boot loader and initramfs integration
ostree-tests - content-addressed filesystem for operating system binaries - tests

安装方法

wangji@DESKTOP-QNG23J0:/usr/local/lib/x86_64-linux-gnu/pkgconfig$ sudo apt-get install libostree-dev 

默认下载包的位置:

下载的软件存放位置
 /var/cache/apt/archives

查看dpkg的control信息

dpkg --info python3.8-examples_3.8.10-0ubuntu1~20.04.6_all.deb

问题:Package python3 is not configured yet或者 Package ** is not configured yet或者Errors were encountered while processing

  • “dpkg: error processing package openssh-server (–configure)” on apt install

  • ref:大量dpkg依赖错误

1、sudo mv /var/lib/dpkg/info/ /var/lib/dpkg/info_old/
2、sudo mkdir /var/lib/dpkg/info/
3、sudo apt-get update
4、sudo apt-get -f install

问题:安装python3

sudo apt install python3.7
sudo apt install python-is-python3

问题4:卸载python2.7

1.卸载python2.7
sudo apt-get remove python2.7

2.卸载python2.7及其依赖
sudo apt-get remove --auto-remove python2.7

3.清除python2.7的一些配置文件
sudo apt-get purge python2.7 
sudo apt-get purge --auto-remove python2.7

dpkg -L +软件包的名字,可以知道这个软件包包含了哪些文件, 这个方法可以列出所有安装后留在系统里的文件

dpkg -L packagename
dpkg -l | grep 程序大概包含的程序名关键字

sudo dpkg --purge  libpython2.7-minimal:amd64 删除对应配置文件

即可查出安装后的文程序名,然后根据这个文件名即可完成对文件的卸载
sudo apt autoremove --purge 文件名

ubuntu安装deb包到指定目录

8.Ubuntu中将默认的dash改为bash

sudo dpkg-reconfigure dash Enter

9.pip很慢

(1)pip config set global.index-url https://mirrors.huaweicloud.com/repository/pypi/simple

 /home/wangji/.config/pip/pip.conf
wangji:是你自己的用户哦

(2)使用vi pip.conf命令打开pip.conf文件,写入如下内容:
[global]
index-url = http://mirrors.myhuaweicloud.com/pypi/web/simple
format = columns
[install]
trusted-host=mirrors.myhuaweicloud.com

pip用于查看 某个 库的名字、版本、位置等具体信息

pip show xxx
#如 pip show requests#

sudo pip show xxx是不一样的

其他命令类似

eg:

wangji@script-wang:~/framework/framework_master$ pip show gitpython



Name: GitPython
Version: 3.1.31
Summary: GitPython is a Python library used to interact with Git repositories
Home-page: https://github.com/gitpython-developers/GitPython
Author: Sebastian Thiel, Michael Trier
Author-email: byronimo@gmail.com, mtrier@gmail.com
License: BSD
Location: /home/wangji/.local/lib/python3.8/site-packages
Requires: gitdb
Required-by: 
wangji@script-wang:~/framework/framework_master$ 
wangji@script-wang:~/framework/framework_master$ sudo pip show gitpython
Name: GitPython
Version: 3.1.31
Summary: GitPython is a Python library used to interact with Git repositories
Home-page: https://github.com/gitpython-developers/GitPython
Author: Sebastian Thiel, Michael Trier
Author-email: byronimo@gmail.com, mtrier@gmail.com
License: BSD
Location: /usr/local/lib/python3.8/dist-packages
Requires: gitdb
Required-by: 

10. wsl2安装openssh-server

启动:

不能使用(直接使用就会报错)sudo systemctl start sshd

得通过:
sudo /etc/init.d/ssh start 

由于WSL2默认使用NAT的方式,所以需要开启端口转发,这样其他主机就可以ssh进来了
参考去设置wsl2的端口转发:wsl2 设置端口映射,以及修改windows防火墙(进和出的规则),别人就可以访问了

11.wsl2安装docker

ubuntu:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu/ $(lsb_release -cs) stable"

或者 vim /etc/apt/sources.list中增加:
deb [arch=amd64] https://download.docker.com/linux/ubuntu/ focal stable

focla:由$(lsb_release -cs)

安装docker以及docker-compose

sudo apt-get install docker-ce docker-ce-cli containerd.io -y

启动docker

 sudo /etc/init.d/docker start

可能存在的问题:

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/images/json": dial unix /var/run/docker.sock: connect: permission denied
  • 原因:
wangji@script-wang:~/ota/OpenSource/ota-lith$ ll /var/run/docker.sock
srw-rw---- 1 root docker 0 Dec  2 12:43 /var/run/docker.sock=

可以看出,这个套接字文件所属组是docker,我们可以将该普通用户加入到docker这个组。
  • 解决办法:

 sudo gpasswd -a username docker   #将普通用户username加入到docker组
 $ newgrp docker  #更新docker组

防火墙问题:

/var/log/docker.log

Error initializing network controller: error obtaining controller instance: unable to add return rule in DOCKER-ISOLATION-STAGE-1 chain:  (iptables failed: iptables --wait -A DOCKER-ISOLATION-STAGE-1 -j RETURN: iptables v1.8.7 (nf_tables):  RULE_APPEND failed (No such file or directory): rule in chain DOCKER-ISOLATION-STAGE-1
  • 解决办法
sudo update-alternatives --config iptables

选择:iptables-legacy
sudo vim /etc/docker/daemon.json

{
  "registry-mirrors": [
    "https://4sjn347i.mirror.aliyuncs.com",
    "https://docker.mirrors.ustc.edu.cn"
  ],
  "max-concurrent-downloads": 10,
  "insecure-registries": [],
  "debug": true,
  "experimental": false,
  "features": {
    "buildkit": true
  }
}

接着重启docker即可

12.wsl2将默认的NAT方式配置成网桥模式

条件:

13.谷歌浏览器商店打不开怎么办?

如何在国内,下载Chrome应用商店中的插件

14.wsl增加组播路由

15.Python默认查找包的环境

python -m site

16.vscode使用wsl插件出现的问题

问题1:openssl error:0A000126:SSL routines::unexpected eof while reading

  • 主要原因是wsl中使用wget下载vscode服务器端报错
首先尝试升级openssl
sudo apt-get update && sudo apt-get install openssl

若不可以,则需离线安装服务器端到wsl中
commit_id=f06011ac164ae4dc8e753a3fe7f9549844d15e35

# Download url is: https://update.code.visualstudio.com/commit:${commit_id}/server-linux-x64/stable
curl -sSL "https://update.code.visualstudio.com/commit:${commit_id}/server-linux-x64/stable" -o vscode-server-linux-x64.tar.gz

mkdir -p ~/.vscode-server/bin/${commit_id}
# assume that you upload vscode-server-linux-x64.tar.gz to /tmp dir
tar zxvf /tmp/vscode-server-linux-x64.tar.gz -C ~/.vscode-server/bin/${commit_id} --strip 1
touch ~/.vscode-server/bin/${commit_id}/0

17.WSL2很卡

问题:WSL2 Vmmem占用内存很高,用着用着就卡

  • 解决办法:打开cron的自启动服务,定时清内存
(1)配置cron服务
sudo crontab -e 
添加:*/5 * * * * sync; echo 3 > /proc/sys/vm/drop_caches &&  touch /tmp/success_drop_caches_last_run || touch /tmp/faliure_drop_caches_last_run

(2)自动启动cron服务
sudo vim ~/.bashrc
添加:[ -z "$(ps -ef | grep cron | grep -v grep)" ] && sudo /etc/init.d/cron start &> /dev/null
配置sudo命令:若配置过则不需要配置
sudo visudo
sudo ALL=NOPASSWD: /etc/init.d/cron start

(3)在powershell中:wsl --shutdown

18.vscode常用插件小结

(1)vscode使用markdown:VS Code 插件之 Markdown 篇

  • 说明:若需要对markdown的表格对齐的话,建议使用markdown all in one 格式化工具,不要去用markdown-formatter(很难用)

(2)离线环境下仅使用vscode remote ssh方式远程连接服务器操作指南

(3)vscode 的tab与空格设置 ,vscode使用sftp配置 ,vscode代码补全插件

(4)vsocde跳转python代码,vscode实现RF框架代码跳转功能

(5)vscode中使用TIMELINE和GIT插件查看代码的历史记录

(6)VSCode 的扩展包C/C++ IntelliSense, debugging, and code browsing的IntelliSense功能无法使用

(7)Windows 下 VSCode 使用 SSH 连接报 Bad owner or permissions on C:\Users\Administrator/.ssh/config 错误问题解决

19.vim 整合插件

vimrc

(1)vim搜索设置高亮

有两种方法:
1、临时设置:vim打开文档-->命令行形式输入 set hlsearch。
缺点:关闭文档后,下次打开,又需要重新设置一遍。

2、永久设置(推荐):在~/.vimrc中配制
vim ~/.vimrc
在文件中加上set hlsearch 
然后保存退出便可。
优点:一次设置,永久生效。

(2)vim常用操作

hjkl左上下右
i当前字符前插入
a当前字符后插入
I当前行开头插入
A当前行末尾插入
o在后一行插入
O在前一行插入
v选择
V选择整行
y复制
p粘贴在当前字符后
P粘贴在当前字符前
c修改
d删除
x删除一个字符
s修改当前字符
r仅修改当前字符
f跳转到下一个字符上
t跳转到下一个字符前
0开头
$结尾
^除去空格的开头
w下一个单词
b上一个单词
e下一个单词的末尾
W下一个单词(无视符号)
B上一个单词(无视符号)
E下一个单词的末尾(无视符号)
ZZ保存并退出
ZQ不保存强制退出
<<减小缩进
>>增大缩进
==自动调整缩进
#向前查找当前光标下单词
*向后查找当前光标下单词
?向前查找
/向后查找
n下一个
N上一个
{上一段落
}下一段落
u撤销上一次操作,ctrl+r则为反撤销操作
全词匹配:/int\>
不区分大小写::set ignorecase //忽略大小写,:set noignorecase //恢复到大小写敏感

vim其他操作

(1)vim批量注释
v或者V选中后,命令行输入:'<,'>norm I//
等价于26,32norm I//

批量取消注释
v或者V选中后,命令行输入:'<,'>norm 0x


(2)ctrl+u,ctrl+d快速翻页

(3)V选中部分批量替换
'<,'>s/wang/ji/g

全文替换:1,$s/wang/ji/g

(4)取消高亮选中
:noh

(5)vim中打开目录
:NERDTreeToggle

(6)Plug
:PulgInstall

eg:"Plug 'vim-scripts/vim-airline' ->"Plug 'vim-scripts/vim-airline'
去掉前面的"
" no longer used vim-airline:
"let g:airline#extensions#coc#enabled = 1
"let g:airline#extensions#tabline#enabled = 1
"let g:airline#extensions#tabline#left_alt_sep = '|'
"let g:airline#extensions#tabline#buffer_nr_show = 0
"let g:airline#extensions#tabline#formatter = 'default'
"let g:airline#extensions#keymap#enabled = 1
"let g:airline#extensions#tabline#buffer_idx_mode = 1


则需要在vim下执行:PulgInstall

(7)wsl ubuntu中vim拷贝到windows剪切板
apt-get install -y vim-gtk3
检查一下是否安装成:
vim --version | grep \"clipboard\"
+clipboard         +keymap            +printer           +vertsplit

vim中的内容保存至windows剪切板:
:'<,'>w !clip.exe

(8)ctrl t 下面打开终端,ctrl w在终端和代码中切换
将代码拷贝到终端:y拷贝vim中的内容,然后换到终端中输入:ctrl w\"\"

(9)F7编译代码,编译选项:/home/wangji/.vim/tasks.ini
F5构建和运行Cmake工程

(10)gd寻找定义
可能打开多个文件F2文件往左,F3文件往右
跳转回来:ctrl o,跳转进去ctrl i

gr查看这个函数被谁引用了


20.curl直接下载github release文件

方法1:
curl -LsO https://github.com/archibate/vimrc/releases/vimrc-install.sh
# -L 参数会让 HTTP 请求跟随服务器的重定向。curl 默认不跟随重定向。
# -s 是silent,就是不输出详细过程
# -O 把输出写到该文件中,保留远程文件的文件名


方法2:
git clone git@github.com:archibate/vimrc.git
注释掉./vimrc/.vim/install.sh文件中的set -e
./vimrc/.vim/install.sh

21 git submodule问题

submodule

22 ubuntu支持交叉编译

会在你的环境中安装一个默认适配你环境的较新版本
 sudo  apt-get install gcc-aarch64-linux-gnu -y
查询版本号
root@bruce:/# aarch64-linux-gnu-gcc -v
如果CMake中制定特定版本的交叉编译器,eg:
set(CMAKE_C_COMPILER aarch64-linux-gnu-gcc-9)
set(CMAKE_CXX_COMPILER aarch64-linux-gnu-g++-9)

则可以执行这个命令,ubuntu会告诉你如何安装
wangji@script-wang:~/time/timesync/build/install/bin$ aarch64-linux-gnu-g++-9
sudo apt install g++-9-aarch64-linux-gnu -y

23.Ubuntu 查看cpu个数及核心数

  • ref:
查看物理CPU个数
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l


查看每个物理CPU中core的个数(即核数)
cat /proc/cpuinfo| grep "cpu cores"| uniq

查看逻辑CPU的个数
cat /proc/cpuinfo| grep "processor"| wc -l

查看线程数
grep 'processor' /proc/cpuinfo | sort -u | wc -l    

23.如何在ubuntu22.04版本上安装libssl1.1?

链接

24.boost手册及安装

boost中文手册:
Boost C++ 库

boost英文手册:
Chapter 22. Boost.PropertyTree

Boost常用组件概览:链接

boost安装:
在Ubuntu上安装Boost的五种方法(全网最全,建议收藏)
main/release/1.71.0/source

25.WSL2端口映射

将ip地址的对应的端口映射到宿主win10对应的端口
# netsh interface portproxy add v4tov4 listenport=[win10端口] listenaddress=0.0.0.0 connectport=[虚拟机的端口] connectaddress=[虚拟机的ip]
netsh interface portproxy add v4tov4 listenport=80 listenaddress=0.0.0.0 connectport=80 connectaddress=172.29.41.233

删除端口转发
netsh interface portproxy delete v4tov4 listenport=80 listenaddress=0.0.0.0


检测是否设置成功
netsh interface portproxy show all

接着,还需要配置windows的防火墙规则,可以参考:vm虚拟机中使用NAT模式特别说明

wsl2 设置端口映射

26.Ubuntu 22.04 Minikube安装配置

Ubuntu 22.04 Minikube安装配置Minikube-ubuntu系统安装minikubeminikube配置–registry-mirror=https://registry.docker-cn.com

MacOS 安装 minikube 后执行 “minikube start” 卡在 “Booting up control plane …”

如果改用国内镜像源还是无法下载,则参看链接,自己使用docker下载并重新tag
在这里插入图片描述
自己docker pull然后改名字
在这里插入图片描述

问题:

shaokun@shaokun:~/wangji/ota-community-edition$ make start
😄  minikube v1.2.0 on linux (amd64)
✅  using image repository registry.cn-hangzhou.aliyuncs.com/google_containers
E0413 18:31:19.631161    3057 start.go:559] StartHost: Error loading existing host. Please try running [minikube delete], then run [minikube start] again.: registry: driver not found

💣  Unable to start VM: Error loading existing host. Please try running [minikube delete], then run [minikube start] again.: registry: driver not found

😿  Sorry that minikube crashed. If this was unexpected, we would love to hear from you:
👉  https://github.com/kubernetes/minikube/issues/new
make: *** [Makefile:14: start-minikube] Error 70
shaokun@shaokun:~/wangji/ota-community-edition$ minikube delete

解决:
安装minikube v1.4.0版本

27.ubuntu 22.04 安装kubectl

在 Linux 系统中安装并设置 kubectl

28.ubuntu22.04安装kOps

kOps

29.在线生成asicc字符画网站

在线生成ascii字符画网站

30.连接dl.google.com超时的问题

解决Android studio 连接 dl.google.com超时的问题

31.clang-tid静态检查工具

clang-tidy——静态代码分析框架

32.起变量名网站CODELF

CODELF

33.wsl2中pip很慢

如果已经配置pip源,还是很慢,可以执行:

 python -m pip install --upgrade pip wheel setuptools

34.Windows10或者Windows11主机无法PING通的解决方法

步骤:Windows10或者Windows11主机无法PING通的解决方法

检查:
打开windows安全中心->打开防火墙和网络保护->打开高级设置
在这里插入图片描述
可以看到入站规则中显示ICMP回显请求,说明设置成功了
在这里插入图片描述

35. Key is stored in legacy trusted.gpg

问题:

apt-get update -y 出现以下告警
Reading package lists... Done
W: https://download.docker.com/linux/ubuntu/dists/jammy/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details.

解决办法:
sudo apt-key list

wangji@DESKTOP-9TAUMH9:~$ apt-key list
Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).
/etc/apt/trusted.gpg
--------------------
pub   rsa4096 2015-05-29 [SC]
      2EE0 EA64 E40A 89B8 4B2D  F734 99E8 2A75 642A C823
uid           [ unknown] sbt build tool <scalasbt@gmail.com>
sub   rsa4096 2015-05-29 [E]

pub   rsa4096 2017-02-22 [SCEA]
      9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid           [ unknown] Docker Release (CE deb) <docker@docker.com>
sub   rsa4096 2017-02-22 [S]

/etc/apt/trusted.gpg.d/sbt.gpg
------------------------------
pub   rsa4096 2015-05-29 [SC]
      2EE0 EA64 E40A 89B8 4B2D  F734 99E8 2A75 642A C823
uid           [ unknown] sbt build tool <scalasbt@gmail.com>
sub   rsa4096 2015-05-29 [E]

/etc/apt/trusted.gpg.d/ubuntu-keyring-2012-cdimage.gpg
------------------------------------------------------
pub   rsa4096 2012-05-11 [SC]
      8439 38DF 228D 22F7 B374  2BC0 D94A A3F0 EFE2 1092
uid           [ unknown] Ubuntu CD Image Automatic Signing Key (2012) <cdimage@ubuntu.com>

/etc/apt/trusted.gpg.d/ubuntu-keyring-2018-archive.gpg
------------------------------------------------------
pub   rsa4096 2018-09-17 [SC]
      F6EC B376 2474 EDA9 D21B  7022 8719 20D1 991B C93C
uid           [ unknown] Ubuntu Archive Automatic Signing Key (2018) <ftpmaster@ubuntu.com>

选择出现告警的key进行修复,我这里显然是docker,且仅取出上述key最后的8个字符即可0EBF CD88

wangji@DESKTOP-9TAUMH9:~$ sudo apt-key export 0EBFCD88| sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/docker.gpg

ref:

36.wget --no-check-certificate 问题解决

添加 --no-check-certificate
使用.wgetrc 文件(以后都就可以了)

echo "check_certificate = off" >> ~/.wgetrc

ref:

40.Windows设置暗黑主题方案

10 个适用于 Google Chrome 的最佳黑暗模式扩展

最好用的感觉还是浏览器自带的暗模式
Step1

  • 依次点击:设置 > 个性化 > 颜色 > 选择默认应用模式 > 深色,来开启系统深色主题。
  • 此时,Chrome的标题栏和状态栏,应该会变成深色,但是网页的主体部分没有变化。
    在这里插入图片描述
    Step2
  • 打开 Chrome,并在地址栏中输入(或复制+粘贴)“ chrome://flags ”,然后按 “Enter”
  • 然后,在搜索框中,输入 “dark mode”,找到选项之后,把右侧的状态,改为 “Enable”
  • 重新启动浏览器,即可完成设置。
    在这里插入图片描述

41.pdf翻译

知云文献翻译

42.ubuntu20.04 install/uninstall gcc11

sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
sudo apt install -y gcc-11
gcc-11 --version
sudo apt purge --autoremove -y gcc-11
sudo rm -rf /etc/apt/trusted.gpg.d/ubuntu-toolchain-r_ubuntu_test.gpg
sudo rm -rf /etc/apt/sources.list.d/ubuntu-toolchain-r-ubuntu-test-focal.list

43.clang-format配置

vscode安装clang-format插件
在这里插入图片描述

jiang下属配置放到工程目录的.clang-format即可:

---
Language: Cpp
# BasedOnStyle: Google
AccessModifierOffset: -4
AlignAfterOpenBracket: DontAlign
# T503 : 2-2-5
AlignConsecutiveAssignments: Consecutive
AlignConsecutiveDeclarations: false
AlignConsecutiveMacros: false
AlignEscapedNewlines: Left
AlignOperands: false
AlignTrailingComments: false
AllowAllParametersOfDeclarationOnNextLine: false
AllowShortBlocksOnASingleLine: Never
AllowShortCaseLabelsOnASingleLine: false
AllowShortFunctionsOnASingleLine: None
AllowShortIfStatementsOnASingleLine: Never
# T503 : 2-4-1
AllowShortLambdasOnASingleLine: Empty
AllowShortLoopsOnASingleLine: false
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: true
# To be included in T503
AlwaysBreakTemplateDeclarations: Yes
BinPackArguments: false
BinPackParameters: false
BraceWrapping:
  # T503 : 2-2-2, 2-1-2
  AfterCaseLabel: true
  AfterClass: true
  # T503 : 2-1-2
  AfterControlStatement: Always
  AfterEnum: true
  AfterFunction: true
  AfterNamespace: true
  AfterObjCDeclaration: false
  AfterStruct: true
  AfterUnion: true
  AfterExternBlock: false
  BeforeCatch: false
  # T503: 2-1-2
  BeforeElse: true
  IndentBraces: false
  SplitEmptyFunction: false
  SplitEmptyRecord: false
  SplitEmptyNamespace: false
BreakAfterJavaFieldAnnotations: false
BreakBeforeBinaryOperators: All
BreakBeforeBraces: Custom
BreakBeforeTernaryOperators: true
# To be included in T503
BreakConstructorInitializers: BeforeComma
BreakInheritanceList: BeforeComma
BreakStringLiterals: true
# T503 : 2-1-1
ColumnLimit: 80
CommentPragmas: '^ clang-format:'
CompactNamespaces: false
ConstructorInitializerAllOnOneLineOrOnePerLine: false
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 4
Cpp11BracedListStyle: true
DeriveLineEnding: false
DerivePointerAlignment: false
DisableFormat: false
ExperimentalAutoDetectBinPacking: false
FixNamespaceComments: true
ForEachMacros:
  - foreach
  - Q_FOREACH
  - BOOST_FOREACH
IncludeBlocks: Preserve
# To be included in T503
IncludeCategories:
  - Regex: '^<.*\.h>'
    Priority: 1
  - Regex: '^<.*'
    Priority: 2
  - Regex: '.*'
    Priority: 3
IncludeIsMainRegex: '(Test)?$'
IndentCaseLabels: false
IndentPPDirectives: BeforeHash
IndentWidth: 4
IndentWrappedFunctionNames: false
JavaScriptQuotes: Leave
JavaScriptWrapImports: true
KeepEmptyLinesAtTheStartOfBlocks: true
MacroBlockBegin: '^MR_HEADER$'
MacroBlockEnd: '^MR_FOOTER$'
MaxEmptyLinesToKeep: 1
NamespaceIndentation: None
ObjCBlockIndentWidth: 2
ObjCSpaceAfterProperty: false
ObjCSpaceBeforeProtocolList: false
PenaltyBreakAssignment: 2
PenaltyBreakBeforeFirstCallParameter: 1
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakString: 1000
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 200
PointerAlignment: Left
ReflowComments: true
SortIncludes: false 
SortUsingDeclarations: false
SpaceAfterCStyleCast: false
SpaceAfterLogicalNot: false
SpaceAfterTemplateKeyword: true
SpaceBeforeAssignmentOperators: true
SpaceBeforeCpp11BracedList: false
SpaceBeforeParens: ControlStatements
SpaceBeforeRangeBasedForLoopColon: true
SpaceInEmptyBlock: true
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 2
SpacesInAngles: false
SpacesInConditionalStatement: false
SpacesInContainerLiterals: true
SpacesInCStyleCastParentheses: false
SpacesInParentheses: false
SpacesInSquareBrackets: false
SpaceBeforeSquareBrackets: false
Standard: Auto
TabWidth: 4
UseCRLF: false
UseTab: Never
...

44.ubuntu 配置命令提示符

Bash 命令提示符定制指南

可用的配置如下:

## PS1&PS2
## get current branch in git repo
function parse_git_branch() {
 BRANCH=`git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/\1/'`
 if [ ! "${BRANCH}" == "" ]
 then
  STAT=`parse_git_dirty`
  echo "[${BRANCH}${STAT}]"
 else
  echo ""
 fi
}

## get current status of git repo
function parse_git_dirty {
 status=`git status 2>&1 | tee`
 dirty=`echo -n "${status}" 2> /dev/null | grep "modified:" &> /dev/null; echo "$?"`
 untracked=`echo -n "${status}" 2> /dev/null | grep "Untracked files" &> /dev/null; echo "$?"`
 ahead=`echo -n "${status}" 2> /dev/null | grep "Your branch is ahead of" &> /dev/null; echo "$?"`
 newfile=`echo -n "${status}" 2> /dev/null | grep "new file:" &> /dev/null; echo "$?"`
 renamed=`echo -n "${status}" 2> /dev/null | grep "renamed:" &> /dev/null; echo "$?"`
 deleted=`echo -n "${status}" 2> /dev/null | grep "deleted:" &> /dev/null; echo "$?"`
 bits=''
 if [ "${renamed}" == "0" ]; then
  bits=">${bits}"
 fi
 if [ "${ahead}" == "0" ]; then
  bits="*${bits}"
 fi
 if [ "${newfile}" == "0" ]; then
  bits="+${bits}"
 fi
 if [ "${untracked}" == "0" ]; then
  bits="?${bits}"
 fi
 if [ "${deleted}" == "0" ]; then
  bits="x${bits}"
 fi
 if [ "${dirty}" == "0" ]; then
  bits="!${bits}"
 fi
 if [ ! "${bits}" == "" ]; then
  echo " ${bits}"
 else
  echo ""
 fi
}

## return
function get_return() {
    RETVAL=$?
    # Normal
    [ $RETVAL -eq 0 ] && echo -e "\033[32m▶ \033[0m"
    # Ctrl + C
    [ $RETVAL -eq 130 ] && echo -e "\033[32m▶ \033[0m"
    # Ctrl + Z
    [ $RETVAL -eq 148 ] && echo -e "\033[32m▶ \033[0m"

    # Error
    [ $RETVAL -ne 0 ] && [ $RETVAL -ne 130 ] && [ $RETVAL -ne 148 ] && echo -e "\033[31m✗ \033[0m"
}

export PS1="\`get_return\`\[\e[36m\][\W]\[\e[m\]\[\e[35m\]\`parse_git_branch\`\[\e[m\]\[\e[33m\]\\$\[\e[m\] "
export PS2="\[\e[32m\]>\[\e[m\] "

在新建一个~/.bashrc_ps1_ps2文件,然后填入上述内容;
在/.bashrc中,填入以下内容即可:

. ~/.bashrc_ps1_ps2

45.wsl2中安装kali

(1)打开微软商店安装kali
在这里插入图片描述

安装完毕后打开kali,可能会出现WslRegisterDistribution failed with error: 0x80004005错误
在PowerShell中执行wsl --update即可

(2)配置kali源

sed -i "s@http://http.kali.org/kali@https://mirrors.tuna.tsinghua.edu.cn/kali@g" /etc/apt/sources.list

(3)Install the dependencies

sudo apt update 
sudo apt install kali-win-kex

(4)open the GUI

  • 可能需要输入密码,输入即可
kex

(5)install burpsuit

  • built-in version:
sudo apt-get install -y burpsuite 

使用步骤如下:

下载 Zip 文件并解压。
使用 Sudo 执行 Kali_Linux_Setup.sh 文件,sudo ./Kali_Linux_Setup.sh

Burp Suite Pro 激活步骤
修改加载窗口中的许可证字符串 “license to Siddharth Sangwan”。
从加载窗口复制许可证密钥并粘贴到 Burp Suite Pro 中,然后点击下一步。
选择 Burp Suite Pro 右下方的手动激活选项。
从 BurpSuite_Pro 中复制许可证请求并粘贴到加载器中。
从加载器中复制许可证响应并粘贴到 Burp Suite Pro 中,然后点击下一步并完成。
现在 Burp Suite Pro 已为根用户激活,要重新启动它,只需在终端运行以下命令:sudo burp

结果展示:
在这里插入图片描述

启动

sudo burp

参考:

46.WSL2 install plantuml.jar

下载jar包:
在这里插入图片描述

放在~/.java/下面:

[test]$ 
▶ [test]$ ll ~/.java/
total 9540
drwxr-xr-x  4 wangji wangji    4096 Mar 18 13:55 ./
drwxrwxr-x 71 wangji wangji    4096 Mar 18 13:58 ../
drwx------  3 wangji wangji    4096 Nov 15  2022 .userPrefs/
drwxr-xr-x  5 wangji wangji    4096 Mar 18 13:51 fonts/
-rwxr-xr-x  1 wangji wangji 9749978 Mar 18 13:59 plantuml.jar*
▶ [test]$ 

vscode 的preview enhance中配置plantuml.jar包的绝对路径:
在这里插入图片描述

参考:

47. The repository ‘http://mirrors.kernel.org/ubuntu hirsute Release’ does not have a Release file

执行sudo apt-get update -y,出现以下的结果:

E: The repository 'http://mirrors.kernel.org/ubuntu hirsute Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details

解决办法:

sudo vim /etc/apt/sources.list
在出问题的deb后面增加[trusted=yes]

参考:

48.

  • 8
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
分成两个分卷进行压缩 《Ubuntu权威指南》目录 目  录 第1章 系统概述与安装 1 1.1 Linux的兴起与发展 2 1.2 充分利用网上资源 3 1.2.1 Ubuntu官方网站 3 1.2.2 GNU网站 4 1.2.3 Linux文档项目网站 4 1.2.4 网上求助 5 1.3 随时查询随机文档 6 1.3.1 使用“--help”选项查询 命令的简单说明 6 1.3.2 使用man命令联机查询 系统参考手册 6 1.3.3 使用info命令查询命令的相关信息 8 1.4 安装Ubuntu Linux系统 9 1.4.1 安装前的准备 10 1.4.2 安装Ubuntu Linux系统 11 1.4.3 安装后的软件维护与更 16 第2章 GNOME桌面环境 18 2.1 GNOME桌面环境概述 19 2.1.1 GNOME注册界面 19 2.1.2 GNOME桌面环境 20 2.2 GNOME桌面环境浏览 21 2.2.1 GNOME菜单面板 21 2.2.2 GNOME桌面区 24 2.2.3 GNOME窗口面板 26 2.3 应用程序菜单 27 2.3.1 办公 28 2.3.2 附件 29 2.3.3 互联网 31 2.3.4 图形 33 2.3.5 影音 34 2.3.6 游戏 36 2.3.7 添加/删除软件 36 2.4 位置菜单 36 2.4.1 主文件夹 38 2.4.2 桌面、文档等 39 2.4.3 计算机 39 2.4.4 CD/DVD刻录机 39 2.4.5 磁盘分区 40 2.4.6 网络 40 2.4.7 连接到服务器 41 2.4.8 搜索文件 41 2.4.9 最近的文档 42 2.5 系统菜单 42 2.5.1 首选项 42 2.5.2 系统管理 45 2.5.3 锁住屏幕 51 2.5.4 注销 51 2.5.5 关机 51 2.6 使用移动存储设备 51 2.6.1 浏览移动存储介质 52 2.6.2 写入移动存储介质 53 2.7 定制GNOME桌面环境 54 2.7.1 定制面板 54 2.7.2 定制桌面背景 54 2.7.3 定制菜单面板 55 第3章 命令行基础知识 56 3.1 命令行结构 57 3.2 后台进程 60 3.3 标准输入/标准输出与标准错误 ?输出 61 3.4 输入/输出重定向 61 3.5 管道 65 3.6 元字符与文件名生成 67 3.7 转义与引用 69 3.8 命令历史 72 3.8.1 fc命令 72 3.8.2 history命令 74 3.8.3 重复执行先前的命令 75 3.8.4 编辑并执行校正后的命令 76 3.8.5 命令行补充 77 3.9 命令别名 79 3.10 作业控制 81 3.11 会话记录与命令确认 83 3.11.1 保存会话记录 83 3.11.2 确保使用的命令是 ??正确的 84 第4章 文件系统基础知识 86 4.1 文件系统的层次结构 87 4.1.1 树形层次结构 87 4.1.2 路径名 88 4.2 文件系统的组织结构 88 4.3 文件的类型 92 4.3.1 普通文件 92 4.3.2 目录文件 94 4.3.3 特殊文件 95 4.3.4 链接文件 98 4.3.5 符号链接文件 99 4.3.6 管道文件 101 4.4 文件的安全保护机制 101 4.4.1 显示文件的访问权限 102 4.4.2 修改文件的访问权限 103 4.4.3 设置文件的访问权限 104 4.4.4 其他访问权限设置 106 第5章 文件和目录操作 107 5.1 创建文件 108 5.2 显示文件列表 108 5.2.1 使用ls命令显示文件 列表 108 5.2.2 利用通配符显示文件 110 5.2.3 显示隐藏文件 111 5.2.4 递归地列出文件 112 5.3 显示文件内容 113 5.3.1 使用cat命令显示文件 113 5.3.2 使用more命令分页显示 文件 113 5.3.3 使用less命令分页显示 文件 114 5.3.4 使用head命令显示文件 前几行内容 115 5.3.5 使用tail命令显示文件 最后几行内容 116 5.4 复制文件 116 5.5 移动文件 117 5.6 删除文件 118 5.7 显示当前工作目录 119 5.8 改换目录 119 5.9 创建目录 121 5.10 移动目录 121 5.11 复制目录 121 5.12 删除目录 122 5.13 比较文件之间的差别 123 5.13.1 使用diff命令比较两个 ??文件 123 5.13.2 使用diff3命令比较3个 ??文件 123 5.14 从系统中检索文件 124 5.14.1 简单检索 126 5.14.2 使用逻辑运算符 126 5.14.3 利用find命令本身实现 ??其他处理功能 126 5.14.4 利用管道实现其他 ??处理功能 127 5.15 检索文件内容 127 5.15.1 利用grep检索文件 ??内容 127 5.15.2 过滤其他命令的输出 ??数据 128 5.15.3 使用grep检索多个文件 128 5.15.4 检索不包含特定字符 ??串的文本行 129 5.15.5 在grep中使用正则 ??表达式 129 5.15.6 检索元字符本身 131 5.15.7 在命令行中使用引号 131 5.16 排序 132 第6章 编辑文件 133 6.1 启动vim编辑器 134 6.1.1 创建文件 134 6.1.2 状态行 135 6.2 vim编辑器的两种工作模式 135 6.2.1 输入模式 135 6.2.2 命令模式 135 6.3 保存编辑的文件并退出vim 136 6.4 vim编辑器的基本命令 137 6.4.1 移动光标位置 137 6.4.2 输入文本 138 6.4.3 修改与替换文本 138 6.4.4 撤销先前的修改 139 6.4.5 删除文本 139 6.4.6 复制、删除与粘贴文本 140 6.4.7 按指定的数量重复执行 命令 141 6.5 使用ex命令 141 6.5.1 显示行号 141 6.5.2 多行复制 142 6.5.3 移动文本行 142 6.5.4 删除文本行 142 6.6 检索与替换 142 6.6.1 检索字符串 142 6.6.2 模式检索 143 6.6.3 替换字符串 144 6.7 编辑多个文件 145 6.7.1 编辑多个文件 145 6.7.2 合并文件与合并文本行 145 6.8 定制vim编辑器的运行环境 145 6.8.1 临时设定vim的运行 环境 145 6.8.2 永久性地定制vim的 运行环境 148 6.9 其他特殊说明 148 6.9.1 删除或替换特殊字符 148 6.9.2 在编辑期间运行Linux 命令 149 6.10 vim编辑器命令总结 149 第7章 Shell基础知识 153 7.1 引言 154 7.1.1 为什么需要Shell编程 154 7.1.2 什么是Shell脚本 155 7.1.3 运行Shell脚本 155 7.1.4 退出与出口状态 156 7.1.5 调用适当的Shell解释 程序 158 7.1.6 位置参数 159 7.2 变量与变量替换 161 7.2.1 变量分类 162 7.2.2 变量的赋值 162 7.2.3 内部变量 163 7.2.4 变量的引用与替换 165 7.2.5 变量的间接引用 167 7.2.6 特殊的变量替换 167 7.2.7 变量声明与类型定义 170 7.3 命令与命令替换 171 7.3.1 Shell内部命令 171 7.3.2 部分命令介绍 174 7.3.3 命令替换 183 7.4 test语句 185 7.4.1 文件测试运算符 186 7.4.2 字符串测试运算符 187 7.4.3 整数值测试运算符 188 7.4.4 逻辑运算符 189 7.5 命令行的解释执行过程 190 7.5.1 读取命令行 191 7.5.2 命令历史替换 191 7.5.3 别名替换 192 7.5.4 花括号扩展 192 7.5.5 波浪号替换 192 7.5.6 I/O重定向 193 7.5.7 变量替换 194 7.5.8 算术运算结果替换 195 7.5.9 命令替换 195 7.5.10 单词解析 195 7.5.11 文件名生成 196 7.5.12 引用字符处理 197 7.5.13 进程替换 197 7.5.14 环境处理 198 7.5.15 执行命令 198 7.5.16 跟踪执行过程 199 第8章 Shell高级编程 200 8.1 if条件语句 201 8.1.1 if语句的表现形式 201 8.1.2 嵌套的if-then 条件测试 202 8.1.3 if-then结构参考 204 8.2 case分支语句 205 8.3 for循环语句 207 8.4 while循环语句 210 8.5 until循环语句 212 8.6 select循环语句 213 8.7 嵌套的循环 214 8.8 循环控制与辅助编程命令 215 8.8.1 break和continue命令 215 8.8.2 true命令 217 8.8.3 sleep命令 217 8.8.4 shift命令 217 8.8.5 getopt命令 218 8.8.6 getopts命令 219 8.9 循环语句的I/O重定向 221 8.9.1 while循环的I/O重定向 221 8.9.2 until循环的I/O重定向 222 8.9.3 for循环的I/O重定向 222 8.10 Here文档 223 8.11 Shell函数 227 8.12 逻辑与和逻辑或并列结构 232 8.12.1 逻辑与命令并列结构 232 8.12.2 逻辑或命令并列结构 233 8.13 Shell数组 233 8.14 信号的捕捉与处理 238 8.15 其他Shell课题 241 8.15.1 子Shell 241 8.15.2 Shell脚本的调试 242 8.15.3 系统性能考虑 246 第9章 进程管理 248 9.1 ps命令概述 249 9.2 查询进程及其状态信息 251 9.2.1 查询当前活动的进程 251 9.2.2 查询系统中的所有进程 251 9.2.3 显示进程的重要状态 信息 252 9.2.4 显示进程的详细状态 信息 253 9.2.5 显示进程间的调用关系 253 9.2.6 pstree命令 254 9.3 监控进程及系统资源 255 9.4 终止进程的运行 259 9.5 调整分时进程的优先级 261 9.5.1 nice命令 261 9.5.2 renice命令 263 9.5.3 调整进程优先级的作用 263 第10章 proc文件系统 265 10.1 进程内存映像文件 266 10.2 系统配置信息 270 10.3 系统运行状态信息 273 10.4 系统可调参数 276 10.4.1 文件系统可调参数 277 10.4.2 系统内核可调参数 277 10.4.3 sysctl命令 281 10.5 其他重要的子目录 282 第11章 磁盘空间管理 285 11.1 查询磁盘空间信息 286 11.1.1 常用的磁盘空间 ??管理工具 286 11.1.2 使用df命令检查磁盘 ??空间的使用情况 286 11.1.3 使用du命令检查目录 ??占用的存储空间 289 11.1.4 使用find命令找出超过 ??一定容量限制的文件 290 11.1.5 使用find命令找出并删除 ??长期闲置不用的文件 290 11.1.6 使用find命令找出并删除 ??core文件 292 11.1.7 使用ls命令检测文件的 ??大小 292 11.2 采用标准工具备份与恢复数据 292 11.2.1 利用cpio实现备份和 ??恢复 294 11.2.2 利用tar实现备份和 ??恢复 298 11.2.3 利用dd实现文件系统的 ??原样复制 304 11.3 采用专用工具备份与恢复数据 305 11.3.1 利用dump命令实现数据的 ??备份 306 11.3.2 利用restore命令实现 ??数据的恢复 308 11.4 文件系统限额管理 310 11.4.1 限额概述 310 11.4.2 设置限额 312 11.4.3 限额的维护 315 第12章 软件管理 318 12.1 软件管理概述 319 12.1.1 软件维护工具 319 12.1.2 软件管理基本概念 319 12.2 利用apt-get管理软件包 321 12.2.1 安装软件包 323 12.2.2 系统的更与升级 324 12.2.3 删除软件包 325 12.2.4 安装本地存储介质中的 ??软件包 325 12.2.5 sources.list配置文件 325 12.3 利用aptitude管理软件包 327 12.3.1 安装软件包 329 12.3.2 系统的升级 330 12.3.3 查询软件包 330 12.3.4 检索软件包 330 12.3.5 删除软件包 332 12.3.6 图形界面 333 12.4 synaptic图形界面软件管理 工具 333 12.4.1 浏览软件包 335 12.4.2 安装软件包 335 12.4.3 删除软件包 336 12.4.4 软件升级 337 12.5 GNOME软件增删工具 338 12.6 软件包的自动更 339 第13章 用户管理 341 13.1 增加与删除用户 342 13.1.1 /etc/passwd文件 342 13.1.2 /etc/shadow文件 343 13.1.3 用户管理实例 344 13.2 定制用户的工作环境 349 13.2.1 选择命令解释程序 349 13.2.2 设置用户初始化文件 351 12.2.3 定制Shell工作环境 353 13.3 增加与删除用户组 359 13.4 监控用户 360 13.4.1 利用who命令查询 ??系统中的用户 361 13.4.2 利用finger命令查询 ??系统中的用户 362 13.4.3 利用w命令查询系统 ??中的用户活动 362 13.4.4 向注册用户发送消息 362 13.5 插件式认证模块 363 13.5.1 配置文件、模块类型与 ??控制标志 363 13.5.2 修改PAM配置文件 366 13.6 超级用户与sudo命令 366 13.6.1 超级用户的访问控制 367 13.6.2 利用sudo运行特权 ??命令 368 13.6.3 sudoers配置文件 369 13.6.4 admin用户组成员的 ??访问权限 373 13.6.5 直接使用root注册 373 13.6.6 以不同的用户身份 ??访问系统 373 第14章 系统启动与关机 375 14.1 磁盘分区与GRUB 376 14.1.1 磁盘分区 376 14.1.2 GRUB 378 14.1.3 GRUB配置文件 379 14.1.4 安装或修复GRUB 381 14.2 初始引导过程 383 14.2.1 GRUB引导过程概述 384 14.2.2 补充说明 386 14.3 系统生成过程 386 14.3.1 基本概念 388 14.3.2 init进程与/etc/event.d ??目录 391 14.3.3 启动用户定义的应用 ??程序 394 14.4 Login进程 395 14.4.1 login进程与passwd ??文件 395 14.4.2 Shell进程与profile ??文件 395 14.5 系统关机过程 396 14.5.1 使用shutdown命令 ??关闭系统 396 14.5.2 使用init命令关闭系统 397 14.5.3 使用其他命令关机 397 第15章 作业调度与系统日志 398 15.1 定时运行后台作业 399 15.1.1 cron守护进程的 ??调度过程 399 15.1.2 at作业与atd守护进程 400 15.1.3 调度错失执行时间 ??的任务 401 15.2 调度重复执行的任务 402 15.2.1 crontab文件的工作原理 402 15.2.2 创建和编辑crontab ??文件 404 15.2.3 显示crontab文件 405 15.2.4 删除crontab文件 405 15.2.5 crontab命令的访问控制 405 15.2.6 应用实例—数据库 ??定时备份 406 15.3 调度一次性执行的作业 407 15.3.1 提交at作业 408 15.3.2 显示at作业及作业队列 409 15.3.3 删除at作业 409 15.3.4 at命令的访问控制 409 15.3.5 应用实例—系统 ??定时关机 410 15.4 系统日志 411 15.4.1 系统日志文件 412 15.4.2 应用程序日志文件 413 15.4.3 无法直接查阅的日志 413 15.4.4 系统日志守护进程 414 第16章 文件系统内部组织 417 16.1 文件系统的组织结构 418 16.1.1 引导块 419 16.1.2 数据块组 419 16.2 超级块 422 16.3 信息节点 424 16.3.1 文件的类型与访问权限 426 16.3.2 数据块地址数组 426 16.3.3 符号链接文件 427 16.3.4 特权标志位 427 16.4 信息节点与目录及文件的关系 428 16.4.1 目录文件 428 16.4.2 目录、文件和信息节点 ???三者之间的关系 429 第17章 文件系统管理 431 17.1 划分磁盘分区 432 17.2 创建文件系统 434 17.2.1 mkfs或mke2fs命令 ??介绍 434 17.2.2 创建Ext2/Ext3文件 ??系统 436 17.3 调整文件系统 437 17.4 安装与卸载文件系统 439 17.4.1 安装文件系统概述 439 17.4.2 mount命令 440 17.4.3 /etc/fstab文件 441 17.4.4 安装文件系统 442 17.4.5 卸载文件系统 444 17.5 检测与修复文件系统 446 17.5.1 何时需要检测文件系统 447 17.5.2 文件系统检测的内容 448 17.5.3 交互地检测与修复 ??文件系统 452 17.5.4 自动检测与修复文件 ??系统 453 17.5.5 恢复严重受损的超级块 454 17.5.6 解决fsck命令无法修复 ??的文件系统问题 454 17.5.7 fsck的阶段处理方式 455 17.6 调试文件系统 458 17.6.1 概述 458 17.6.2 交互式调试子命令 459 17.6.3 应用举例1—恢复 ??误删的文件 464 17.6.4 应用举例2—恢复 ??误删的文件 465 17.7 其他文件系统维护工具 467 17.7.1 dumpe2fs命令 467 17.7.2 e2image命令 468 第18章 TCP/IP网络管理 470 18.1 TCP/IP简介 471 18.1.1 TCP/IP的层次结构 471 18.1.2 TCP/IP如何处理数据 ??通信 473 18.2 网络接口设置 475 18.2.1 以太网络设置 475 18.2.2 ADSL网络连接 480 18.3 主机名字解析 483 18.4 网络路由设置 484 18.5 配置网络服务 485 18.6 网络管理与维护 487 18.6.1 使用ifconfig命令维护 ??网络接口 487 18.6.2 使用netstat命令监控 ??网络状态 489 18.6.3 使用ping命令测试远程 ??主机的连通性 494 18.6.4 使用ping命令检测网络 ??主机的性能 495 18.6.5 使用ftp命令检测网络 ??主机的传输性能 496 18.6.6 使用traceroute命令跟踪 ??路由信息 496 18.6.7 利用tcpdump捕捉、分析 ??网络分组数据 497 第19章 TCP/IP网络应用 501 19.1 OpenSSH 502 19.1.1 安装OpenSSH服务器 502 19.1.2 /etc/ssh/sshd_config ??配置文件 502 19.1.3 使用SSH注册到 ??远程系统 505 19.1.4 使用ssh执行远程系统 ??中的命令 506 19.1.5 使用SCP替代FTP 506 19.1.6 使用SFTP替代FTP 507 19.1.7 SSH与SCP的无 ??密码注册 508 19.1.8 OpenSSH的安全考虑 510 19.2 Telnet远程注册 510 19.2.1 设置Telnet服务器 511 19.2.2 Telnet服务器的安全 ??考虑 512 19.3 FTP文件传输 513 19.3.1 设置vsftpd 513 19.3.2 vsftpd.conf配置文件 513 19.3.3 FTP安全考虑 517 19.3.4 FTP应用 518 19.3.5 FTP自动注册 519 第20章 DNS域名服务器 521 20.1 DNS基本概念 522 20.1.1 域与区 522 20.1.2 DNS域名服务器 523 20.1.3 DNS域名与地址解析 524 20.2 DNS配置文件 526 20.2.1 resolv.conf文件 527 20.2.2 named.conf配置文件 528 20.2.3 区配置文件 532 20.2.4 DNS资源记录 533 20.3 DNS服务器配置过程 537 20.3.1 设置resolv.conf配置 ??文件 537 20.3.2 设置named.conf配置 ??文件 537 20.3.3 设置正向区配置文件 538 20.3.4 设置反向区配置文件 539 20.3.5 DNS视图 540 20.3.6 检测配置文件 543 20.4 测试DNS服务器 544 20.4.1 验证DNS服务器 544 20.4.2 dig命令 545 第21章 NFS网络文件系统 548 21.1 NFS简述 549 21.2 配置NFS服务器 550 21.2.1 安装NFS服务器 ??软件包 550 21.2.2 /etc/exports文件 551 21.2.3 采用图形界面配置NFS ??共享资源 553 21.2.4 验证NFS共享资源的 ??配置 555 21.3 配置NFS客户系统 557 21.3.1 安装远程文件系统 557 21.3.2 设置/etc/fstab文件 558 21.4 NFS自动安装 559 21.4.1 主映射文件 559 21.4.2 直接映射文件 560 21.4.3 间接映射文件 560 21.5 NFS故障修复 561 21.5.1 基本工具 561 21.5.2 其他注意事项 564 第22章 amba资源共享 565 22.1 安装Samba服务器 566 22.2 smb.conf配置文件 567 22.2.1 smb.conf配置文件概述 568 22.2.2 Global节 569 22.2.3 homes节 572 22.2.4 printers节 574 22.3 快速设置Samba服务器 575 22.3.1 设定Samba服务器的 ??工作组或域 575 22.3.2 设置Samba用户认证 ??信息 576 22.3.3 共享用户主目录 577 22.3.4 共享其他目录 577 22.3.5 共享打印机 578 22.3.6 验证Samba配置文件 579 22.4 Samba运行环境测试 580 22.4.1 在Linux系统中测试 ??Samba服务器 580 22.4.2 从Windows系统中 ??连接Samba服务器 583 22.5 访问共享资源 584 22.5.1 从Windows系统中访问 ??Samba服务器 584 22.5.2 从Linux系统中访问 Windows服务器 585 第23章 Apache服务器 588 23.1 Apache服务器概述 589 23.2 启动Apache服务器 589 23.2.1 Apache软件包的目录 ??结构 589 23.2.2 apache2守护进程 590 23.2.3 设置Apache启动脚本 591 23.2.4 Apache模块 592 23.3 配置Apache服务器 592 23.3.1 Apache配置文件 593 23.3.2 .htaccess文件 594 23.3.3 配置指令 594 23.4 用户目录 599 23.4.1 利用UserDir设定 ??目录路径 600 23.4.2 限定用户目录的使用 600 23.4.3 开放用户CGI目录 600 23.5 虚拟主机 601 23.5.1 配置基于主机名的虚拟 主机 602 23.5.2 配置基于IP地址的 ??虚拟主机 603 23.5.3 利用不同的IP地址提供 ??相同的网站服务 604 23.5.4 利用不同的端口提供 ??不同的网站服务 604 23.6 利用CGI提供动态内容服务 605 23.6.1 启用CGI程序 605 23.6.2 编写CGI程序 606 23.6.3 CGI的安全考虑与 ??suexec 608 23.6.4 Apache与LAMP 609 23.7 用户认证 610 23.7.1 用户认证的实现 610 23.7.2 用户认证方法的补充 ??说明 612 23.8 日志文件 613 23.8.1 错误日志文件 614 23.8.2 访问日志文件 615 23.8.3 虚拟主机日志 617 第24章 MySQL数据库 618 24.1 安装与配置MySQL数据库 619 24.1.1 安装MySQL数据库 619 24.1.2 my.cnf配置文件 619 24.1.3 MySQL数据库命令行 界面 621 24.1.4 MySQL数据库图形界面 622 24.1.5 设置数据库用户及其 ??访问权限 624 24.2 访问MySQL数据库 624 24.2.1 创建、查询、使用与删除 数据库 624 24.2.2 创建、查询与删除数 据库表 625 24.2.3 录入数据 626 24.3 查询MySQL数据库 627 24.3.1 查询数据库表 627 24.3.2 查询数据库表结构 628 24.3.3 查询数据库表中的数据 内容 628 24.4 SQL脚本与批处理 628 24.5 MySQL数据库 630 24.5.1 数据库备份方法 630 24.5.2 MySQL数据库备份 631 24.5.3 MySQL数据库恢复 632 24.5.4 MySQL数据库表的 备份与恢复 633 24.5.5 增量备份与恢复 633 24.6 密码维护与网络安全 635 24.6.1 维护数据库管理员密码 635 24.6.2 恢复数据库管理员密码 636 24.6.3 基本网络安全考虑 637 参考文献 638
分成两个分卷进行压缩 《Ubuntu权威指南》目录 目  录 第1章 系统概述与安装 1 1.1 Linux的兴起与发展 2 1.2 充分利用网上资源 3 1.2.1 Ubuntu官方网站 3 1.2.2 GNU网站 4 1.2.3 Linux文档项目网站 4 1.2.4 网上求助 5 1.3 随时查询随机文档 6 1.3.1 使用“--help”选项查询 命令的简单说明 6 1.3.2 使用man命令联机查询 系统参考手册 6 1.3.3 使用info命令查询命令的相关信息 8 1.4 安装Ubuntu Linux系统 9 1.4.1 安装前的准备 10 1.4.2 安装Ubuntu Linux系统 11 1.4.3 安装后的软件维护与更 16 第2章 GNOME桌面环境 18 2.1 GNOME桌面环境概述 19 2.1.1 GNOME注册界面 19 2.1.2 GNOME桌面环境 20 2.2 GNOME桌面环境浏览 21 2.2.1 GNOME菜单面板 21 2.2.2 GNOME桌面区 24 2.2.3 GNOME窗口面板 26 2.3 应用程序菜单 27 2.3.1 办公 28 2.3.2 附件 29 2.3.3 互联网 31 2.3.4 图形 33 2.3.5 影音 34 2.3.6 游戏 36 2.3.7 添加/删除软件 36 2.4 位置菜单 36 2.4.1 主文件夹 38 2.4.2 桌面、文档等 39 2.4.3 计算机 39 2.4.4 CD/DVD刻录机 39 2.4.5 磁盘分区 40 2.4.6 网络 40 2.4.7 连接到服务器 41 2.4.8 搜索文件 41 2.4.9 最近的文档 42 2.5 系统菜单 42 2.5.1 首选项 42 2.5.2 系统管理 45 2.5.3 锁住屏幕 51 2.5.4 注销 51 2.5.5 关机 51 2.6 使用移动存储设备 51 2.6.1 浏览移动存储介质 52 2.6.2 写入移动存储介质 53 2.7 定制GNOME桌面环境 54 2.7.1 定制面板 54 2.7.2 定制桌面背景 54 2.7.3 定制菜单面板 55 第3章 命令行基础知识 56 3.1 命令行结构 57 3.2 后台进程 60 3.3 标准输入/标准输出与标准错误 ?输出 61 3.4 输入/输出重定向 61 3.5 管道 65 3.6 元字符与文件名生成 67 3.7 转义与引用 69 3.8 命令历史 72 3.8.1 fc命令 72 3.8.2 history命令 74 3.8.3 重复执行先前的命令 75 3.8.4 编辑并执行校正后的命令 76 3.8.5 命令行补充 77 3.9 命令别名 79 3.10 作业控制 81 3.11 会话记录与命令确认 83 3.11.1 保存会话记录 83 3.11.2 确保使用的命令是 ??正确的 84 第4章 文件系统基础知识 86 4.1 文件系统的层次结构 87 4.1.1 树形层次结构 87 4.1.2 路径名 88 4.2 文件系统的组织结构 88 4.3 文件的类型 92 4.3.1 普通文件 92 4.3.2 目录文件 94 4.3.3 特殊文件 95 4.3.4 链接文件 98 4.3.5 符号链接文件 99 4.3.6 管道文件 101 4.4 文件的安全保护机制 101 4.4.1 显示文件的访问权限 102 4.4.2 修改文件的访问权限 103 4.4.3 设置文件的访问权限 104 4.4.4 其他访问权限设置 106 第5章 文件和目录操作 107 5.1 创建文件 108 5.2 显示文件列表 108 5.2.1 使用ls命令显示文件 列表 108 5.2.2 利用通配符显示文件 110 5.2.3 显示隐藏文件 111 5.2.4
系统功能描述 该系统管理学生的课程信息。系统提供账户的管理和学生信息的管理功能。 系统提供的功能主要有学生信息的查询,修改,增加,删除,账户信息的查询,修改,增加,删除。 -------------------------------------------------- -------------------------------------- 登陆运行提示: -------------------------------------------------- -------------------------------------- 欢迎来到SIMS | 请选择您的帐户级别:| | [0]你是老师| [1]你是学生| [2]退出| | 选择一个数字:| -------------------------------------------------- -------------------------------------- 登录管理系统的账户分为管理员账户和普通账户: *普通用户只具有查询学生信息的功能: -------------------------------------------------- -------------------------------------- [1]搜索学生信息 [2]退出 选择一个数字: -------------------------------------------------- -------------------------------------- *管理员用户具有系统提供的所有功能: -------------------------------------------------- -------------------------------------- [1]搜索学生信息| [2]添加学生信息| [3]更学生信息| [4]删除学生信息| [5]搜索用户帐号| [6]添加用户帐号| [7]更用户帐号| [8]删除用户帐号| [9]退出| | 选择一个数字:| -------------------------------------------------- -------------------------------------- 系统数据主要存储在三个文件:configure.txt usr_account.txt student.txt。 usr_account.txt主要用于存放用户账户信息,0表示管理员账户,1表示普通用户 student.txt主要用于存放学生信息 configure.txt主要用于存放配置信息:usr_account.txt student.txt文件的存储位置路径信息,根据这个路径信息去读这两个文件 -------------------------------------------------- -------------------------------------- 系统在启动时会根据配置文件里的内容找到相应文件并读取出数据来加载账户信息和学生信息 SIMS用到的结构体: typedef struct user { char user_name [USER_NAME_LEN + 1]; char user_password [USER_PASSWORD_LEN + 1]; int users_limit; struct user * next; } USER_ACCOUNT,* pUSER_ACCOUNT; //注册账户信息 typedef struct course { int course_id; double course_score; }当然,* pCOURSE; //多个课程,课程结构体 typedef struct student { int stu_id; char stu_name [USER_NAME_LEN + 1]; 课程[COURSE_NUM]; 结构学生*下一个; } STUDENT,* pSTUDENT; //学生信息结构体 -------------------------------------------------- -------------------------------------- Windows下的是在Windows 10系统下的Visual Studio 2012开发的 Linux下的是在Linux ubuntu 4.10.0-42-generic#46~16.04.1-Ubuntu SMP Mon Dec 4 15:57:59 UTC 2017 x86_64 x86_64 x86_64 GNU / Linux下开发的 ****注**** windows版本随意使用; windows版本下的configure.txt和usr_account.txt student.txt在同一目录下, 要注意configure.txt内容要相应更改成这两个文件的绝对路径。 Linux的版本输入信息错误不能退格删除,只能重启;发送SIGINT信号结束进程 的Linux版本提示输入信息(任意字符)继续的时候不要输入回车,其他都行;

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

喜欢打篮球的普通人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值