Ubuntu系统下终端基本命令使用介绍
上一篇文章里介绍了如何在Vmware虚拟机安装ubuntu操作系统,这篇文章介绍ubuntu系统常见的一些命令使用,编辑器如何配置,软件源更新配置,NFS服务器配置方式,make命令错误解决办法等等。
1.1 切换超级用户
ubuntu 有以下方式切换到 root 身份。
1. sudo+命令,输入当前用户密码后以 root 权限执行命令,有时间限制且仅限当前命令。
2. sudo -i,输入当前用户密码后以 root 权限登录 shell,无时间限制。使用 exit 或 logout 退出。
3. su,输入 root 账户的密码后切换到 root 身份,无时间限制。 su 用户名切换回其它用户。
4. sudo su,效果同 su,只是不需要 root 的密码,而需要当前用户的密码。
1.2 动态获取 IP 地址
$ sudo dhclient -r //release ip 释放 IP
$ sudo dhclient //动态获取 IP
示例: root@XL:/work/qt-for-arm/qt-everywhere-opensource-src-5.6.0# dhclient eth0
1.3 make menuconfig 错误解决
sudo apt-get install libncurses5-dev 安装缺少的库
1.4 安装 gedit
sudo apt-get update
sudo apt-get install gedit-gmate
sudo apt-get install gedit-plugins
sudo apt-get remove gedit
sudo apt-get install gedit
1.5 NFS 服务器的启动设置
安装 NFS 服务器: # apt-get install nfs-kernel-server
NFS 配置文件: # gedit /etc/exports
/work *(rw,no_root_squash,sync) |
生效路径: # exportfs -r
输出路径: # exportfs -v
NFS服务器配置脚本
/etc/init.d/nfs-kernel-server restart #复位 NFS服务 #/etc/init.d/nfs-kernel-server start #启动 NFS 服务 #/etc/init.d/nfs-kernel-server stop #停止 NFS 服务 ufw disable #关闭防火墙 |
1.6 安装 vim
# apt install vim
1.7 ubuntu下安装windows软件运行环境
1.7.1 安装wine
wine(“Wine Is Not an Emulator”的递归缩写)是一个能够在多种 POSIX-compliant 操作系统(诸如 Linux,Mac OSX 及 BSD 等)上运行 Windows 应用的兼容层。安装了wine之后,会模仿一个类windows的运行环境出来,于是很多windows下的程序就能顺理安装在linux系统中了。具体的安装步骤也很简单,以ubuntu系统为例。执行如下语句就好: sudo apt-get install wine
wine下载地址: https://wiki.winehq.org/Ubuntu
1.7.2 安装source insight
将source insight安装的可执行文件复制到ubuntu中。我复制到了~/Desktop/下面。
运行命令: wine ~/Desktop/Si35Setup.exe
其中Si35Setup.exe为source insight安装包名字。安装过程与windows相同。
1.7.3 启动source insight建立工程
使用命令启动source insight,建立工程和windows相同。
运行命令:wine "c:\Program Files\Source Insight 3\Insight3.exe"
1.8 更新软件源和软件
更新软件源 :sudo apt-get update 更新软件:sudo apt-get dist-upgrade |
1.9 ubantu安装notepad++
Ubuntu下的安装方法: sudo add-apt-repository ppa:notepadqq-team/notepadqq sudo apt-get update sudo apt-get install notepadqq Ubuntu下的卸载方法: sudo apt-get remove notepadqq sudo add-apt-repository --removeppa:notepadqq-team/notepadqq |
1.10 ubuntu修改终端显示样式-PS1
普通用户下修改PS1样式:
[wbyq@wbyq ~]$ sudo vim .bashrc |
最下面增加代码:
PS1='[\u@\h \W]\$ ' |
立即生效:
[wbyq@wbyq ~]$ sudo source .bashrc |
超级用户下修改PS1样式
[root@wbyq /]# vim /etc/profile |
最下面增加代码:
PS1='[\u@\h \W]\$ ' |
立即生效:
[root@wbyq /]# source /etc/profile |
1.11 ubuntu下编译Android 5.0 源码配置流程
1. 安装jdk
sudo apt-get install openjdk-7-jdk
2. 添加32位依赖包
sudo dpkg --add-architecture i386
3. 安装32的库-运行32位软件
sudo apt-get install libc6:i386
4. 修改文件
gedit <Android 源码目录>/art/build/Android.common_build.mk +121
ART_HOST_CLANG := false
ifneq ($(WITHOUT_HOST_CLANG),true)
# By default, host builds use clang for better warnings.
ART_HOST_CLANG := false #true 改为 false
endif
5.
cp /usr/bin/ld.gold prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.11-4.6/x86_64-linux/bin/ld
6.
. setenv
7. lunch
8.
make update-api
9. 出现错误:
out/host/linux-x86/bin/acp: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
make: *** [out/host/linux-x86/framework/antlr-runtime.jar] 错误 127
解决办法:
sudo apt-get install libstdc++6:i386
10. 出现错误
prebuilts/misc/linux-x86/bison/bison -d -o out/host/linux-x86/obj32/EXECUTABLES/aidl_intermediates/aidl_language_y.cpp frameworks/base/tools/aidl/aidl_language_y.y
make: *** [out/host/linux-x86/obj32/EXECUTABLES/aidl_intermediates/aidl_language_y.cpp] 断开的管道
解决办法:
(1). 安装g++编译器
sudo apt-get install g++
(2). 安装依赖
sudo apt-get install g++-multilib gcc-multilib lib32ncurses5-dev lib32readline-gplv2-dev lib32z1-dev
(3). 安装依赖
sudo apt-get install bison
(4). 然后继续: make update-api
11. 开始编译 make -j4
12. 出现错误:
/bin/bash: gperf: 未找到命令
make: *** [out/target/product/tiny4412/obj/GYP/shared_intermediates/blink/platform/ColorData.cpp] 错误 127
解决方法:
sudo apt-get install gperf
然后继续编译: make -j4
13. 出现错误
art/runtime/thread.h:921:19: error: field 'as_atomic_int' has incomplete type
解决方法:
make 不加 -j4
14. 出现错误
art/runtime/entrypoints/entrypoint_utils.h:171:20: error: 'void art::UnlockJniSynchronizedMethod(jobject, art::Thread*)' declared 'static' but never defined [-Werror=unused-function]
art/runtime/entrypoints/entrypoint_utils.h:177:20: error: 'void art::CheckSuspend(art::Thread*)' declared 'static' but never defined [-Werror=unused-function]
cc1plus: all warnings being treated as errors
原因: 主要原因是 Makefile 里面 gcc 的参数多了一个 "-Werror",找到出错的make文件夹,看Make文件里面有没有“-Werror",如果有的话将其删除。
重新编译即可。
使用脚本解决:
#!/bin/bash
if [ $# != 1 ]
then
echo "./shell.sh /find/dir/xxx"
exit 0;
fi
#查找文件
for FILE in `find $1 -name Makefile`
do
S_FILE=`grep -in "\-Werror" $FILE` #查找文件里有没有-Werror \表示转义字符
#-i表示忽略大小写 -n输出行号
if [ $? == 0 ]
then
#echo "${FILE}->${S_FILE}"
echo "${S_FILE}"
sed -i "s/-Werror/ /g" ${FILE} #将文件里的-Werror 字符串替换为空格
fi
# echo $FILE
done
15. 出现错误
(1). 复原前面对/art/build/android.common_build.mk文件的修改
(2). rm -rf out ?删除out目录
(3). 在源码根目录 执行cp /usr/bin/ld.gold prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.11-4.6/x86_64-linux/bin/ld
(4). 更新下api:make update-api
(5). 尝试重新编译: make
16. 出现错误
/bin/bash: xmllint: 未找到命令
make: *** [out/target/product/tiny4412/system/etc/apns-conf.xml] 错误 127
#### make failed to build some targets (09:18:55 (hh:mm:ss)) ####
解决方法:
sudo apt-get install libxml2-utils
然后继续make
17. 等待一段时间,没有错误就编译完成了。
最终的提示: #### make completed successfully (01:36:28 (hh:mm:ss)) ####
18. 运行./gen-img.sh 生成映像文件
编译成功后,执行以下命令生成系统映象文件 system.img 和 ramdisk-u.img:
#./gen-img.sh
执行 gen-img.sh 下会在 Android 源代码当前目录下生成 system.img、 ramdisk-u.img 和userdata.img。
可将 system.img 和 ramdisk-u.img 以及所有 userdata 开头扩展名为 img 的文件拷到 SD 卡的images/Android 目录下覆盖原文件,然后用 SD 卡重新烧写系统。
出现错误:
Created filesystem with 18/640848 inodes and 78756/2560000 blocks
./gen-img.sh: 行 31: mkimage: 未找到命令
解决方法:
解压光盘的uboot源码,配置,编译
wbyq@wbyq:~/work$ tar xvf /mnt/hgfs/linux-share-dir/uboot_tiny4412_1509.tar
wbyq@wbyq:~/work/uboot_tiny4412_1509/uboot_tiny4412-sdk1506$ make tiny4412_config
wbyq@wbyq:~/work/uboot_tiny4412_1509/uboot_tiny4412-sdk1506$ make
wbyq@wbyq:~/work/uboot_tiny4412_1509/uboot_tiny4412-sdk1506$ sudo cp tools/mkimage /usr/bin/
然后回到Android源码目录下继续运行: #./gen-img.sh
成功提示:
wbyq@wbyq:~/work/tiny4412_Android/android-5.0.2$ ./gen-img.sh
Creating filesystem with parameters:
Size: 629145600
Block size: 4096
Blocks per group: 32768
Inodes per group: 7680
Inode size: 256
Journal blocks: 2400
Label:
Blocks: 153600
Block groups: 5
Reserved block group size: 39
Created filesystem with 1943/38400 inodes and 137309/153600 blocks
Creating filesystem with parameters:
Size: 2149580800
Block size: 4096
Blocks per group: 32768
Inodes per group: 7728
Inode size: 256
Journal blocks: 8200
Label:
Blocks: 524800
Block groups: 17
Reserved block group size: 135
Created filesystem with 18/131376 inodes and 17347/524800 blocks
Creating filesystem with parameters:
Size: 4299161600
Block size: 4096
Blocks per group: 32768
Inodes per group: 7952
Inode size: 256
Journal blocks: 16400
Label:
Blocks: 1049600
Block groups: 33
Reserved block group size: 263
Created filesystem with 18/262416 inodes and 35067/1049600 blocks
Creating filesystem with parameters:
Size: 10485760000
Block size: 4096
Blocks per group: 32768
Inodes per group: 8112
Inode size: 256
Journal blocks: 32768
Label:
Blocks: 2560000
Block groups: 79
Reserved block group size: 631
Created filesystem with 18/640848 inodes and 78756/2560000 blocks
Image Name: ramdisk
Created: Tue Nov 19 12:38:00 2019
Image Type: ARM Linux RAMDisk Image (uncompressed)
Data Size: 720521 Bytes = 703.63 kB = 0.69 MB
Load Address: 40800000
Entry Point: 40800000
wbyq@wbyq:~/work/tiny4412_Android/android-5.0.2$
- 点赞
- 收藏
- 关注作者
评论(0)