linux常用命令日记

patch -p1  -i ./p1/samsung_android_platform_ics.patch

打补丁到当前目录下

sudo passwd root

更改ubuntu系统里的root用户密码

 cp out/lib/* ../android_froyo/out/target/product/smdkv210/system/lib/ -a

拷贝文件加-a选项才能拷贝软符号链接文件。

df -hl 查看磁盘剩余空间

du -sm 文件夹
返回该文件夹总M数 

/etc/init.d/networking restart
网络重启

 

find /usr/lib/ -name libX11.so.6

查找某个目录下的文件

查找目录:find /(查找范围) -name '查找关键字' -type d
查找文件:find /(查找范围) -name 查找关键字 -print

 

如果需要更进一步的了解,可以参看Linux的命令详解。

这里摘抄如下:

 

·find path -option [ -print ] [ -exec -ok command ] {} /;
#-print 将查找到的文件输出到标准输出
#-exec command {} /;     -----将查到的文件执行command操作,{} 和 /;之间有空格
#-ok 和-exec相同,只不过在操作前要询用户

====================================================

-name filename             #查找名为filename的文件
-perm                       #按执行权限来查找
-user   username            #按文件属主来查找
-group groupname            #按组来查找
-mtime -n +n               #按文件更改时间来查找文件,-n指n天以内,+n指n天以前
-atime   -n +n              #按文件访问时间来查
-perm                        #按执行权限来查找
-user   username            #按文件属主来查找
-group groupname            #按组来查找
-mtime -n +n               #按文件更改时间来查找文件,-n指n天以内,+n指n天以前
-atime   -n +n              #按文件访问时间来查找文件,-n指n天以内,+n指n天以前
-ctime   -n +n              #按文件创建时间来查找文件,-n指n天以内,+n指n天以前
-nogroup                    #查无有效属组的文件,即文件的属组在/etc/groups中不存在
-nouser                     #查无有效属主的文件,即文件的属主在/etc/passwd中不存
-newer f1 !f2              找文件,-n指n天以内,+n指n天以前
-ctime   -n +n              #按文件创建时间来查找文件,-n指n天以内,+n指n天以前
-nogroup                    #查无有效属组的文件,即文件的属组在/etc/groups中不存在
-nouser                     #查无有效属主的文件,即文件的属主在/etc/passwd中不存
-newer f1 !f2              #查更改时间比f1新但比f2旧的文件
-type    b/d/c/p/l/f        #查是块设备、目录、字符设备、管道、符号链接、普通文件
-size     n[c]              #查长度为n块[或n字节]的文件
-depth                      #使查找在进入子目录前先行查找完本目录
-fstype                     #查更改时间比f1新但比f2旧的文件
-type    b/d/c/p/l/f        #查是块设备、目录、字符设备、管道、符号链接、普通文件
-size     n[c]              #查长度为n块[或n字节]的文件
-depth                      #使查找在进入子目录前先行查找完本目录
-fstype                     #查位于某一类型文件系统中的文件,这些文件系统类型通常可 在/etc/fstab中找到
-mount                      #查文件时不跨越文件系统mount点
-follow                     #如果遇到符号链接文件,就跟踪链接所指的文件
-cpio                   #查位于某一类型文件系统中的文件,这些文件系统类型通常可 在/etc/fstab中找到
-mount                      #查文件时不跨越文件系统mount点
-follow                     #如果遇到符号链接文件,就跟踪链接所指的文件
-cpio                       #对匹配的文件使用cpio命令,将他们备份到磁带设备中
-prune                      #忽略某个目录

====================================================
$find ~ -name "*.txt" -print    #在$HOME中查.txt文件并显示
$find .   -name "*.txt" -print
$find .   -name "[A-Z]*" -pri26nbsp;   #对匹配的文件使用cpio命令,将他们备份到磁带设备中
-prune                              #忽略某个目录

=====================================================
$find ~ -name "*.txt" -print    #在$HOME中查.txt文件并显示
$find .   -name "*.txt" -print
$find .   -name "[A-Z]*" -print #查以大写字母开头的文件
$find /etc -name "host*" -print #查以host开头的文件
$find . -name "[a-z][a-z][0--9][0--9].txt"   -print #查以两个小写字母和两个数字开头的txt文件
$find . -perm 755 -print
$find . -perm -007 -exec ls -l {} /; #查所有用户都可读写执行的文件同-perm 777
$find . -type d -print
$find . ! -type d -print
$find . -type l -print

$find . -size +1000000c -print       #查长度大于1Mb的文件
$find . -size 100c        -print      # 查长度为100c的文件
$find . -size +10 -print             #查长度超过期作废10块的文件(1块=512字节)

$cd /
$find etc home apps   -depth -print | cpio -ivcdC65536 -o /dev/rmt0
$find /etc -name "passwd*" -exec grep "cnscn" {} /; #看是否存在cnscn用户
$find . -name "yao*" | xargs file
$find . -name "yao*" | xargs echo   "" > /tmp/core.log
$find . -name "yao*" | xargs chmod o-w

======================================================

find -name april*                      在当前目录下查找以april开始的文件
find -name april* fprint file        在当前目录下查找以april开始的文件,并把结果输出到file中
find -name ap* -o -name may* 查找以ap或may开头的文件
find /mnt -name tom.txt -ftype vfat 在/mnt下查找名称为tom.txt且文件系统类型为vfat的文件
find /mnt -name t.txt ! -ftype vfat   在/mnt下查找名称为tom.txt且文件系统类型不为vfat的文件
find /tmp -name wa* -type l           在/tmp下查找名为wa开头且类型为符号链接的文件
find /home -mtime -2                 在/home下查最近两天内改动过的文件
find /home   -atime -1                  查1天之内被存取过的文件
find /home -mmin   +60                  在/home下查60分钟前改动过的文件
find /home -amin +30                  查最近30分钟前被存取过的文件
find /home -newer tmp.txt             在/home下查更新时间比tmp.txt近的文件或目录
find /home -anewer tmp.txt            在/home下查存取时间比tmp.txt近的文件或目录
find /home -used -2                  列出文件或目录被改动过之后,在2日内被存取过的文件或目录
find /home -user cnscn                列出/home目录内属于用户cnscn的文件或目录
find /home -uid +501                 列出/home目录内用户的识别码大于501的文件或目录
find /home -group cnscn              列出/home内组为cnscn的文件或目录
find /home -gid 501                   列出/home内组id为501的文件或目录
find /home -nouser                    列出/home内不属于本地用户的文件或目录
find /home -nogroup                   列出/home内不属于本地组的文件或目录
find /home   -name tmp.txt   -maxdepth 4 列出/home内的tmp.txt 查时深度最多为3层
find /home -name tmp.txt -mindepth 3 从第2层开始查
find /home -empty                     查找大小为0的文件或空目录
find /home -size +512k               查大于512k的文件
find /home -size -512k               查小于512k的文件
find /home -links +2                 查硬连接数大于2的文件或目录
find /home -perm 0700                查权限为700的文件或目录
find /tmp -name tmp.txt -exec cat {} /;
find /tmp -name tmp.txt -ok rm {} /;

find   / -amin   -10       # 查找在系统中最后10分钟访问的文件
find   / -atime -2         # 查找在系统中最后48小时访问的文件
find   / -empty              # 查找在系统中为空的文件或者文件夹
find   / -group cat        # 查找在系统中属于 groupcat的文件
find   / -mmin -5         # 查找在系统中最后5分钟里修改过的文件
find   / -mtime -1        #查找在系统中最后24小时里修改过的文件
find   / -nouser             #查找在系统中属于作废用户的文件
find   / -user   fred       #查找在系统中属于FRED这个用户的文件

查当前目录下的所有普通文件
--------------------------------------------------------------------------------

# find . -type f -exec ls -l {} /;
-rw-r--r--    1 root     root        34928 2003-02-25 ./conf/httpd.conf
-rw-r--r--    1 root     root        12959 2003-02-25 ./conf/magic
-rw-r--r--    1 root     root          180 2003-02-25 ./conf.d/README
查当前目录下的所有普通文件,并在- e x e c选项中使用ls -l命令将它们列出


=================================================
在/ l o g s目录中查找更改时间在5日以前的文件并删除它们:
$ find logs -type f -mtime +5 -exec -ok rm {} /;


=================================================
查询当天修改过的文件
[root@book class]# find ./ -mtime -1 -type f -exec ls -l {} /;


=================================================
查询文件并询问是否要显示
[root@book class]# find ./ -mtime -1 -type f -ok ls -l {} /;
< ls ... ./classDB.inc.php > ? y
-rw-r--r--    1 cnscn    cnscn       13709 1月 12 12:22 ./classDB.inc.php
[root@book class]# find ./ -mtime -1 -type f -ok ls -l {} /;
< ls ... ./classDB.inc.php > ? n
[root@book class]#

=================================================
查询并交给awk去处理
[root@book class]# who | awk '{print $1"/t"$2}'
cnscn   pts/0

=================================================
awk---grep---sed

[root@book class]# df -k | awk '{print $1}' | grep -v 'none' | sed s"///dev////g"
文件系统
sda2
sda1
[root@book class]# df -k | awk '{print $1}' | grep -v 'none'
文件系统
/dev/sda2
/dev/sda1


1)在/tmp中查找所有的*.h,并在这些文件中查找“SYSCALL_VECTOR",最后打印出所有包含"SYSCALL_VECTOR"的文件名

A) find /tmp -name "*.h" | xargs -n50 grep SYSCALL_VECTOR
B) grep SYSCALL_VECTOR /tmp/*.h | cut   -d':' -f1| uniq > filename
C) find /tmp -name "*.h" -exec grep "SYSCALL_VECTOR" {} /; -print


2)find / -name filename -exec rm -rf {} /;
find / -name filename -ok rm -rf {} /;


3)比如要查找磁盘中大于3M的文件:
find . -size +3000k -exec ls -ld {} ;


4)将find出来的东西拷到另一个地方
find *.c -exec cp '{}' /tmp ';'

如果有特殊文件,可以用cpio,也可以用这样的语法:
find dir -name filename -print | cpio -pdv newdir


6)查找2004-11-30 16:36:37时更改过的文件
# A=`find ./ -name "*php"` | ls -l --full-time $A 2>/dev/null | grep "2004-11-30 16:36:37"

 

.tar

解包:tar xvf FileName.tar

打包:tar cvf FileName.tar DirName

(注:tar是打包,不是压缩!)

———————————————

.gz

解压1:gunzip FileName.gz

解压2:gzip -d FileName.gz

压缩:gzip FileName

.tar.gz 和 .tgz

解压:tar zxvf FileName.tar.gz

压缩:tar zcvf FileName.tar.gz DirName

———————————————

.bz2

解压1:bzip2 -d FileName.bz2

解压2:bunzip2 FileName.bz2

压缩: bzip2 -z FileName

.tar.bz2

解压:tar jxvf FileName.tar.bz2 或tar –bzip xvf FileName.tar.bz2

压缩:tar jcvf FileName.tar.bz2 DirName

———————————————

.bz

解压1:bzip2 -d FileName.bz

解压2:bunzip2 FileName.bz

压缩:未知

.tar.bz

解压:tar jxvf FileName.tar.bz

压缩:未知

———————————————

.Z

解压:uncompress FileName.Z

压缩:compress FileName

.tar.Z

解压:tar Zxvf FileName.tar.Z

压缩:tar Zcvf FileName.tar.Z DirName

———————————————

.zip

解压:unzip FileName.zip

压缩:zip FileName.zip DirName

压缩一个目录使用 -r 参数,-r 递归。例: $ zip -r FileName.zip DirName

———————————————

.rar

解压:rar x FileName.rar

压缩:rar a FileName.rar DirName

rar请到:http://www.rarsoft.com/download.htm 下载!

解压后请将rar_static拷贝到/usr/bin目录(其他由$PATH环境变量指定的目录也可以)

[root@www2 tmp]# cp rar_static /usr/bin/rar

———————————————

.lha

解压:lha -e FileName.lha

压缩:lha -a FileName.lha FileName

lha请到:http://www.infor.kanazawa-it.ac.jp/~ishii/lhaunix/下载!

>解压后请将lha拷贝到/usr/bin目录(其他由$PATH环境变量指定的目录也可以):

[root@www2 tmp]# cp lha /usr/bin/

———————————————

.rpm

解包:rpm2cpio FileName.rpm | cpio -div

———————————————

.deb

解包:ar p FileName.deb data.tar.gz | tar zxf -

———————————————

.tar .tgz .tar.gz .tar.Z .tar.bz .tar.bz2 .zip

.cpio .rpm .deb .slp .arj .rar .ace .lha .lzh .lzx .lzs

.arc .sda .sfx .lnx .zoo .cab .kar .cpt .pit .sit .sea

解压:sEx x FileName.*

压缩:sEx a FileName.* FileName

sEx只是调用相关程序,本身并无压缩、解压功能,请注意!

sEx请到: http://sourceforge.net/projects/sex下载!

解压后请将sEx拷贝到/usr/bin目录(其他由$PATH环境变量指定的目录也可以):

[root@www2 tmp]# cp sEx /usr/bin/

****************************************************************************
*********************************

Linux下常见文件解压方法及命令

系统·System

1.以.a为扩展名的文件:

#tar xv file.a

2.以.z为扩展名的文件:

#uncompress file.Z

3.以.gz为扩展名的文件:

#gunzip file.gz

4.以.bz2为扩展名的文件:

#bunzip2 file.bz2

5.以.tar.Z为扩展名的文件:

#tar xvZf file.tar.Z

或 #compress -dc file.tar.Z | tar xvf

6.以.tar.gz/.tgz为扩展名的文件:

#tar xvzf file.tar.gz

或 gzip -dc file.tar.gz | tar xvf -

7.以.tar.bz2为扩展名的文件:

#tar xvIf file.tar.bz2

或 bzip2 -dc file.tar.bz2 | xvf -

8.以.cpio.gz/.cgz为扩展名的文件:

#gzip -dc file.cgz | cpio -div

9.以.cpio/cpio为扩展名的文件:

#cpio -div file.cpio

或cpio -divc file.cpio

10.以.rpm为扩展名的文件安装:

#rpm -i file.rpm

11.以.rpm为扩展名的文件解压缩:

#rpm2cpio file.rpm | cpio -div

12.以.deb为扩展名的文件安装:

#dpkg -i file.deb

13.以.deb为扩展名的文件解压缩:

#dpkg-deb -fsys-tarfile file.deb | tar xvf - ar p

file.deb data.tar.gz | tar xvzf -

14.以.zip为扩展名的文件:

#unzip file.zip

在linux下解压Winzip格式的文件

  要是装了jdk的话,可以用jar命令;还可以使用unzip命令。

直接解压.tar.gz文件

  xxxx.tar.gz文件使用tar带zxvf参数,可以一次解压开。XXXX为文件名。 例如:

$tar zxvf xxxx.tar.gz 各种压缩文件的解压(安装方法)

文件扩展名 解压(安装方法)


.a ar xv file.a

.Z uncompress file.Z

.gz gunzip file.gz

.bz2 bunzip2 file.bz2

.tar.Z tar xvZf file.tar.Z

compress -dc file.tar.Z | tar xvf -

.tar.gz/.tgz tar xvzf file.tar.gz

gzip -dc file.tar.gz | tar xvf -

.tar.bz2 tar xvIf file.tar.bz2

bzip2 -dc file.tar.bz2 | xvf -

.cpio.gz/.cgz gzip -dc file.cgz | cpio -div

.cpio/cpio cpio -div file.cpio

cpio -divc file.cpio

.rpm/install rpm -i file.rpm

.rpm/extract rpm2cpio file.rpm | cpio -div

.deb/install dpkg -i file.deb

.deb/exrtact dpkg-deb -fsys-tarfile file.deb | tar xvf -

ar p file.deb data.tar.gz | tar xvzf -

.zip unzip file.zip

bzip2 -d myfile.tar.bz2 | tar xvf

tar xvfz myfile.tar.bz2

x 是解压

v 是复杂输出

f 是指定文件

z gz格式

gzip

gzip[选项]要压缩(或解压缩)的文件名

-c将输出写到标准输出上,并保留原有文件。

-d将压缩文件压缩。

-l对每个压缩文件,显示下列字段:压缩文件的大小,未压缩文件的大小、压缩比、未
压缩文件的名字

-r递归式地查找指定目录并压缩或压缩其中的所有文件。

-t测试压缩文件是正完整。

-v对每一个压缩和解压缩的文件,显示其文件名和压缩比。

-num-用指定的数字调整压缩的速度。

举例:

把/usr目录并包括它的子目录在内的全部文件做一备份,备份文件名为usr.tar

tar cvf usr.tar /home

把/usr 目录并包括它的子目录在内的全部文件做一备份并进行压缩,备份文件名是usr
.tar.gz

tar czvf usr.tar.gz /usr

压缩一组文件,文件的后缀为tar.gz

#tar cvf back.tar /back/

#gzip -q back.tar

or

#tar cvfz back.tar.gz /back/

释放一个后缀为tar.gz的文件。

#tar zxvf back.tar.gz

#gzip back.tar.gz

#tar xvf back.tar

无语呀!无语!一个打解压缩的命令有这么长吗?

关于压缩文件和归档文件

归档文件是一个文件和目录的集合,大小不变.

压缩文件也是文件的集合,常常会压缩,使其占用的磁盘空间比所有文件大小之和小.

所以归档文件不是压缩文件,而压缩文件可以是归档文件.

常用的打包(归档)和压缩命令.

命令 功能

tar 文件目录打(解)包

gzip 压缩(解压),后缀名是”gz”

compress 同上,后缀名是”Z”

bzip2 同上后缀为”bz2″

在linux下常用tar命令调用各个压缩软件实现打包和解压缩

tar 常用

-cvf 打包,-xvf解包,-tf查看包中的内容,这是三个基本的用法,可以加其它的参数来
调用其它的软件来实现打包和解压缩,如调用gzip工具

-zcvf,-zxvf,-ztf 举个例了:tar -zcvf myball.tar.gz mydir 把mydir目录用gzip工
具打包,所以我们的后缀名用gz,这样一看就知是用什么工具打包的了,我们也用相应
的解包,tar -zxvf myball.tar.gz 解压在当前的目录了 查看也是一样

tar -ztf myball.tar.gz

如调用compress,它的后缀名是Z,如果我们看到这样一个压缩包 myball.tar.Z ,那么我
们可以这样来解压缩tar -Zxvf myball.tar.Z 查看和打包和上面的类似,

如调用bzip2工具,它的后缀是bz2,如果我们要打包一个文件那么这样

tar -jcvf myball.tar.bz2 myfile

看了上面的你应有个大体的把握:记住

-cvf 是打包

-xvf 是解包

-tf 是查看包中内容

调用相关的工具,只要在前面加上个参数就是了

gzip 加 z 后缀名是gz

compress 加 Z 后缀名 Z

bzip2 加 j 后缀名是 bz2

LINUX的文件和后缀名没有关系

  

如果你不小心误删除了一个重要的文件,如rm -rf kkk ,而kkk是你的一个非常重要的文件,你肯定非常痛苦,这时你千万不能惊慌,应该马上停止向你的硬盘写入任何文件。它完全是可以恢复的。(我这里专门针对 ext2文件系统写了如下的内容,其它的文件系统也有办法,我以后在写):
#debugfs /dev/hda1(被删除文件所在的分区)
debugfs:lsdel

就可列出你最近被删除文件的inode表,大致如下:
Inode Owner Mode Size Blocks Time deleted

依此是节点表号,属主,文件属性(即读、写等),大小,block(一般1block=1K),被删除时的时间。有了这些信息,你应该能很快就判断出那个文件是你想恢复的。这时用

debugfs:dump <你想恢复的inode表值> /home/directory(到那个目录)

OK!就这么简单,在/home/directory中可以找到它。
当然,如果你的文件很多,这样做一个一个的肯定很麻烦,你可以下载一些工具。我这里给个地址:
http://revocer.sourceforge.net/linux/recover 。

 

linux下挂载(mount)光盘映像文档、移动硬盘、U盘、Windows和NFS网络共享

linux是个优秀的开放源码的操作系统,能够运行在大到巨型小到掌上型各类电脑系统上,随着linux系统的日渐成熟和稳定连同他开放源代码特有的优越性,linux在全世界得到了越来越广泛的应用。现在许多企业的电脑系统都是由UNIX系统、Linux系统和Windows系统组成的混合系统,不同系统之间经常需要进行数据交换。下面我根据自己的实际工作经验介绍一下如何在linux系统下挂接(mount)光盘映像文档、移动硬盘、U盘连同Windows网络共享和UNIX NFS网络共享。   
  挂接命令 (mount)
  首先,介绍一下挂接(mount)命令的使用方法,mount命令参数很多,这里主要讲一下今天我们要用到的。
  命令格式:
  mount [-t vfstype] [-o options] device dir
  其中:
  1.-t vfstype 指定文档系统的类型,通常不必指定。mount 会自动选择正确的类型。常用类型有:
  光盘或光盘映像:iso9660
  DOS fat16文档系统:msdos
  Windows 9x fat32文档系统:vfat
  Windows NT ntfs文档系统:ntfs
  Mount Windows文档网络共享:smbfs
  UNIX(LINUX) 文档网络共享:nfs
  2.-o options 主要用来描述设备或档案的挂接方式。常用的参数有:
  loop:用来把一个文档当成硬盘分区挂接上系统
  ro:采用只读方式挂接设备
  rw:采用读写方式挂接设备
  iocharset:指定访问文档系统所用字符集
  3.device 要挂接(mount)的设备。
  4.dir设备在系统上的挂接点(mount point)。
  挂接光盘映像文档
  由于近年来磁盘技术的巨大进步,新的电脑系统都配备了大容量的磁盘系统,在Windows下许多人都习惯把软件和资料做成光盘映像文档通过虚拟光驱来使用。这样做有许多好处:一、减轻了光驱的磨损;二、现在硬盘容量巨大存放几十个光盘映像文档不成问题,随用随调十分方便;三、硬盘的读取速度要远远高于光盘的读取速度,CPU占用率大大降低。其实linux系统下制作和使用光盘映像比Windows系统更方便,不必借用任何第三方软件包。
  1、从光盘制作光盘映像文档。将光盘放入光驱,执行下面的命令。
   #cp /dev/cdrom /home/sunky/mydisk.iso 或
   #dd if=/dev/cdrom of=/home/sunky/mydisk.iso
   注:执行上面的任何一条命令都可将当前光驱里的光盘制作成光盘映像文档/home/sunky/mydisk.iso
  2、将文档和目录制作成光盘映像文档,执行下面的命令。
   #mkisofs -r -J -V mydisk -o /home/sunky/mydisk.iso /home/sunky/ mydir
   注:这条命令将/home/sunky/mydir目录下任何的目录和文档制作成光盘映像文档/home/sunky/mydisk.iso,光盘卷标为:mydisk
  3、光盘映像文档的挂接(mount)
   #mkdir /mnt/vcdrom
   注:建立一个目录用来作挂接点(mount point)
   #mount -o loop -t iso9660 /home/sunky/mydisk.iso /mnt/vcdrom
   注:使用/mnt/vcdrom就能够访问盘映像文档mydisk.iso里的任何文档了。
   
  挂接移动硬盘
  对linux系统而言,USB接口的移动硬盘是当作SCSI设备对待的。插入移动硬盘之前,应先用fdisk –l 或 more /proc/partitions查看系统的硬盘和硬盘分区情况。
  [root at pldyrouter /]# fdisk -l
  Disk /dev/sda: 73 dot 4 GB, 73407820800 bytes
  255 heads, 63 sectors/track, 8924 cylinders
  Units = cylinders of 16065 * 512 = 8225280 bytes
  Device Boot Start End Blocks Id System
  /dev/sda1 1 4 32098+ de Dell Utility
  /dev/sda2 * 5 2554 20482875 7 HPFS/NTFS
  /dev/sda3 2555 7904 42973875 83 Linux
  /dev/sda4 7905 8924 8193150 f Win95 Ext'd (LBA)
  /dev/sda5 7905 8924 8193118+ 82 Linux swap
  在这里能够清楚地看到系统有一块SCSI硬盘/dev/sda和他的四个磁盘分区/dev/sda1 -- /dev/sda4,/dev/sda5是分区/dev/sda4的逻辑分区。接好移动硬盘后,再用fdisk –l 或 more/proc/partitions查看系统的硬盘和硬盘分区情况
  [root at pldyrouter /]# fdisk -l
  Disk /dev/sda: 73 dot 4 GB, 73407820800 bytes
  255 heads, 63 sectors/track, 8924 cylinders
  Units = cylinders of 16065 * 512 = 8225280 bytes
  Device Boot Start End Blocks Id System
  /dev/sda1 1 4 32098+ de Dell Utility
  /dev/sda2 * 5 2554 20482875 7 HPFS/NTFS
  /dev/sda3 2555 7904 42973875 83 Linux
  /dev/sda4 7905 8924 8193150 f Win95 Ext'd (LBA)
  /dev/sda5 7905 8924 8193118+ 82 Linux swap
  Disk /dev/sdc: 40.0 GB, 40007761920 bytes
  255 heads, 63 sectors/track, 4864 cylinders
  Units = cylinders of 16065 * 512 = 8225280 bytes
  Device Boot Start End Blocks Id System
  /dev/sdc1 1 510 4096543+ 7 HPFS/NTFS
  /dev/sdc2 511 4864 34973505 f Win95 Ext'd (LBA)
  /dev/sdc5 511 4864 34973473+ b Win95 FAT32
  大家应该能够发现多了一个SCSI硬盘/dev/sdc和他的两个磁盘分区/dev/sdc1?、/dev/sdc2,其中/dev/sdc5是/dev/sdc2分区的逻辑分区。我们能够使用下面的命令挂接/dev/sdc1和/dev/sdc5。
   #mkdir -p /mnt/usbhd1
   #mkdir -p /mnt/usbhd2
   注:建立目录用来作挂接点(mount point)
   #mount -t ntfs /dev/sdc1 /mnt/usbhd1
   #mount -t vfat /dev/sdc5 /mnt/usbhd2
   注:对ntfs格式的磁盘分区应使用-t ntfs 参数,对fat32格式的磁盘分区应使用-t vfat参数。若汉字文档名显示为乱码或不显示,能够使用下面的命令格式。
   #mount -t ntfs -o iocharset=cp936 /dev/sdc1 /mnt/usbhd1
   #mount -t vfat -o iocharset=cp936 /dev/sdc5 /mnt/usbhd2
  linux系统下使用fdisk分区命令和mkfs文档系统创建命令能够将移动硬盘的分区制作成linux系统所特有的ext2、ext3格式。这样,在linux下使用就更方便了。使用下面的命令直接挂接即可。
   #mount /dev/sdc1 /mnt/usbhd1
   
  挂接 U 盘
  和USB接口的移动硬盘相同对linux系统而言U盘也是当作SCSI设备对待的。使用方法和移动硬盘完全相同。插入U盘之前,应先用fdisk –l 或 more /proc/partitions查看系统的硬盘和硬盘分区情况。
  [root at pldyrouter root]# fdisk -l
  Disk /dev/sda: 73 dot 4 GB, 73407820800 bytes
  255 heads, 63 sectors/track, 8924 cylinders
  Units = cylinders of 16065 * 512 = 8225280 bytes
  Device Boot Start End Blocks Id System
  /dev/sda1 1 4 32098+ de Dell Utility
  /dev/sda2 * 5 2554 20482875 7 HPFS/NTFS
  /dev/sda3 2555 7904 42973875 83 Linux
  /dev/sda4 7905 8924 8193150 f Win95 Ext'd (LBA)
  /dev/sda5 7905 8924 8193118+ 82 Linux swap
  插入U盘后,再用fdisk –l 或 more /proc/partitions查看系统的硬盘和硬盘分区情况。
  [root at pldyrouter root]# fdisk -l
  Disk /dev/sda: 73 dot 4 GB, 73407820800 bytes
  255 heads, 63 sectors/track, 8924 cylinders
  Units = cylinders of 16065 * 512 = 8225280 bytes
  Device Boot Start End Blocks Id System
  /dev/sda1 1 4 32098+ de Dell Utility
  /dev/sda2 * 5 2554 20482875 7 HPFS/NTFS
  /dev/sda3 2555 7904 42973875 83 Linux
  /dev/sda4 7905 8924 8193150 f Win95 Ext'd (LBA)
  /dev/sda5 7905 8924 8193118+ 82 Linux swap
  Disk /dev/sdd: 131 MB, 131072000 bytes
  9 heads, 32 sectors/track, 888 cylinders
  Units = cylinders of 288 * 512 = 147456 bytes
  Device Boot Start End Blocks Id System
  /dev/sdd1 * 1 889 127983+ b Win95 FAT32
  Partition 1 has different physical/logical endings:
  phys=(1000, 8, 32) logical=(888, 7, 31)
  系统多了一个SCSI硬盘/dev/sdd和一个磁盘分区/dev/sdd1,/dev/sdd1就是我们要挂接的U盘。
  #mkdir -p /mnt/usb
  注:建立一个目录用来作挂接点(mount point)
  #mount -t vfat /dev/sdd1 /mnt/usb
  注:现在能够通过/mnt/usb来访问U盘了, 若汉字文档名显示为乱码或不显示,能够使用下面的命令。
  #mount -t vfat -o iocharset=cp936 /dev/sdd1 /mnt/usb
  挂接 Windows 文档共享
  Windows网络共享的核心是SMB/CIFS,在linux下要挂接(mount)windows的磁盘共享,就必须安装和使用samba软件包。现在流行的linux发行版绝大多数已包含了samba软件包,假如安装linux系统时未安装samba请首先安装samba。当然也能够到www.samba.org网站下载......新的版本是3.0.10版。
  当windows系统共享配置好以后,就能够在linux客户端挂接(mount)了,具体操作如下:
  # mkdir –p /mnt/samba
  注:建立一个目录用来作挂接点(mount point)
  # mount -t smbfs -o username=administrator,password=pldy123 //10.140.133.23/c$ /mnt/samba
  注:administrator 和 pldy123 是ip地址为10.140.133.23 windows电脑的一个用户名和密码,c$是这台电脑的一个磁盘共享
  如此就能够在linux系统上通过/mnt/samba来访问windows系统磁盘上的文档了。以上操作在redhat as server3、redflag server 4.1、suse server 9连同windows NT 4.0、windows 2000、windowsxp、windows 2003环境下测试通过。
  挂接 UNIX 系统 NFS 文档共享
  类似于windows的网络共享,UNIX(Linux)系统也有自己的网络共享,那就是NFS(网络文档系统),下面我们就以SUN Solaris2.8和REDHAT as server 3 为例简单介绍一下在linux下如何mount nfs网络共享。
  在linux客户端挂接(mount)NFS磁盘共享之前,必须先配置好NFS服务端。
  1、Solaris系统NFS服务端配置方法如下:
   (1)修改 /etc/dfs/dfstab, 增加共享目录
      share -F nfs -o rw /export/home/sunky
   (2)启动nfs服务
      # /etc/init.d/nfs.server start
   (3)NFS服务启动以后,也能够使用下面的命令增加新的共享
      # share /export/home/sunky1
      # share /export/home/sunky2
   注:/export/home/sunky和/export/home/sunky1是准备共享的目录
  2、linux系统NFS服务端配置方法如下:
   (1)修改 /etc/exports,增加共享目录
  /export/home/sunky 10.140.133.23(rw)
  /export/home/sunky1 *(rw)
  /export/home/sunky2 linux-client(rw)
   注:/export/home/目录下的sunky、sunky1、sunky2是准备共享的目录,10.140.133.23、*、linux-client是被允许挂接此共享linux客户机的IP地址或主机名。假如要使用主机名linux-client必须在服务端主机/etc/hosts文档里增加linux-client主机ip定义。格式如下:
   10.140.133.23 linux-client
   (2)启动和停止NFS服务
   /etc/rc.d/init.d/portmap start (在REDHAT中PORTMAP是默认启动的)
   /etc/rc.d/init.d/nfs start 启动NFS服务
   /etc/rc.d/init.d/nfs stop 停止NFS服务
   注:若修改/etc/export文档增加新的共享,应先停止NFS服务,再启动NFS服务方能使新增加的共享起作用。使用命令exportfs -rv也能够达到同样的效果。
  3、linux客户端挂接(mount)其他linux系统或UNIX系统的NFS共享
   # mkdir –p /mnt/nfs
   注:建立一个目录用来作挂接点(mount point)
   #mount -t nfs -o rw 10.140.133.9:/export/home/sunky /mnt/nfs
   注:这里我们假设10.140.133.9是NFS服务端的主机IP地址,当然这里也能够使用主机名,但必须在本机/etc/hosts文档里增加服务端ip定义。/export/home/sunky为服务端共享的目录。
  如此就能够在linux客户端通过/mnt/nfs来访问其他linux系统或UNIX系统以NFS方式共享出来的文档了。以上操作在redhat as server 3、redflag server4.1、suse server 9连同Solaris 7、Solaris8、Solaris 9 for x86&sparc环境下测试通过。
权限问题:
假設 server 端的使用者 jack, user id 為 1818, gid 為 1818, client 端也有一個使用者jack,但是 uid 及 gid 是 1818。client 端的 jack    希望能完全讀寫 server 端的 /home/jack這個目錄。server 端的 /etc/exports 是
   這樣寫的:
      /home/jack *(rw,all_squash,anonuid=1818,anongid=1818)
   這個的設定檔的意思是,任何 client 端的使用者存取 server 端 /home/jack 這
   目錄時,都會 map 成 server 端的 jack (uid,gid=1818)。我 mount 的結果是
   1. client 端的 root 能够完全存取該目錄, 包括讀、寫、殺……等
   2. client 端的 jack (uid,gid=1818) 我能够做:
    rm -rf server_jack/*
    cp something server_jack/
    mkdir server_jack/a

 
Linux添加/删除用户和用户组

本文总结了Linux添加或者删除用户和用户组时常用的一些命令和参数。
1、建用户:
adduser phpq                             //新建phpq用户
passwd phpq                               //给phpq用户设置密码

2、建工作组
groupadd test                          //新建test工作组

3、新建用户同时增加工作组
useradd -g test phpq                      //新建phpq用户并增加到test工作组

注::-g 所属组 -d 家目录 -s 所用的SHELL


4、给已有的用户增加工作组
usermod -G groupname username

或者:gpasswd -a user group

5、临时关闭:在/etc/shadow文件中属于该用户的行的第二个字段(密码)前面加上*就可以了。想恢复该用户,去掉*即可。

或者使用如下命令关闭用户账号:
passwd peter –l

重新释放:
passwd peter –u

6、永久性删除用户账号
userdel peter

groupdel peter

usermod –G peter peter   (强制删除该用户的主目录和主目录下的所有文件和子目录)

7、从组中删除用户
编辑/etc/group 找到GROUP1那一行,删除 A
或者用命令
gpasswd -d A GROUP

8、显示用户信息
id user
cat /etc/passwd

1、与用户(user)和用户组(group)相关的配置文件;
1)与用户(user)相关的配置文件;
/etc/passwd 注:用户(user)的配置文件;
/etc/shadow 注:用户(user)影子口令文件;

2)与用户组(group)相关的配置文件;
/etc/group 注:用户组(group)配置文件;
/etc/gshadow 注:用户组(group)的影子文件;

2、管理用户(user)和用户组(group)的相关工具或命令;

1)管理用户(user)的工具或命令;
useradd    注:添加用户
adduser    注:添加用户
passwd     注:为用户设置密码
usermod  注:修改用户命令,可以通过usermod 来修改登录名、用户的家目录等等;
pwcov       注:同步用户从/etc/passwd 到/etc/shadow
pwck         注:pwck是校验用户配置文件/etc/passwd 和/etc/shadow 文件内容是否合法或完整;
pwunconv  注:是pwcov 的立逆向操作,是从/etc/shadow和 /etc/passwd 创建/etc/passwd ,然后会删除 /etc/shadow 文件;
finger        注:查看用户信息工具
id              注:查看用户的UID、GID及所归属的用户组
chfn          注:更改用户信息工具
su             注:用户切换工具
sudo         注:sudo 是通过另一个用户来执行命令(execute a command as another user),su 是用来切换用户,然后通过切换到的用户来完成相应的任务,但sudo 能后面直接执行命令,比如sudo 不需要root 密码就可以执行root 赋与的执行只有root才能执行相应的命令;但得通过visudo 来编辑/etc/sudoers来实现;
visudo      注:visodo 是编辑 /etc/sudoers 的命令;也可以不用这个命令,直接用vi 来编辑 /etc/sudoers 的效果是一样的;
sudoedit  注:和sudo 功能差不多;


2)管理用户组(group)的工具或命令;
groupadd  注:添加用户组;
groupdel         注:删除用户组;
groupmod        注:修改用户组信息
groups     注:显示用户所属的用户组
grpck
grpconv   注:通过/etc/group和/etc/gshadow 的文件内容来同步或创建/etc/gshadow ,如果/etc/gshadow 不存在则创建;
grpunconv   注:通过/etc/group 和/etc/gshadow 文件内容来同步或创建/etc/group ,然后删除gshadow文件;

 

你可能感兴趣的:(linux常用命令日记)