1. ls选择性查看,如只查看.img的文件 可以用ls *.img 或者ls -l *.img(以列表形式查看,更直观,更详细)
2. vim中,命令模式下,‘/’+要找的字符串,可以在内容中查找字符串,按n/N查找上/下一个
3. linux下重要目录的作用,/bin存放linux缺省工具,/env存放系统配置文件,/dev存放与设备有关的文件(其中sd开头的是和磁盘有关的文件)
4. fdisk -l 查看磁盘情况,非root权限下不显示结果
关于磁盘到组织结构, 盘面(一个盘面对应一个磁头head),柱面(cylinder),扇区(sector),一个磁盘由很多层盘面组成,每层盘面有很多个圆环,即柱面,每个柱面又被分成很多扇区。
Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000db977
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 1920055295 960026624 83 Linux
/dev/sda2 1920057342 1953523711 16733185 5 Extended
/dev/sda5 1920057344 1953523711 16733184 82 Linux swap / Solaris
如以上是我的磁盘情况。255*63*121601=1953520065 略小于 total 1953525168 sectors
total 1953525168 sectors * 512bytes /sector= 1000204886016 bytes
5. 在linux中打开一个程序,可以在shell中直接输入文件名,如'meld','emulator','gedit'等等, 如果在这后面加个'&',可以实现shell和程序的分离,即不是必须关闭程序才能在该shell下继续输入
6. 查找某个文件的位置 locate 文件名
7. 查找某字符串在哪些文件存在 grep '字符串' * -r
-r表示递归搜索 目录及其子目录
此方法可用于找某函数存在的文件
-i 忽略大小写
8. ssh 和 scp
9.
smbclient是一种基于smb协议的用于文件共享的客户端程序
smb(服务器信息块)协议用于在计算机之间共享文件、打印机、串口等。SMB协议可以用在TCP/IP协议之上,客户端程序通过它访问服务器端的文件等。smbclient可让Linux系统存取Windows系统所分享的资源。
smb又称为CIFS common internet file system
smbclient是一种类似FTP的去获取sever上SMB/CIFS资源的客户端程序
一个不错的学习链接 https://wiki.archlinux.org/index.php/Smbclient
10.
linux下文件不靠后缀名区分文件类型,可以用file命令查看文件类型 file filename
主要又两种包:binary package和source package [开源版不是很稳定]
二进制包一般可以直接安装运行,源码包需要编译。通常编译就三条命令;
make
sudo make install
13.
linux下一个不错的文件比较软件meld
安装:sudo apt-get intstall meld
使用:cd /usr/bin && meld
心得:ubuntu下很多软件可以用apt-get的方法安装,安装后的执行文件位于/usr/bin下,执行即可.而/usr/bin一般是环境变量PATH中的,所以一般在任何路径下都可以直接使用命令meld
14.
linux下用于查看系统日志的一些信息,比如我的机子最近频繁死机.一天可达3次.guyang帮忙看了一些系统日志,用了以下命令:
(1) dmesg
dmesg 功能说明:显示开机信息。
语 法:dmesg [-cn][-s <缓冲区大小>]
http://i.cnblogs.com/EditPosts.aspx?postid=3667981
补充说明:kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看信息,可利用dmesg来查看。开机信息亦保存在/var/log目录中,名称为dmesg的文件里。
(2) lspci
PCI是Peripheral Component Interconnect(外围设备互联)的简称,是普遍使用在桌面及更大型的计算机上的外 设总线
lspci is a command on Unix-like operating systems that prints detailed information about all PCI buses and devices in the system.
即lspci是用来显示PCI总线和设备的信息的
(3)cd /var/log 在此目录下
vi lastlog
vi xorg.0.log.old
vi xorg.1.log.old
xorg是X11窗口系统的一个开源实现,大部分linux发行版本都提供了它
15.
.deb文件 deb是Debian软件包格式,文件扩展名为.deb,跟Debian的命名一样
deb 是 Unix系统(其实主要是 Linux)下的安装包,基于 tar 包,因此本身会记录文件的权限(读/写/可执行)以及所有者/用户组。
.deb是ubuntu,debian常见的软件安装包格式
.rpm是redhead,fedora,suse的软件安装包格式
dpkg命令常用格式如下:
sudo dpkg -I iptux.deb #查看iptux.deb软件包的详细信息,包括软件名称、版本以及大小等(其中-I等价于--info)
sudo dpkg -c iptux.deb #查看iptux.deb软件包中包含的文件结构(其中-c等价于--contents)
sudo dpkg -i iptux.deb #安装iptux.deb软件包(其中-i等价于--install)
sudo dpkg -l iptux #查看iptux软件包的信息(软件名称可通过dpkg -I命令查看,其中-l等价于--list)
sudo dpkg -L iptux #查看iptux软件包安装的所有文件(软件名称可通过dpkg -I命令查看,其中-L等价于--listfiles)
sudo dpkg -s iptux #查看iptux软件包的详细信息(软件名称可通过dpkg -I命令查看,其中-s等价于--status)
sudo dpkg -r iptux #卸载iptux软件包(软件名称可通过dpkg -I命令查看,其中-r等价于--remove)
注:dpkg命令无法自动解决依赖关系。如果安装的deb包存在依赖包,则应避免使用此命令,或者按照依赖关系顺序安装依赖包。
16.
linux下安装chrome
以我的ubuntu 64位为例,直接在google chrome官网https://www.google.com/intl/en/chrome/browser/下载
选择64bit.deb (for debian,ubuntu)
下载后会有一个.deb包,双击后会自动用ububtu software center打开,然后点击安装完成
直接在terminal下敲google-chrome-stable即可打开
心得: linux下,安装好的软件如果想要运行,一般直接在terminal下输入软件的名字即可
17.
在某目录下建立对另一目录某文件的链接 ln -s 源文件 目标文件
源文件就是另一目录的某文件,目标文件就是你当前目录下的链接文件,自取名. 于是,对两文件的改动是等价的,对源文件改动目标文件会随之改动,反之亦然。
此种情况特别适合在某目录下需要用到某文件,而该文件是经常改动的,如来自于git库
注: 可以建立链接的不仅是文件,文件夹也可以
18.
用ll查看目录下的文件,如在我的某个目录下,查看文件显示如下:
hanying@feelcool-PC:/workspace/project$ ll
total 28
drwxr-xr-x 6 hanying hanying 4096 6月 26 09:42 ./
drwxr-xr-x 3 hanying hanying 4096 6月 25 17:55 ../
drwxrwxr-x 33 hanying hanying 4096 6月 26 17:43 aosp-stable/
drwxrwxr-x 11 hanying hanying 4096 6月 27 11:24 chromium-android-test/
drwxr-xr-x 14 hanying hanying 4096 6月 26 10:03 depot_tools/
drwxr-xr-x 8 hanying hanying 4096 6月 16 08:33 share/
lrwxrwxrwx 1 hanying hanying 60 6月 26 09:42 x64-upstream.py -> /workspace/project/share/python/x64-upstream/x64-upstream.py*
最后一行的->表示该文件是链接文件。由当前的链接文件指向源文件
每行的第一列是关于文件属性的说明。
第一个字母:d表示文件夹,l表示链接文件,-表示普通文件
后面9个字母,3个一组。
r表示读权限,w表示写权限,x表示可执行权限
第一组代表建立这个文件的用户权限,第二组代表建立这个文件的用户所属组的权限,第三组代表其他用户的权限,若为-,则表示没有该权限。
19. ssh scp
ssh远程登录 如在A机器上登录B机器, ssh username_B@hostname_B
会提示输入username_B这个account的密码. 输入正确后即成功登录B
scp 源文件 目标文件
如想把A机器的东西拷贝到B机器上
方法1: 先ssh登录B机器,此时当前目录在B机器下,A就成了逻辑上的远程. ssh username_A@hostname_A:源文件 目标文件
方法2:直接在A机器上, ssh 源文件 username_B@hostname_B:目标文件
若想scp一个文件夹,要加上-r 参数 scp -r 源文件 目标文件
扩展: 在拷贝一个很大的文件夹时,如我想拷贝几十G的aosp-stable, 那么直接用scp -r传输会很慢. 需要先打个包
而打包时间也比较长, 可以边打包边传输.
use tar command through network over ssh session
tar zcf - chromium-android-test | ssh wp@wp-01 "cd /workspace/project; tar zxf -"
(讲当前目录下的chromium-android-test目录传输到wp-01机器上的/workspace/project目录下. 传输过程是这么实现的,在发端先取一部分,然后压缩,发送到收端,在收端再解压缩,这些细节对用户是透明的,但加快了传输速度.
z代表用gzip压缩
c代表建立新的压缩文件
f代表指定压缩文件
x解压文件
20. 设置目录权限
修改目录的可读可写可执行的权限 chmod 777 文件名 (777=111,111,111, 三段皆为可读可写可执行)
修改目录的owner chown 用户名 文件名
注意,这些都只是修改改文件目录一层的权限,没有修改子目录下的文件权限.
如果需要修改该目录及其子目录的权限,要加上-R参数 如chmod -R 777 文件名
网络复制:
语法:chmod [who] [+ | - | =] [mode] 文件名
命令中各选项的含义为
u 表示“用户(user)”,即文件或目录的所有者。
g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。
o 表示“其他(others)用户”。
a 表示“所有(all)用户”。它是系统默认值。
操作符号可以是:
+ 添加某个权限。
- 取消某个权限。
= 赋予给定权限并取消其他所有权限(如果有的话)。
设置mode所表示的权限可用下述字母的任意组合:
r 可读。
w 可写。
x 可执行。
X 只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x 属性。
s 在文件执行时把进程的属主或组ID置为该文件的文件属主。方式“u+s”设置文件的用户ID位,“g+s”设置组ID位。
t 保存程序的文本到交换设备上。
u 与文件属主拥有一样的权限。
g 与和文件属主同组的用户拥有一样的权限。
o 与其他用户拥有一样的权限。
21.
rsync 用于同步两端文件
在ssh传输很大的文件但是没传完就断了的时候,用rsync可以比较两端的差异然后同步,比较好的介绍见下面的链接
http://www.2cto.com/os/201208/145246.html
比如我在执行tar zcf - chromium-android-test | ssh wp@wp-01 "cd /workspace/project; tar zxf -" 该命令已经传了45G,却因为操作失误断了该进程. 于是可以用rsync
rsync -ave ssh wp@wp-01:/workspace/project/aosp-stable /workspace/project/aosp-stable
于是可以将本地的/workspace/project/aosp-stable目录与wp-01上面的/workspace/project/aosp-stable同步
说明: -a表示archive mode, 就是保持原有的文件权限
-v表示显示操作过程
-e使用远程shell程序(可以使用ssh)
22. 查看操作系统位数是
getconf LONG_BIT
23. 压缩解压缩文件
压缩文件:tar -czvf 压缩后文件名.tar.gz 待压缩文件名
解压文件: tar -xzvf 待解压文件名.tar.gz
解压文件到指定文件夹:tar -xzvf 待解压文件名.tar.gz -C 解压后文件夹(文件夹必须事先存在)
几个参数说明:
-x 解压文件
-c 压缩文件
-z代表用gzip压缩/解压
-j代表用bzip压缩/解压
-f代表指定压缩文件
-v压缩的过程中显示文件