1、用户相关:
[ 新建: useradd ]
新建用户命令$ useradd [选项] 登陆名
- -u:指定用户的 UID
- -g:指定 GID
- -c:指定 注释信息
- -d:
指定用户的 家目录, ```bash $ sudo useradd zhang // useradd userName
$ passwd zhang //passwd userName 给已创建的用户设置密码
// 说明 新创建的用户需要额外的参数在 /home/ 下创建对应的家目录
$ userdel zhang //userdel userName 删除用户userName $ rm -rf /home/zhang //删除用户 zhang 所在目录
创建新用户后, 同时在 etc/ 目录下的 passwd 文件中添加新用户的相关信息[ `用户管理` ]| `$ useradd [选项] 用户名` | 创建用户<br />无参数<br /> **会创建与用户名同名的组**,并且默认在_/home目录下创建与用户名同名的目录作为该用户主目录_-g:创建用户 and 指定用户组<br /><br />-d 用户主目录:创建用户并指定用户主目录<br /><br />-s /etc/shell:创建用户并指定用户登录后所使用的shell<br /><br />-c 备注:加上备注文字,备注保存在 passwd 的备注栏 <br /><br />**-d** 登入目录:指定用户登入时的启始目录<br /><br />-g 群组:指定用户所属的群组<br /><br />**-m**: 自动建立用户的登入目录<br /><br />-M:不要自动建立用户的登入目录<br /><br />-n:取消建立以 用户名称为名的 群组<br /><br />-u:指定用户的 id | 相对复杂, 自由度高<br /><br />如果单纯的<br />`$ useradd zhang`<br />会创建一个**_三无用户_**:<br />- 无用户家目录<br />- 无指定 shell 版本<br />- 无密码<br /><br /> || --- | --- | --- || `**_$ adduser userName_**` | 用法简单,例如 sudo adduser zhang //其实是一个 perl 脚本, 底层调用 useradd 命令<br /><br />adduser 会自动创建 用户家目录, 指定 shell 版本<br /><br />默认的 shell 是 /bin/sh 所以:<br />会有创建新用户之后 shell 无法自动补全或者基本的 shell 命令无法使用, tab 键无法自动补全<br /><br />解决:使用 root 查看** passwd 文件把默认的/etc/sh 修改为 /etc/bash** 就可以 | <br /><br /><br /><br /><br /> || | | |demo:```bash[root@/home/mi]# sudo useradd tt -m[root@/home/mi]# passwd tt新的 密码:无效的密码: WAY ??????无效的密码: 是回文重新输入新的 密码:passwd:已成功更新密码[root@/home/mi]# cd /home/[root@/home]# lsdata lost+found mi test tt[root@/home]# sudo vim /etc/passwd[root@/home]#mi:x:1000:1000:,,,:/home/mi:/bin/bashsshd:x:122:65534::/run/sshd:/usr/sbin/nologinzhang:x:1001:1001::/home/zhang:/bin/shzh:x:1002:1002::/home/data/:/bin/bashtt:x:1003:1003::/home/tt:/bin/sh
指定用户所使用的 shell**$ useradd -s /etc/shell userName** // 则新建用户 userName 使用的shell 是 /etc/shell
**adduser 演示demo:**
mi@mi-HP-ProDesk-680-G6-PCI-Microtower-PC:/home$ sudo adduser zh正在添加用户"zh"...正在添加新组"zh" (1002)...正在添加新用户"zh" (1002) 到组"zh"...创建主目录"/home/zh"...正在从"/etc/skel"复制文件...新的 密码:无效的密码: WAY ??????无效的密码: 是回文重新输入新的 密码:passwd:已成功更新密码正在改变 zh 的用户信息请输入新值,或直接敲回车键以使用默认值全名 []:房间号码 []:工作电话 []:家庭电话 []:其它 []:这些信息是否正确? [Y/n]mi@mi-HP-ProDesk-680-G6-PCI-Microtower-PC:/home$ lsdata lost+found mi test zhmi@mi-HP-ProDesk-680-G6-PCI-Microtower-PC:/home$adduser 命令会直接创建 用户家目录
[ 用户信息修改 ]
场景: 用 useradd 或 adduser 命令添加用户如果不小心填错用户信息,后期修改
method 1:
使用 vim 直接手动修改涉及用户信息的相关文件
/etc/passwd
/etc/shadow
/etc/group
/etc/gshadow
比如 /etc/passwd 文件
method 2:
使用 usermod 命令:
$ usermod [ 选项 ] 用户名
选项:
**-c**: 用户说明, 修改用户的说明信息,即 修改 /etc/passwd 文件的目标用户的 第 5 个字段- -d:修改用户的主目录, 也就是修改 /etc/passwd 文件的目标用户信息的 第 6 个字段
- 但是: 这里的 路径一定要是 绝对路径
**-s shell**:修改用户的登录 shell, 默认是 /bin/bash- -g:组名:修改用户的初始组,即修改 /etc/passwd 文件目标用户信息的第 4 个字段(GID)
- -u:UID:修改用户的UID,即修改 /etc/passwd 文件目标用户信息的第 3 个字段(UID);
- -e:日期:修改用户的失效曰期,格式为 “YYYY-MM-DD”,即修改 /etc/shadow 文件目标用户密码信息的第 8 个字段;
**-G 组名**:修改用户的附加组,其实就是把用户加入其他用户组,即修改 /etc/group 文件;**-I 用户名**:修改用户名称;
demo:
// -c 使用yufu@ubuntu:/home$ sudo usermod -c zhanguse yufu

对应的 关于 yufu 用户的说明信息就改了
比如把 yufu 加入到 root 组
加之前:
yufu@ubuntu:/home$ **sudo vim /etc/group**
把用户 yufu 添加到 root 组**$ usermod -G root yufu**

[
](http://c.biancheng.net/view/849.html)
[ 删除: userdel ]
删除用户:
$ userdel zhang //userdel userName 删除用户userName$ rm -rf /home/zhang //删除用户 zhang 所在目录or$ userdel -r zh // 同时删除用户的家目录
[ 用户和用户组 ]
linux 是真正的 多用户操作系统,所以可以在 linux 系统中建若干用户user
系统的超级管理员 root : 可以管理当前操作系统 os 中的用户和用户组
用户: 使用操作系统的人 user用户组: 具有相同 系统权限的一组用户 group 家目录: 也称 主目录,
$ **cat /etc/group** 查看存储当前系统中所有用户组的信息
mi@mi-HP-ProDesk-680-G6-PCI-Microtower-PC:~$ cat /etc/grouproot:x:0:mi:x:1000:zhang:x:1001:mi@mi-HP-ProDesk-680-G6-PCI-Microtower-PC:~$
注解:
该文件内容的 每一行都代表一个用户组, 每个用户组信息格式固定
Group : x : 123 : abc,def,xyz
组名称 组密码占位符 组编号 组中用户名列表
- 用户手动创建的用户组编号从500开始,一般分配的是大于等于500并且未被使用的最小组号
[ 超级用户 ]
Linux系统中的 root 账号通常用于系统的维护和管理,对操作系统的所有资源具有所有访问权限
大多数 linux 中 不推荐直接使用 root 账号登陆系统
$ **su - userName** // 切换用户 ex: su - zhang 切换到用户 zhang 登陆$ **su -** or $** su** 切换回 root 目录
useradd -c
root@mi-HP-ProDesk-680-G6-PCI-Microtower-PC:/home/mi# useradd -c 常用 zhroot@mi-HP-ProDesk-680-G6-PCI-Microtower-PC:/home/mi# cat /etc/passwdroot:x:0:0:root:/root:/bin/bashdaemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologinzhang:x:1001:1001::/home/zhang:/bin/shzh:x:1002:1002:常用:/home/zh:/bin/shroot@mi-HP-ProDesk-680-G6-PCI-Microtower-PC:/home/mi#
useradd -d
-d 用于指定用户的家目录, 也就是用户登陆时所进来的目录// -d /home/data 就是指定用户的家目录是 /home/data通常-d选项与-m选项一起使用,-m选项的作用是,如果指定目录不存在时,则自动创建。-s 指定用户的默认 shell// 如果不设定的话, 默认版本是 /bin/bash所以最常用的 创建用户的经典命令:$ sudo useradd userName -m -d /home/data -s /bin/bash最好将它留在系统上的文件也删除掉,可以使用“userdel -r 用户名”来实现
demo:
root@mi-HP-ProDesk-680-G6-PCI-Microtower-PC:/home# useradd zh -m -d /home/data/ -s /bin/bashuseradd:警告:此主目录已经存在。不从 skel 目录里向其中复制任何文件。root@mi-HP-ProDesk-680-G6-PCI-Microtower-PC:/home# lsdata lost+found mi testroot@mi-HP-ProDesk-680-G6-PCI-Microtower-PC:/home# su - zhzh@mi-HP-ProDesk-680-G6-PCI-Microtower-PC:~$ lslost+found mi
用户密码设置:
命令: $ passwd [ 选项 ] 用户名 // ex: passwd root 修改 root 用户的密码
为创建的新用户添加 root 权限:
method: 修改 文件 /etc/sudoers
[mi@ ~/snap]$ sudo vim /etc/sudoers
这样修改完之后, 用 zh 用户登陆再用 sudo 命令 就可以获得 root 权限进行操作operate
另外的赋予 用户 root 权限的方法:
直接修改 /etc/passwd 文件,找到如下行, 把用户 ID 修改为0,用户 ID 为x 后面的那个数字
[zh@ ~]$ sudo vim /etc/passwd[sudo] zh 的密码:hplip:x:117:7:HPLIP system user,,,:/var/run/hplip:/bin/falsegeoclue:x:118:122::/var/lib/geoclue:/usr/sbin/nologinpulse:x:119:123:PulseAudio daemon,,,:/var/run/pulse:/usr/sbin/nologingnome-initial-setup:x:120:65534::/run/gnome-initial-setup/:/bin/falsegdm:x:121:125:Gnome Display Manager:/var/lib/gdm3:/bin/falsemi:x:1000:1000:,,,:/home/mi:/bin/bashsshd:x:122:65534::/run/sshd:/usr/sbin/nologinzhang:x:1001:1001::/home/zhang:/bin/shzh:x:1002:1002::/home/data/:/bin/bashtt:x:1003:1003::/home/tt:/bin/sh// 修改为zh:x:0:1002::/home/data/:/bin/bash
对于 passwd 文件的字段显示:
第一个字段: 保存的是 用户名
第二个字段: “X” 代表有密码, 这个字段称为 密码标识
第三个字段: 用户ID(UID),
注意:如果用户的 uid =0, 则表示这个账号是管理员账号,
普通用户升级管理员, 只需要把对应的 uid 改为 0 就可以
uid: 1-499 是系统用户( 伪用户) , 不可以登陆系统
————-1-499用来运行系统或服务, 1-99是系统保留,系统自动创建;100~499 是预留给用户创建账号的。
500-65535:普通用户UID。建立的普通用户的UID从500开始,最大到65535
查看用户信息:
$ cat /etc/passwd | grep 用户名
$ id zh // 查看用户 zh 的 uid 和 gid 信息
[zh@~]$ id zhuid=1002(zh) gid=1002(zh) 组=1002(zh)
[ su 和 su - ]
结论: 有区别//
虽然都可以获得 root 权限
sudo su 是切换到 当前账号的 root 权限
而 su - 是直接切换到 root 超级管理员用户
su 只是切换了 root 身份, 但是 shell 环境仍然是 普通用户的shell而后者 su - 是连同用户和 shell 环境 一起切换成了 root 身份,只有切换了 shell 环境才不会出现 PATH 环境变量错误,su - 之后 pwd 应该为 /root~~~~�
修改终端前缀:
默认的 linux 终端前缀
查看 默认终端的前缀变量: $**PS1**
root@mi-HP-ProDesk-680-G6-PCI-Microtower-PC:/home# echo $PS1\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$符号含义:\H:完整的主机名字\h:任取主机的第一个名字\v: bash 的版本信息\w:完整的工作目录\W:列出最后一个目录\$:提示字符, 普通用户$ root用户#\u:代表用户
修改 PS1 变量即可达到自定义的效果:
- 只对当前用户有效
- 修改 ~/.bashrc
- 对所有用户有效
- 修改 /etc/profile

export PS1='[\u@\w]\$ '
$ source /etc/profile //使得配置立即生效

继续自定义配置颜色

export PS1='\[\e[0;31m\][\u@\w]\$\[\e[0m\] '
颜色设置参数:
在 PS1 中设置字符颜色的格式为:
[\e[ F;Bm] 其中 F 为字体颜色, 编号为 30 ~ 37 , B 为背景颜色, 编号为 40 ~ 47
颜色对照表:
| F | B |
|---|---|
| 30 40 | 黑色 |
| 31 41 | 红色 |
| 32 42 | 绿色 |
| 33 43 | 黄色 |
| 34 44 | 蓝色 |
| 35 45 | 紫红色 |
| 36 46 | 青蓝色 |
| 37 47 | 白色 |
ex: 要设置命令行格式为 绿色黑底 [\e[32;40m]
如果显示主机的 账号名称 \u 主机的第一个名字 \h 完整的工作目录 \w 24小时格式时间 \t
PS1='[\[\e[32;40m\]\u@\h \w \t]$ '实践之后觉得合适的:$ PS1="\[\e[37;40m\][\[\e[32;40m\]\u\[\e[37;40m\]@ \[\e[36;40m\]\w\[\e[0m\]]\\$ "
关于命令行输入闪烁的问题
| 参数 | 说明 | 备注 |
|---|---|---|
| 0m | 无特殊效果 | 以示例PS1中的\w\[\e[0m\]]\\\$ 为说明 |
| 1m | 字体变粗 | |
| 2m | 颜色变化,部分字体变细 | |
| 3m | 颜色变化,部分字体倾斜 | |
| 4m | 颜色变化,加下滑线 | |
| 5m | 颜色变化,文字闪动 | |
| 6m | 无 | |
| 9m | 颜色变化,加删除线 | |
| 8m | 黑色文字, |
示例:
PS1=”[\e[37;40m][[\e[32;40m]\u[\e[37;40m]@\h [\e[36;40m]\w[\e[0m]]\\$ “
文件权限查看:
[zh@ /home/data]$ ls -l总用量 20drwx------ 2 root root 16384 6月 7 23:04 lost+founddrwxr-xr-x 2 mi mi 4096 6月 7 23:05 mid:文件类型rwxr-xr-x:文件权限2:硬链接数 或 目录包含的文件数mi:文件所有者mi:文件所有者所在的用户组4096:文件长度上次修改时间文件名解析:权限一共 10 位第 1 位代表文件类型, d 表示目录 - 表示非目录后面 9 位可以拆分为 3 组来看, 分别对应不同的用户,2-4位代表所有者 user 的权限说明5-7 位代表组 group 的权限说明8-10 位代表其他人 other 的权限说明// r 代表 read 可读// w 代表 write 可写// x 代表 execute 可执行"drwxrwxrwx”表示所有用户都对这个目录有可读可写可执行权限。
修改权限: 用 **chmod** 命令
作用:修改文件、目录的权限
格式:chmod 操作对象 操作符号 访问权限 文件或目录名
- u: 用户user,表现文件或目录的所有者
- g: 用户组group,表现文件或目录所属的用户组
- o: 其他用户other
- a: 所有用户all
操作符 +添加权限 -减少权限 =直接给定一个权限
常用: sudo chmod a+x
$ sudo chmod -R 777 /var/www
就是给“/var/www”这个目录赋予所有人可读可写可执行权限
r对应4
w对应2
x对应1
rwx =4+2+1 = 7
-rw-rw-rw- 666 每个人都可以读取和写入文件
question:
新建的 zh 用户无法在 root 创建的目录下创建文件
[zh@ /home]$ ls -l总用量 32drwxr-xr-x 2 root root 4096 7月 6 08:09 datadrwx------ 2 root root 16384 7月 3 04:05 lost+founddrwxr-xr-x 20 mi mi 4096 7月 6 08:08 midrwxr-xr-x 2 zhang zhang 4096 8月 20 2020 testdrwxr-xr-x 2 tt tt 4096 7月 5 18:17 tt[zh@ /home]$ sudo chmod 777 ./data/[zh@ /home]$ ls -l
3、软件 install
3.1 搜狗输入法
https://pinyin.sogou.com/linux/?r=pinyin
// install vimmi@mi-HP-ProDesk-680-G6-PCI-Microtower-PC:~$ sudo apt-get install vim -y// install git[zh@ ~]$ sudo apt-get install git -y// install gcc[root@ /home/data]# apt-get install gcc -y[mi@:~/桌面]$ sudo apt-get install vim -y
2、相关配置
[ ssh配置 ]
// 下载 net-tools : 从而使用 ifconfig[zh@ /home]$ sudo apt-get update[zh@ /home]$ sudo apt-get install net-tools -y[zh@ /home]$ sudo apt-get install openssh-server -y// 查看是否开启 ssh[zh@ /home]$ ps -ef | grep sshroot 3978 1 0 7月05 ? 00:00:00 /usr/sbin/sshd -Dzh 15690 15147 0 08:16 pts/5 00:00:00 grep ssh// 重新启动 ssh 服务[zh@ /home]$ sudo /etc/init.d/ssh restart[ ok ] Restarting ssh (via systemctl): ssh.service.[zh@ /home]$ ps -ef | grep sshroot 15717 1 0 08:17 ? 00:00:00 /usr/sbin/sshd -Dzh 15737 15147 0 08:17 pts/5 00:00:00 grep ssh// or 手动启动 /etc/init.d/ssh start之后就可以远程通过 ssh 进行登陆了比如: $ ssh mi@10.234.201.174
windows 下好用的 ssh 工具: **mobaxterm** 、 putty、 xshell
[ 免密访问 ssh key]
免密访问 github:
step1:创建公钥
[mi@:~/.ssh]$ ssh-keygen -t rsa // 一路回车Generating public/private rsa key pair.Enter file in which to save the key (/home/mi/.ssh/id_rsa):Enter passphrase (empty for no passphrase):Enter same passphrase again:Your identification has been saved in /home/mi/.ssh/id_rsaYour public key has been saved in /home/mi/.ssh/id_rsa.pubThe key fingerprint is:
step2:查看并复制公钥
[mi@:~/.ssh]$ cat ~/.ssh/id_rsa.pub
step3:把复制的公钥保存在 github 上
github 页面右上角头像点击设置setting
step4: 测试
git clone 无需输入密码
// 需要先下载并配置 git
随便找一个 仓库,复制 ssh 链接
[mi@:~/work/mycode/gitclone]$ git clone git@github.com:laoyufu1/myDocsify.git正克隆到 'myDocsify'...The authenticity of host 'github.com (52.74.223.119)' can't be established.RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.Are you sure you want to continue connecting (yes/no/[fingerprint])? yesWarning: Permanently added 'github.com,52.74.223.119' (RSA) to the list of known hosts.remote: Enumerating objects: 3, done.remote: Counting objects: 100% (3/3), done.remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0接收对象中: 100% (3/3), 完成.[mi@:~/work/mycode/gitclone]$
// 发现没有输入密码, 代码就 clone 下来了, 测试 successfully
[ 开发环境 ]
[ java ]
[ golang ]
[ cpp ]
[ python ]
验证电脑上没有 python 环境
[mi@:~/work/micode/k7a-r-stable]$ pythonCommand 'python' not found, did you mean:command 'python3' from deb python3command 'python' from deb python-is-python3// 下载安装 python3
[
](https://www.python.org/downloads/source/)
[ android ]
Android Studio:Google 发布的亲儿子级别 Android 开发 IDEJDK:Java语言的软件开发工具包,包含Java的运行环境、工具集合、基础类库等内容。Android SDK:Google提供的Android开发工具包,开发Android程序时,需要通过引入该工具包使用Android相关的API。
开发语言:
- java
- kotlin
step:
// 1、下载 java 的jdk , 选择 jdk8// jdk 的存放目录一般在 /opt 目录下// 下载连接:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html// 解压到指定文件夹 , oracle 下载需要登陆, 可以通过我上传的链接下载[zh@ /home/data]$ ls[zh@ /home/data]$ sudo cp /home/mi/下载/jdk-8u291-linux-x64.tar.gz /opt[sudo] zh 的密码:[zh@ /home/data]$ cd /opt/[zh@ /opt]$ lsjdk-8u291-linux-x64.tar.gz[zh@ /opt]$ sudo tar -zxvf jdk-8u291-linux-x64.tar.gz[zh@ /opt]$ lsjdk1.8.0_291 jdk-8u291-linux-x64.tar.gz[zh@ /opt]$ cd jdk1.8.0_291/[zh@ /opt/jdk1.8.0_291]$ pwd/opt/jdk1.8.0_291// 配置环境变量[zh@ /home/data]$ vim ~/.bashrc#配置 zh 用户下的 java jdk 环境变量export JAVA_HOME="/opt/jdk1.8.0_291"export PATH="$JAVA_HOME/bin:$PATH"[zh@:/home/data$] source ~/.bashrc[zh@:/home/data]$ java -versionjava version "1.8.0_291"Java(TM) SE Runtime Environment (build 1.8.0_291-b10)Java HotSpot(TM) 64-Bit Server VM (build 25.291-b10, mixed mode)[zh@:/home/data]$// 当下配置的是 zh 下的 ~/.bashrc 用户环境, 不是全局的

[ 配置AndroidStudio ]
Android Studio 国内社区下载地址: http://www.android-studio.org/
下载之后
[zh@:/home/data]$ sudo cp /home/mi/下载/android-studio-ide-191.5977832-linux.tar.gz /opt && cd /opt[sudo] zh 的密码:[zh@:/opt]$ lsandroid-studio-ide-191.5977832-linux.tar.gz jdk-8u291-linux-x64.tar.gzjdk1.8.0_291[zh@:/opt]$ sudo tar -zxvf android-studio-ide-191.5977832-linux.tar.gz[zh@:/opt]$ lsandroid-studio jdk1.8.0_291android-studio-ide-191.5977832-linux.tar.gz jdk-8u291-linux-x64.tar.gz
可以通过运行 [zh@:/opt/android-studio/bin]$ sh studio.sh 启动运行 android studio
// 创建 android studio 的桌面快捷启动方式
linux 的软件快捷方式在 /usr/share/applications/ 目录下:
[zh@:/opt/android-studio/bin]$ cd /usr/share/applications/[zh@:/usr/share/applications]$ sudo vim AndroidStudio.desktop[sudo] zh 的密码:// 写入以下内容:[Desktop Entry]Name=AndroidStudioComment=FirefoxExec=/opt/android-studio/bin/studio.sh %fIcon=/opt/android-studio/bin/studio.pngTerminal=falseType=ApplicationCategories=Network;WebBrowser;可执行文件和图标位置:mi@mi-HP-ProDesk-680-G6-PCI-Microtower-PC:/opt/android-studio/bin$ lsappletviewer.policy idea.properties log.xml studio.pngformat.sh inspect.sh printenv.py studio.shfsnotifier libdbm64.so restart.py studio.vmoptionsfsnotifier64 lldb studio64.vmoptions
然后在软件里就可以看到了
进取之后提醒 update, 点击更新版本
解决:
这个报错说明 当前用户没有操作/opt这个目录的权限
chown 命令, 是change owner 的缩写
sudo chown -R $USER:$USER /opt/android
mi@mi-HP-ProDesk-680-G6-PCI-Microtower-PC:/opt$ ls -al总用量 897948drwxr-xr-x 4 root root 4096 7月 6 10:05 .drwxr-xr-x 24 root root 4096 7月 5 14:39 ..drwxrwxr-x 7 root root 4096 10月 31 2019 android-studio-rw-r--r-- 1 root root 774539586 7月 6 10:04 android-studio-ide-191.5977832-linux.tar.gzdrwxr-xr-x 8 10143 10143 4096 4月 8 03:26 jdk1.8.0_291-rw-r--r-- 1 root root 144935989 7月 6 08:49 jdk-8u291-linux-x64.tar.gzmi@mi-HP-ProDesk-680-G6-PCI-Microtower-PC:/opt$ sudo chown -R zh:zh /opt/android-studio[sudo] mi 的密码:mi@mi-HP-ProDesk-680-G6-PCI-Microtower-PC:/opt$ ls -al总用量 897948drwxr-xr-x 4 root root 4096 7月 6 10:05 .drwxr-xr-x 24 root root 4096 7月 5 14:39 ..drwxrwxr-x 7 zh zh 4096 10月 31 2019 android-studio-rw-r--r-- 1 root root 774539586 7月 6 10:04 android-studio-ide-191.5977832-linux.tar.gzdrwxr-xr-x 8 10143 10143 4096 4月 8 03:26 jdk1.8.0_291-rw-r--r-- 1 root root 144935989 7月 6 08:49 jdk-8u291-linux-x64.tar.gzmi@mi-HP-ProDesk-680-G6-PCI-Microtower-PC:/opt$
选择 **custom **自定义安装
https://www.yuque.com/starkwang/frontend/gudly8 整理
[ 常用环境 ]
// gitmi@mi-HP-ProDesk-680-G6-PCI-Microtower-PC:~$ sudo apt-get install git -y// gccmi@mi-HP-ProDesk-680-G6-PCI-Microtower-PC:~$ sudo apt-get install gcc -y// 配置 ssh 远程连接, 见上述的 ssh 配置// repo// gerrit// jdk 见 java 开发环境配置// 配置 公钥免密登录// mysql// adb 和 fastboot 详见 android 开发环境搭建
[ git配置 ]
第一次使用 git 时需要先完成相关配置
// 先配置 用户名和邮箱地址 且 设为 --global 全局// 因为每一个 git 的提交都会使用这些信息, 它们会写入到你的每一次提交中, 且不可更改[mi@:~/.ssh]$ git config --global user.name "zhanghao"[mi@:~/.ssh]$ git config --global user.email "snowzhang183@126.com"[mi@:~/work/micode]$ git config --global color.ui true// 设置自动颜色方案// 检查查看配置信息, 使用命令 git config --list
[ repo 配置 ]
// 1、下载 repo[mi@:~]$ mkdir ~/bin[mi@:~]$ curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > ~/bin/repoCommand 'curl' not found, but can be installed with:snap install curl # version 7.76.1, orapt install curl # version 7.68.0-1ubuntu2.5See 'snap info curl' for additional versions.[mi@:~]$ sudo apt-get install curlcurl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > ~/bin/repo// 2、配置 repo 的环境变量// 在 /etc/profile 或者 ~/.bashrc 中添加如下内容export PATH=~/bin:$PATHexport REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'然后使用 source 命令刷新配置[mi@:~]$ sudo vim ~/.bashrc[mi@:~]$ source ~/.bashrc// 3、配置本地 gerrit, 添加自己的信息修改 ~/.gitconfig// 4、要注意有可能 repo init 时报错权限不够需要 sudo chmod 755 ~/bin/repo 赋予执行权限

repo init 报错
[mi@:/usr/bin]$ sudo apt-get install python -y
[ shell 终端界面 ]
1、先查看 linux 支持的 shell
[zh@ ~]$ cat /etc/shells# /etc/shells: valid login shells/bin/sh/bin/bash/bin/rbash/bin/dash[zh@ ~]$
默认 ubuntu/centos/macos 使用的都是 **bash**
// 关于 linux 环境变量的解释:
source命令:
- 修改配置文件后, 必须注销重新登陆才能生效
- 使用 source 命令可以立即使得 环境变量配置文件生效
命令demo: $ source ~/.bashrc
环境变量配置文件中主要是定义对系统操作环境生效的系统默认环境变量
常见的环境变量:
/etc/bashrc:
/etc/profile:
~/.bashrc:
~/.bash_profile:
/etc/profile.d/*.sh:
~/.bash_logout:
优先级:/etc/profile —-> ~/bash_profile ——> ~/.bashrc —-> /etc/bashrc —-> 命令提示符
// 登陆 shell, 指的就是当用户登陆系统时所取的 那个shell, 登陆shell属于交互式shell
登陆shell将查找 4 个不同的启动文件来处理其中的命令, bash shell 的处理文件顺序如下:
1、 etc/profile
2、 /etc/profile.d
3、 $HOME/.bash_profile
4、 $HOME/.bash_login
5、 $HOME/.profile
**/etc/profile** 是bash shell在系统上的主默认启动文 件,系统上 每一个用户在登陆时都将执行此文件。
/etc/profile:在登录时,操作系统定制用户环境时使用的第一个文件 ,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。
/etc /environment:在登录时操作系统使用的第二个文件, 系统在读取你自己的profile前,设置环境文件的环境变量。
~/.profile: 在登录时用到的第三个文件 是.profile文件,每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。
/etc/bashrc /etc/bash.bashrc :为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.
~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。
一般情况下,用户的配置信息写入 ~/.bashrc 中
三
vimrc : https://blog.51cto.com/hah11yn/1783679
https://www.bnskd.com/9434.html
wiki: https://wiki.n.miui.com/#all-updates
https://www.jb51.net/article/141748.htm
https://www.cnblogs.com/kaerxifa/p/11334604.html
android compile https://zhuanlan.zhihu.com/p/97070446
https://www.cnblogs.com/jiqing9006/p/8279289.html
https://www.yuque.com/kenguba/bqb30x/gnpkw2
https://www.yuque.com/mygod/bhwzdi/gg9q9u#4dae6c38
https://www.yuque.com/zerlee/ox3lcg/ydtwxg
https://www.runoob.com/linux/linux-user-manage.html
gerrit:
keji:
wiki:
3、ubuntu 相关
[ ubuntu 升级 ]
安装完 ubuntu 之后
// 需要设置一下 root 的密码, 可以设置为 1, 用来作超级管理员
mi@mi-HP-ProDesk-680-G6-PCI-Microtower-PC:~$ sudo passwd root[sudo] mi 的密码:对不起,请重试。[sudo] mi 的密码:新的 密码:无效的密码: WAY ??????无效的密码: 是回文重新输入新的 密码:passwd:已成功更新密码mi@mi-HP-ProDesk-680-G6-PCI-Microtower-PC:~$
18.04 —> 升级 20.04
1、系统软件包升级到最新mi@mi-HP-ProDesk-680-G6-PCI-Microtower-PC:~$ sudo apt-get updatemi@mi-HP-ProDesk-680-G6-PCI-Microtower-PC:~$ sudo apt-get upgrade// 删除不再需要的安装包mi@mi-HP-ProDesk-680-G6-PCI-Microtower-PC:~$ sudo apt autoremove2、升级完成后,重新引导系统ubuntu 附带了一个 do-release-upgrade 的命令使用程序用于将 ububtu 操作系统升级到最新只需安装 update-manager-core 即可$ sudo apt-get install update-manager-core -y执行 $ sudo do-release-upgrade可能会有问题:正在检查新版 UbuntuPlease install all available updates for your release before upgrading.列出没有更新的包 并 手动升级mi@mi-HP-ProDesk-680-G6-PCI-Microtower-PC:~$ apt list --upgradable然后利用如下命令将各个包手动更新:sudo apt-get install {your package name}之后执行,提醒要 reboot 重启正在检查新版 UbuntuYou have not rebooted after updating a package which requires a reboot. Please reboot before upgrading.mi@mi-HP-ProDesk-680-G6-PCI-Microtower-PC:~$ sudo do-release-upgrade执行:桌面版本的话:mi@mi-HP-ProDesk-680-G6-PCI-Microtower-PC:~$ sudo do-release-upgrade -m desktop然后所有的提示都输入 y 回车就好,等待更新完成
在 ubuntu20.04 中发现没有 应用商店
需要手动安装
mi@mi-HP-ProDesk-680-G6-PCI-Microtower-PC:~$ sudo apt-get install gnome-software -y// 安装后, 更新软件mi@mi-HP-ProDesk-680-G6-PCI-Microtower-PC:~$ sudo apt-get update
[ ubuntu 软件 ]
[ 截图 flameshot ]
**Flameshot** : 开源
- flameshot 支持快捷键
更推荐命令行install , 商店安装的是纯英文
// 这样下载的是汉化的版本$ sudo apt-get install flameshot -y
右键点击右上角的 flameshot 图标, 选择信息
快捷键呢?
mi@mi-HP-ProDesk-680-G6-PCI-Microtower-PC:~$ flameshot gui
命令行输入 flameshot gui 即可进行截图, 可见只需要配置 这个命令的快捷键
界面右上角,系统设置/键盘快捷键/+/添加自定义

- markdown:typora:https://www.typora.io/#linux
- 网盘:百度网盘
- 图床 sm.ms + picgo:
- picgo 下载:https://github.com/Molunerfinn/PicGo/releases //linux 下载 xxxx.AppImage
- sm.ms:https://sm.ms/ ```bash [mi@:~/work/tools]$ mkdir picgo [mi@:~/work/tools]$ cd picgo/ [mi@:~/work/tools/picgo]$ sudo cp /home/mi/下载/PicGo-2.3.0-beta.6.AppImage ./ [sudo] mi 的密码: [mi@:~/work/tools/picgo]$ l PicGo-2.3.0-beta.6.AppImage [mi@:~/work/tools/picgo]$ sudo chmod a+x PicGo-2.3.0-beta.6.AppImage [mi@:~/work/tools/picgo]$ ./PicGo-2.3.0-beta.6.AppImage
// 注意一样要先 chmod 赋予执行权限
// 另外 picgo 依赖 xclip, 需要先 install xclip [mi@:~/桌面]$ sudo apt-get install xclip
---linux 磁盘分区与挂载:<br />原理:- 在 linux 下,无论有几个分区,归根结底都只有一个根目录 就是 /所以 linux 中的每个分区都是用来组成文件系统的一个部分挂载 mount : _通过挂载的机制, 将硬盘分区和文件目录联系起来_<br />在系统中进入到目录就 相当于是访问到对于的分区区别:<br />windows: 先分物理地址, 再在分区上建立目录 [ 每次重装系统需要分区 ]linux: 先有目录, **再将物理地址 映射到目录上**linux下:linux 默认有三个分区- /:- /boot:- swap:磁盘使用情况查询 df -h查看所有设备的 挂载情况: $ lsblk/lsblk -f解释:> linux中的所有设备必须挂载后才能使用。如果硬盘相当于房间,挂载相当于配钥匙的过程,挂载之后才能使用。linux的目录由根目录向下延申,但根目录的子目录可以单独分区(如/boot)。**同一目录下的文件也可能在不同的分区中。**```bash// 取消 机械硬盘在 data 的挂载 ---> 用 sudo umountmi@mi-HP-ProDesk-680-G6-PCI-Microtower-PC:~/桌面$ df -h文件系统 容量 已用 可用 已用% 挂载点udev 16G 0 16G 0% /devtmpfs 3.2G 1.9M 3.2G 1% /run/dev/nvme0n1p3 175G 7.5G 159G 5% /tmpfs 16G 0 16G 0% /dev/shmtmpfs 5.0M 4.0K 5.0M 1% /run/locktmpfs 16G 0 16G 0% /sys/fs/cgroup/dev/sdb1 916G 387M 869G 1% /home/dev/sda1 3.6T 89M 3.4T 1% /home/data/dev/loop14 51M 51M 0 100% /snap/snap-store/547/dev/loop15 384K 384K 0 100% /snap/gnome-characters/550/dev/loop16 2.5M 2.5M 0 100% /snap/gnome-calculator/748/dev/loop17 2.3M 2.3M 0 100% /snap/gnome-system-monitor/148tmpfs 3.2G 84K 3.2G 1% /run/user/1000/dev/loop19 261M 261M 0 100% /snap/kde-frameworks-5-core18/32可知是 /dev/sda1mi@mi-HP-ProDesk-680-G6-PCI-Microtower-PC:~$ sudo umount /dev/sda1// 使用 lsblk 命令查看磁盘使用情况mi@mi-HP-ProDesk-680-G6-PCI-Microtower-PC:~$ lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTloop0 7:0 0 55.3M 1 loop /snap/core18/1885loop1 7:1 0 61.7M 1 loop /snap/core20/1026loop2 7:2 0 55.5M 1 loop /snap/core18/2074loop3 7:3 0 243.9M 1 loop /snap/gnome-3-38-2004/39loop18 7:18 0 78.3M 1 looploop19 7:19 0 260.7M 1 loop /snap/kde-frameworks-5-core18/32sda 8:0 0 3.7T 0 disk└─sda1 8:1 0 3.7T 0 part // 发现此时 sda1 已经没有挂载了sdb 8:16 0 931.5G 0 disk└─sdb1 8:17 0 931.5G 0 part /homenvme0n1 259:0 0 238.5G 0 disk├─nvme0n1p1 259:1 0 487M 0 part /boot/efi├─nvme0n1p2 259:2 0 59.6G 0 part [SWAP]└─nvme0n1p3 259:3 0 178.4G 0 part /重新挂载到 mi 用户的 /home/mi 目录mi@mi-HP-ProDesk-680-G6-PCI-Microtower-PC:~$ sudo mount /dev/sda1 /home/mi/mi@mi-HP-ProDesk-680-G6-PCI-Microtower-PC:~$ lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTloop0 7:0 0 55.3M 1 loop /snap/core18/1885loop1 7:1 0 61.7M 1 loop /snap/core20/1026loop17 7:17 0 2.2M 1 loop /snap/gnome-system-monitor/148loop18 7:18 0 78.3M 1 looploop19 7:19 0 260.7M 1 loop /snap/kde-frameworks-5-core18/32sda 8:0 0 3.7T 0 disk└─sda1 8:1 0 3.7T 0 part /home/mi // mount successfullysdb 8:16 0 931.5G 0 disk└─sdb1 8:17 0 931.5G 0 part /homenvme0n1 259:0 0 238.5G 0 disk├─nvme0n1p1 259:1 0 487M 0 part /boot/efi├─nvme0n1p2 259:2 0 59.6G 0 part [SWAP]└─nvme0n1p3 259:3 0 178.4G 0 part /
这样其实后来会发现一个问题:
- 重启后 mount 挂载就会实效,又变回原来的 /home/data 目录了
解决方法:
写入 /etc/fstab 文件:
关于 /etc/fatab 文件:
磁盘被手动挂载之后都必须把挂载信息写入/etc/fstab这个文件中,否则下次开机启动时仍然需要重新挂载。
系统开机时会主动读取/etc/fstab这个文件中的内容,根据文件里面的配置挂载磁盘。这样我们只需要将磁盘的挂载信息写入这个文件中我们就不需要每次开机启动之后手动进行挂载了。
关于挂载的限制:
1、根目录 / 是必须挂载的, 而且是优先于其他的 mount point 被挂载, 因为其他所有目录都是由根目录 / 衍生出来的
2、挂载点必须是 已经存在的目录
/etc/fstab 文件参数
一共有 6 列
第一列: Device:
磁盘设备文件 或者该设备的 label 或 uuid
- Label就是分区的标签,在最初安装系统是填写的挂载点就是标签的名字。
例如我们要查看 ** /dev/sda1 **这个设备的 uuid 和 label name**_$ sudo dumpe2fs -h /dev/sda1 _**
**_mound 的 目标目录一定要是空的, 否则会直接崩~~~_**
