- 注意:需提前配置系统环境,比如系统编码为
UTF-8
系统环境配置
1. 设置系统语言
-
查看系统支持的字符集:
locale
、locale -a
-
查看时间:
date
-
安装中文语言包:
sudo apt install language-pack-zh-hans
-
添加到系统配置文件 .bashrc
export LANG=zh_CN.UTF-8
-
重新加载:
source .bashrc
一、更新和升级包
1. 更新和升级包
sudo apt update && sudo apt upgrade
2. 安装常用开发环境
sudo apt-get install build-essential
3. 安装软件
sudo apt install tree
4. 删除不需要的包
sudo apt remove gcovr
sudo apt autoremove
5. 查看已安装的软件
dpkg -l | grep gcovr
6. 查看软件安装的路径
dpkg -L openssh-server
whereis gdb
which gcovr
需要软件包的路径在环境变量 $PATH
中
7. 查看 apt
中软件的版本
apt search gcc-9
apt-show-versions -a gcovr
apt show gcovr
sudo apt-cache policy libssl-dev
8. 列出已安装的软件
apt list --installed
9. 添加相应的源
`sudo add-apt-repository ppa:ubuntu-toolchain-r/test`
如果提示 `add-apt-repository: command not found`,需要安装 `sudo apt-get install software-properties-common`
二、pip 使用
1. Ubuntu 1804 安装 pip
安装 pip3:sudo apt install python3-pip
安装 pip2:sudo apt install python-pip
2. 安装软件
pip3 install -U gcovr
3. 列出 pip 已安装的包
pip3 list
4.查看安装包信息
pip3 show gcovr
5. 安装 pip_search
pip3 install pip_search
pip_search gcovr
三、shell 操作和常用命令
1、查看输入的命令历史
history
2、删除光标前面的字符串
ctrl + u
3、删除光标后面的字符串
ctrl + k
4、光标定位到头部
ctrl + a
5、光标定位到尾部
ctrl + e
6、命令、路径补全
Tab
7、缩写别名
alias
8、查看说明
man 5 passwd
9、宿主目录
~
10、查看目录内容
tree ~
11、打印工作目录
pwd
12、表示当前用户是普通用户 $
13、表示当前用户是超级用户 #
14、切换超级用户
sudo su
15、 查看文件和目录
ls
ls -a
ls -l # -rwxrw-r-- 1 rick rick 0 Feb 12 18:37 test
ls -lh
ls -alF # drwxr-xr-x 1 rick rick 4096 Feb 12 18:37 rick/
ll
16、 cd
cd /home/rick
cd ~
cd
cd - # 切换到上一个的历史目录
17、 mkdir
目录名
mkdir aa
mkdir aa/bb
rm aa -r
mkdir aa/bb/cc -p
18、 touch
文件名
- 如果文件不存在,则创建文件
- 如果文件存在,更新文件时间
19、 rmdir
删除空目录
- 只能删除空目录
20、 rm
删除目录和文件
- 删除后很难恢复
rm -r # 用递归的方式删除目录
rm -ri # 提示
rm aa/* -r # 删除 aa 目录下的所有文件和目录
21、 cp
拷贝
cp file file1 # file1 不存在,则创建 file1 并把 file 中的内容拷贝进去
cp file file1 # file1 存在,则会用 file 中的内容覆盖 file1 中的内容
cp file dir # 将 file 拷贝到 dir 目录下
cp dir dir1 # dir1 目录不存在,则把 dir 的所有子目录拷贝到 dir1 目录下
rm dir1/* -r
cp dir dir1 # dir1 目录存在,则把 dir 整个目录拷贝到 dir1 目录下
cp -r nginx_build/* nginx
22、 mv
mv file file1 # file1 不存在,则是将 file 文件改名为 file1
mv file file1 # file1 存在,则用 file 中的内容覆盖 file1 中的内容,并删除 file
mv file dir # dir 存在,将 file 移动到 dir 目录下
mv dir dir1 # dir1 不存在,就是将 dir 改名为 dir1
mv dir dir1 # dir1 存在,则将 dir 目录移动到 dir1下
23、 cat
将文件内容打印到终端
- 适用文件内容较小的情况
23、 more
将文件内容打印到终端
- 不能向上翻页
Enter
向下滚动一行- 空格:向下翻页
- 退出:
q
23、 less
将文件内容打印到终端
Enter
或ctrl + n
: 向下滚动一行ctrl + p
: 向上滚动一行pgdn
: 向下翻页空格
: 向下翻页pgup
: 向上翻页q
: 退出
23、 head
打印文件内容的前 10 行到终端
24、 tail
打印文件内容的后 10 行到终端
25、 ln
创建软硬链接
- 创建软链接
ln -s 原文件名 链接名称
- 创建硬链接(在其他多个目录中管理文件,并且能时时同步修改)
ln 文件名 链接名
26、 chmod
修改权限
chmod uo-rw program
chmod u+r,g-x program
chmod -440 program
chmod 777 program
27、 chown
修改所有者或所属组
sudo chown sys program
sudo chown rick:sys program
28、 chgrp
所属组
sudo chgrp rick program
29、 find
查找
find ./ -name "program" # 按文件名查找
find ./ -type f # 按文件类型查找(7种)
find ./ -size -4k
find ./ -size +2k -size -10k # 按文件大小查找
find ./ -ctime -1 # 按日期查找(-ctime、-mtime、-atime)
find ./ -type d -exec ls -l {} \; # 查找指定目录,并列出该目录中文件详细信息
find ./ -type d | xargs ls -l # 利用管道,效率较高
find ./ -mtime -3 -type f -exec cp {} ./test \; # 按日期查找并拷贝到指定目录 test
30、 grep
所属组
grep -r "hello" ./ -n
31、 写入文件
ls -l > fileinfo
32、 usermod
修改用户组
# 查看当前用户所属组
groups 用户名
# 一个用户仅仅属于某一个组,而不是同时属于多个组
sudo usermod -g 组名 用户名
# 给一个用户添加一个新的组,同时保留原来的组
sudo usermod -a -G 组名 用户名
33、查看环境变量
env
34、修改环境变量
修改 ~/.bashrc
文件(当前用户)或 /etc/profile
文件(所有用户)
export PATH="/mnt/h/wsl/emsdk:/mnt/h/wsl/emsdk/upstream/emscripten:/mnt/h/wsl/emsdk/node/14.18.2_64bit/bin:$PATH"
source ~/.bashrc
35、ldd
列出动态库依赖关系
ldd
是 list, dynamic, dependencies
的缩写
ldd ffmpeg
36、which
查找文件
which bash
37、查看进程信息
ps -ef | grep nginx
38、查看程序占用的端口
netstat -tunlp | grep 80
lsof -i:80
39、查看进程 ID(PID)
pgrep -l nginx
39、杀死进程
kill -9 PID
kill PID1 PID2 PID3
四、Linux 文件类型
- |
普通文件 |
d |
目录 |
l |
符号链接 |
p |
管道 |
s |
套接字 |
c |
字符设备(鼠标、键盘) |
b |
块设备(U盘、硬盘) |
五、用户类型
user | 文件所有者(rwx ) |
group | 文件所属组用户(rw- ) |
other | 其他用户(r-- ) |
六、权限
r |
读 |
w |
写 |
x |
执行 |
七、压缩包管理
1. 常见压缩格式
- .gz –gzip
- .bz2 –bzip2
2. 常用压缩命令
- gzip file 压缩
- gunzip *.gz 解压
- tar
- .gz 压缩
tar -czvf test.tar.gz aa program
- .bz2 压缩
tar -cjvf test.tar.bz2 aa program
- .gz 解压
tar -xzvf test.tar.gz -C /tmp
- .bz2 解压
tar -xjvf test.tar.bz2 -C /tmp
- 详细列举归档文件
tar -tvf nginx.tar.gz
- .gz 压缩
- rar 需要安装
sudo apt-get install rar
rar a all aa program
rar a all aa/ program -r
目录加 -r
rar x all.rar /tmp
- zip / unzip 需要安装
sudo apt-get install zip
zip myzip aa program -r
unzip myzip.zip -d /tmp
八、软件安装和制作
1. 在线安装 – ubuntu
- 安装:
sudo apt-get(apt) install 安装包名称
- 卸载:
sudo apt-get(apt) remove 软件名称
- 软件列表更新:
sudo apt-get(apt) update
- 清空缓存:
sudo apt-get(apt) clean
- 缓存路径:
/var/cache/apt/archives
中的红色 *.deb 文件
2. 软件包安装
- 安装:
sudo dpkg -i xxx.deb
- 卸载:
sudo dpkg -r 软件名称
3. 源码安装
4. 查看已安装软件
dpkg -l | grep openssh-server
5. 查看软件安装路径
dpkg -L openssh-server
九、ubuntu 启用 root 用户
1. 修改 sshd_config 中的 PermitRootLogin
sudo vim /etc/ssh/sshd_config
2. 重启 ssh 守护进程
sudo service ssh restart
如果终端显示 ssh:unrecognized service
,可能是因为服务没开启,通过命令 service ssh status
查看服务状态,可通过命令 sudo /etc/init.d/ssh start
启动服务