资讯专栏INFORMATION COLUMN

当决定使用 Ubuntu 来开发时

JasinYip / 3007人阅读

本篇文章主要持续记录和总结 ubuntu 的必备基础和使用过程中遇到的各种问题
安装 下载 Ubuntu Kylin

最新 ubuntu-kylin

使用 UltraISO 制作 U 盘启动盘
写入硬盘镜像
入门 了解目录

/home 用户的主目录

/boot 启动目录,启动相关文件

/sbin 超级用户才能使用的目录

/root 超级用户的主目录

/proc 系统内存的映射

/dev 设备文件保存目录

/etc 配置文件保存目录

/lib 系统库保存目录

/usr 系统软件资源目录

/var 经常变化目录,经常放日志文件

/tmp 临时目录

终端
# 新窗口打开终端
$ ctrl + alt + t
$ ctrl + shift + n
# 新标签页打开终端
$ ctrl + shift + t
# 全屏
$ ctrl + m
获取 root 权限
$ sudo passwd root      // 激活账号,设置密码
$ sudo passwd -l root   // 再次禁用 root 帐号
安装
$ sudo apt-get install package    // 安装包
$ sudo dpkg -i package_file.deb   // 安装 .deb 文件
删除
$ sudo apt-get remove package           // 删除包
$ sudo apt-get remove --purge package   // 删除包和配置文件
$ sudo dpkg -r package_name             // 卸载 .deb 文件
$ sudo dpkg -P package                  // 删除包和配置文件
更新
$ sudo apt-get update   // 更新源
$ sudo apt-get upgrade  // 更新已安装的包
清理
$ sudo apt-get autoclean  // 清理已经卸载的包
$ sudo apt-get clean      // 清理所有的安装包
$ sudo apt-get autoremove // 清理因依赖而安装但现在不再需要的包
极有可能遇到的一些问题 开机启动项没有 windows
$ sudo update-grub
更改 hosts
$ sudo gedit /etc/hosts

最新 hosts

安装搜狗输入法
下载 -> 系统设置 -> 语言支持 -> 键盘输入法系统 => fcitx
解决端口冲突
$ lsof -i:8000      // 查看 8000 端口
$ kill 对应的 pid     // 停止使用这个端口的程序
通过文件设置环境变量
# 对所有用户生效
- /etc/profile:为系统的每个用户设置环境信息
- /etc/bashrc:每次新打开一个终端 shell,该文件被读取

# 对单个用户生效
- /.bash_profile:当用户登录时该文件仅执行一次
- /.bashrc:当登录以及每次打开新的 shell 时,该文件被读取

使用 source /etc/environment 可以使变量设置在当前窗口立即生效,需 注销/重启 之后,才能对每个新终端窗口都生效

设置 JAVA 环境变量
$ sudo gedit /etc/profile  // 更改配置文件

# set java environment
export JAVA_HOME=/home/feng/download/jdk1.8.0_131
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

$ source /etc/profile  // 使其生效

Java SE Development Kit 8 Downloads

没有 WIFI 选项
$ sudo apt install linux-generic-hwe-16.04  // LTSEnablementStack
使用 vim
$ sudo apt install vim

如何让 vim 成为我们的神器

对文件的操作
$ pwd         // 输出当前工作目录的绝对路径
$ rmdir       // 移除空文件
$ rm -rf      // 删除目录包含子目录和文件
$ mv          // 重命名/移动文件/目录
$ cp          // 复制文件
$ cp -r       // 复制目录
$ ls -l       // 显示文件详细信息
$ chmod -/+   // 修改文件权限

# 压缩和解压文件
// .zip:支持不同操作系统
zip -r XX.zip XX    # 压缩
unzip XX.zip        # 解压

// .tar:仅打包,没有压缩
tar cvf XX.tar XX            # 压缩
tar xvf XX.tar -C /XX/XX     # 解压

// .tar.gz:使用广泛,快速压缩和提取
tar zcvf XX.tar.gz XX        # 压缩
tar zxvf XX.tar.gz XX        # 解压

// .tar.bz2:压缩效果最佳,相对速率较慢
tar zcvf XX.tar.bz2 XX        # 压缩
tar zxvf XX.tar.bz2 XX        # 解压
截屏
gnome-screenshot
编辑图片
sudo apt-get install gimp

gimp 类似 PS,功能十分强大,若只是裁剪图片,可以使用自带的截屏软件 gnome-screenshot

扁平化主题

Flatabulous

Ubuntu Tweak:
# GTK 主题:Flatabulous
# 图表主题:Ultra-Flat
# 光标主题:DMZ-Black
# 窗口主题:Flatabulous

Flatabulous

护眼应用
f.lux

f.lux

使用 curl

一个利用 URL 语法在 命令行 下工作的 文件传输工具

# 执行下载
// 抓取页面内容到一个文件中
curl -o index.html https://www.baidu.com/

// 后面的 url 具体到某个文件
curl -O https://github.com/FengShangWuQi/to-vim/blob/master/images/vim.png

// 只打印头部信息
curl -I https://www.baidu.com/

// 显示抓取错误
curl -f https://segmentfault.com/n/1330000011469701

// 不显示进度信息
curl -s -o vim.png https://github.com/FengShangWuQi/to-vim/blob/master/images/vim.png

// 显示下载进度条
curl -# -o vim.png https://github.com/FengShangWuQi/to-vim/blob/master/images/vim.png

// 通过 ftp 下载文件
curl -O -u 用户名:密码 ftp://@ip:port/static/style.css
curl -O ftp://用户名:密码@ip:port/static/style.css

// 通过 ftp 上传
curl -T style.css ftp://用户名:密码@ip:port/static/css/

# 发送请求
// GET
curl -i -H "Accept: application/json" -H "Content-Type: application/json" http://hostname/resource

// POST
curl -i -H "Content-Type: application/json" -X POST -d "{"username":"xyz","password":"xyz"}" http://hostname/resource
更新源失败
# 错误提示
校验数字签名时出错。此仓库未被更新,所以仍然使用此前的索引文件。GPG 错误:https://dl.yarnpkg.com/debian stable InRelease: 由于没有公钥,无法验证下列签名: NO_PUBKEY

# 错误原因
- 人为造成,更新系统或添加 PPA
- 无缘无故出现,如软件源服务器被黑造成了签名被篡改、文件被替换或与服务器的中间传输被某些人重置(如DNS被污染)
- 储存 APT 数据和 GPG 签名的目录 /var/lib/apt/ 损坏(这种情况一般会同时伴有其他严重问题)

# 解决方案
# 重新加入以上出现问题的apt-key
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com PGP签名
录制 GIF
# byzanz
byzanz 能制作文件小,清晰的 GIF 动态效果图,不足就是,目前只能通过输入命令方式来录制

## 安装
sudo apt-get install byzanz

## 主要参数
-d, --duration=SECS     动画的时间 (默认:10 秒)
-e, --exec=COMMAND      Command to execute and time
--delay=SECS            开始之前的延时(默认:1 秒)
-c, --cursor            录制鼠标光标
-a, --audio             录音
-x, --x=像素            要录制矩形的 X 坐标
-y, --y=像素            要录制矩形的 Y 坐标
-w, --width=像素        录制矩形的宽度
-h, --height=像素       录制矩形的高度
-v, --verbose           详细
--display=显示          要使用的 X 显示

# xwininfo
查询要录制的窗口位置、宽度和高度

# 示例
byzanz-record -x 0 -y 24 -w 1920 -h 1056 -c -d 10 --delay=3 -v app.gif
硬链接与软链接

为解决 文件的共享 使用,Linux 系统引入了两种链接:硬链接(hard link) 与软链接(又称 符号链接,即 soft link 或 symbolic link)

# 硬链接
ln 源文件 目标文件
- 文件有相同的 inode 及数据块
- 只能对已存在的文件进行创建
- 不能交叉文件系统进行硬链接的创建
- 不能对目录进行创建,只可对文件创建
- 删除一个硬链接文件并不影响其他有相同 inode 号的文件

# 软链接
ln -s 源文件或目录 目标文件或目录
- 软链接有自己的文件属性及权限等
- 可对不存在的文件或目录创建软链接
- 软链接可交叉文件系统
- 软链接可对文件或目录创建
- 创建软链接时,链接计数 i_nlink 不会增加
- 删除软链接并不影响被指向的文件,但若被指向的原文件被删除,则相关软连接被称为死链接(即 dangling link,若被指向路径文件被重新创建,死链接可恢复为正常的软链接)
修改终端提示符

PS1Linux 终端用户的一个 环境变量,用来定义命令行提示符的参数

# 查看默认设置
echo $PS1

# 常用参数及其含义
H    完整的主机名
h    主机中的第一个名字
u    当前用户的账号名称
w    完整的工作目录名称
$    提示字符,如果是root用户,提示为#,普通用户则为$

# 临时修改
$ export PS1="[u@hw]$"

# 永久修改
$ vim /.bashrc
编辑 PS1
Tmux

Tmux 是 Linux 的 终端利器,不仅可以拆分窗口,还可以在在 SSH 环境下,避免网络不稳定,导致工作现场的丢失

# 几个重要的概念
- session:会话,一个服务器可以包含多个会话
- window:窗口,一个会话可以包含多个窗口
- pane:面板,一个窗口可以包含多个面板

# 常用快捷键
## session
- 创建会话
tmux new -s
- 重新开启会话
tmux a -t
- 查看所有会话
tmux ls
- 删除某个会话
tmux kill-session -t
- 删除所有会话
tmux kill-server

$  重命名会话
s  切换会话
d  退出会话
D  选择要退出的会话

## window
- 查看所有窗口
tmux lsw
- 交换窗口顺序
swap-window -s 3 -t 1

c  创建新窗口
w  列出所有窗口
n  后一个窗口
p  前一个窗口
f  查找窗口
,  重命名当前窗口
&  关闭当前窗口
窗口号  切换窗口到指定窗口号

## pane
%  垂直分割
"  水平分割
o  切换窗格
x  关闭窗格
q  查看窗格编号
z  窗格最大化
{  与上一个窗格交换位置
}  与下一个窗格交换位置
space 切换窗格布局

## 其他
t  显示时钟
?  列出所有快捷键
:  命令提示符

个性化定制:gpakosz/.tmux

总结

关于 Ubuntu,如果还有 更有意思的内容或问题,欢迎在评论中交流

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/9960.html

相关文章

  • 决定使用 Ubuntu 开发

    本篇文章主要持续记录和总结 ubuntu 的必备基础和使用过程中遇到的各种问题 安装 下载 Ubuntu Kylin showImg(https://segmentfault.com/img/bVWluw?w=1366&h=768); 最新 ubuntu-kylin 使用 UltraISO 制作 U 盘启动盘 写入硬盘镜像 入门 了解目录 /home 用户的主目录 /boot 启动目录,启动...

    Raaabbit 评论0 收藏0
  • 使用docker搭建开发环境

    摘要:我的主力机是下面有太多提升效率的软件但是开发的时候不得不使用就单单开发而言我还是喜欢使用所以就造成了我得在下面使用虚拟机这是最开始的办法后面得知有这个东西之后用了一阵子感觉还不错但是我使用的时候动不动就会出现一些问题所以一怒之下决定学学然后 我的主力机是windows,windows下面有太多提升效率的软件.但是开发的时候不得不使用linux.就单单开发而言.我还是喜欢使用linux....

    caozhijian 评论0 收藏0
  • 从硬件配置、软件安装到基准测试,1700美元深度学习机器构建指南

    摘要:受到其他同行在上讨论更好经验的激励,我决定买一个专用的深度学习盒子放在家里。下面是我的选择从选择配件到基准测试。即便是深度学习的较佳选择,同样也很重要。安装大多数深度学习框架是首先基于系统开发,然后逐渐扩展到支持其他操作系统。 在用了十年的 MacBook Airs 和云服务以后,我现在要搭建一个(笔记本)桌面了几年时间里我都在用越来越薄的 MacBooks 来搭载一个瘦客户端(thin c...

    pkwenda 评论0 收藏0
  • 嵌入式linux系统的开发——发行版的编译和烧写

    摘要:编译后在目录生成固件在路径下包含了等文件,通过查看编译信息可知,最终是通过命令和命令等将和合并成固件烧写由于支持协议,可在上安装服务器,当启动后在串口调试终端上选择以协议方式烧写内核和文件系统。 前言 Linux是一套免费使用和自由传播的操作系统,作为一套操作系统,Linux由内核和系统调用接口组成,除了有效地控制硬件资源外,同时提供系统调用接口给应用程序使用。但说到Linux其实有L...

    Tonny 评论0 收藏0
  • Docker入门基础之镜像使用

    摘要:获取一个新镜像当我们在宿主机上使用一个不存在的镜像时就会自动下载这个镜像。如果我们想预先下载这个镜像,我们可以使用命令来下载它。指定要创建的目标镜像名。 当运行容器时,使用的镜像如果在本地中不存在,docker 就会自动从 docker 镜像仓库中下载,默认是从 Docker Hub 公共镜像源下载。 下面我们来学习: 1、管理和使用本地 Docker 主机镜像 2、创建镜像 列出...

    channg 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<