1、linux高阶命令
1.1、find
在linux文件系统中,用来查找一个文件放在哪里了。
//举例
find /etc -name "interfaces"
//总结:
//(1)什么时候用find?
//当你知道你要找的文件名,但是你忘记了它被放在哪个目录下,要找到该文件时,用find。
//(2)怎么用find?
//find 路径 -name "文件名"
1.2、grep
在一个文本文件中,查找某个词。
//举例:
grep -nr "SUN" *
//总结:
//(1)什么时候用grep?
//当你想查找某个符号在哪些地方(有可能是一个文件,也有可能是多个文件组成的文件夹)出现过,就用grep
//(2)怎么用?
//grep -nr "要查找的符号" 要查找的目录或文件集合
//注意:-n表示查找结果中显示行号,-r表示要递归查找
1.3、which和whereis
查找一个应用程序(二进制文件)在哪里
//举例:
which ls
whereis ls
//二者区别:
//which只显示二进制文件的路径
//whereis显示二进制文件的路径,和其源码或man手册位置
1.4、uname
查看系统信息
//举例:
uname -a //-a是查询出系统的所有信息,-s只查找内核名字,等等
1.5、开机和关机
shutdown -h now //立即关机
init 0 //关机
shutdown -r now //立即重启
reboot //重启
1.6、tree/lstree
tree显示文件和目录由当前目录开始的树形结构
1.7、mount/umount
用来挂载磁盘到文 件系统中
//举例:
mount -t nfs -o nolock 192.168.1.141:/root/rootfs /mnt //挂载一个远端服务器的目录到当前系统的mnt文件夹中,之后可以直接在mnt文件夹直接访问远端目录
umount /mnt //卸载,用完之后要卸载mnt文件夹
1.8、磁盘空间相关
df -h //显示已挂载的分区列表
du -h filename //文件名,可以列出这个文件有多大,列出方式是以人比较好看懂的方式。不像 ls -l列出的都是以字节为单位。
1.9、用户管理
useradd user1 //添加一个名为user1的用户
userdel user1 //删除一个名为user1的用户
passwd user1 //为名为user的用户设置密码
adduser user1 //添加一个名为user1的用户,同时创建宿主目录,用户shell等。
adduser和useradd的区别:
adduser是一个脚本,而useradd是一个二进制应用程序。adduser创建用户时比较麻烦,但是一次设定完所有的信息;而useradd设置时简单,但是需要额外的设置宿主目录,密码那些信息。
1.10、权限管理
用来管理系统中文件的权限。
chmod //(change mode)修改文件权限,比较常用,要记得
chown //(change owner,修改属主)
chgrp //(change group,修改文件的组)//举例:
//第一种修改权限的方法:
//要把权限改成 rwxr--r-- 则对应的编码值为744,修改命令为:
chmod 744 文件名//第二种修改权限的方法:
//在原来的权限基础上进行修改,即增加或减少某权限。三个组用户的编码依次为: 属主u ,属主所在的组g,其他用户o
chmod u+x 文件名 //要属主增加可执行权限
chmod o+w 文件名 //其他用户增加可写权限
chmod g-x 文件名 //属主所在组用户去掉可执行权限
1.11、文件打包压缩与解压缩
tar -czvf dir.tar.gz dir/ //将dir目录打包成dir.tar.gz
tar -cjvf dir.tar.bz2 dir/ //将dir目录打包成dir.tar.bz2
tar -zxvf dir.tar.gz //解压缩dir.tar.gz
tar -jxvf dir.tar.bz2 //解压缩dir.tar.bz2
1.12、sed和awk
正则表达式。匹配加替换。
1.13、格式化文件系统
mkfs /dev/hd1
mkfs -t vfat 32 -F /dev/hd1 //创建一个FAT32文件系统
1.14、网络配置命令
ifconfig eth0 192.168.1.13 //设置IP地址
ifconfig eth0 up //启动网卡
ifconfig eth0 down //禁用网卡
ifup eth0 //启动网卡
ifdown eth0 //禁用网卡
ifconfig eth0 192.168.1.1 netmask 255.255.255.0 //同时设置IP和子网掩码
2、虚拟机上网问题
2.1、VMware中虚拟机网络的三种设置
第一种:桥接(bridged)
第二种:NAT
第三种:Host only 。该模式下仅主机可以上网,虚拟机不能上网。
2.2、NAT方式
第一步:在菜单栏 虚拟机 -> 设置 -> 硬件 -> 网络适配器,右侧选择NAT模式
第二步:在虚拟机中打开终端,输入以下命令:
vim /etc/network/interfaces
//打开该文件,将iface eth0 inet static修改为iface eth0 inet dhcp
//目的是让该虚拟机用dhcp的方式来分配地址
第三步:重启网卡,输入以下命令:
/etc/init.d/networking restart
2.3、桥接方式
第一步:桥接。在菜单栏 虚拟机 -> 设置 -> 硬件 -> 网络适配器,右侧选择桥接模式。
第二步:桥接到可以上网的网卡。在菜单栏 编辑 -> 虚拟网络编辑器,选择桥接到自己Windows中可以上网的网卡上(一般就是Wifi网络或者有线网络)。
第三步:设置dhcp并重启网卡。同2.2
2.4、总结
第一,NAT方式设置上网比较简单,但是不能用在嵌入式开发中。
第二,桥接方式设置上网较繁琐,但是在嵌入式开发中比较有用。
3、VMware共享文件夹
当我们裸机安装了Windows,并且在Windows中安装了虚拟机软件VMWare,并且在虚拟机中安装了ubuntu后。我们一般在Windows中编辑源代码,而在linux中编译、执行源代码。这时候就需要在Windows和linux之间进行交互。
怎么来进行交互呢?之前通过smb服务器,现在通过VMWare的共享文件夹就可以轻松实现。
怎么建立Windows的共享文件夹?
第一步:先在Windows中创建一个文件夹,主要要使用英文名称。
第二步: VMWare中,菜单栏 VM -> Settings -> Options -> Shared Folders选项卡,右边上侧选择Always Enabled,下面点击Add,next,在打开的选项卡中Host Path项目中浏览选择刚才第一步中创建的文件夹,下面Name中会自动弹出一个相同的名字,这个名字是将来Windows中的文件夹在linux虚拟机中的映射文件夹,名字可以改也可以不改。然后一直OK,完成即可。
第三步:在linux中,直接到 /mnt/hgfs目录下,即可找到刚才第二步中Name相同的名字的
文件夹,这个目录即是第一步中Windows中目录在linux下的映射。