Browse > Home / Archive by category 'Linux'

| 订阅RSS

[命令集3.8]通过Samba和Windows进行数据共享

四月 2nd, 2009 | No Comments | Posted in Linux

现在windows大行天下,难免要和windows的机器进行共享数据,通过linux中的samba协议能够获得windows的共享数据。
假设我们要访问计算机 smbserver 上的名叫 myshare 的 SMB 共享,在 window PC 上键入的地址是
\\smbserver\myshare\。我挂载到 /mnt/smbshare 上。注意 cifs 必须是 IP 或 DNS 名,不是 Windows 名
字。

More »

Tags: , , , ,

[命令集3.7] 立刻创建swap分区

三月 24th, 2009 | No Comments | Posted in Linux

假设你需要很多的 swap 空间 (即刻),如一个 2GB 文件 /swap2gb (只限 Linux)。

# dd if=/dev/zero of=/swap2gb bs=1024k count=2000
# mkswap /swap2gb                    # 创建交换区
# swapon /swap2gb                    # 激活这个 swap。现在可以使用了
# swapoff /swap2gb                   # 当使用完毕,释放这个 swap
# rm /swap2gb
Tags: , ,

[Linux秘籍31] PS3 - 在shell脚本中的提示符

三月 24th, 2009 | No Comments | Posted in Linux

在shell脚本中,你能够定义一个自定义的提示符,举个例子如下:
当没有定义PS3的时候

jcai@jcai-notebook:~/tmp$ cat ps3.sh 
  select i in mon tue wed exit
  do
     case $i in
        mon) echo "Monday";;
        tue) echo "Tuesday";;
        wed) echo "Wednesday";;
        exit) exit;;
     esac
  done
jcai@jcai-notebook:~/tmp$ ./ps3.sh 
1) mon
2) tue
3) wed
4) exit
#? 1
Monday
#? 2
Tuesday
#? 4

当定义了PS3的时候如下:

jcai@jcai-notebook:~/tmp$ cat ps3.sh
  PS3="请选择 1-4:"
  select i in mon tue wed exit
  do
     case $i in
        mon) echo "Monday";;
        tue) echo "Tuesday";;
        wed) echo "Wednesday";;
        exit) exit;;
     esac
  done
jcai@jcai-notebook:~/tmp$ ./ps3.sh 
1) mon
2) tue
3) wed
4) exit
请选择 1-42
Tuesday
请选择 1-44
Tags: ,

[命令集3.6]挂载/重挂载一个文件系统

三月 23rd, 2009 | No Comments | Posted in Hacks, Linux

举个 cdrom 的例子。如果已经列于 /etc/fstab 中:

 # mount /cdrom

或在 /dev/ 中查找设备,亦或使用 dmesg 命令
FreeBSD

 # mount -v -t cd9660 /dev/cd0c /mnt # cdrom
 # mount_cd9660 /dev/wcd0c /cdrom      # 另外一个方法
 # mount -v -t msdos /dev/fd0c /mnt # 软驱

/etc/fstab 中的一条:

 # Device                 Mountpoint      FStype  Options         Dump    Pass#
 /dev/acd0                /cdrom          cd9660  ro,noauto       0       0

要允许用户做这些,可以这么做:

 # sysctl vfs.usermount=1   # 或者在 /etc/sysctl.conf 中插入一条 "vfs.usermount=1"

Linux

 # mount -t auto /dev/cdrom /mnt/cdrom # 典型的 cdrom 挂载命令
 # mount /dev/hdc -t iso9660 -r /cdrom # IDE
 # mount /dev/sdc0 -t iso9660 -r /cdrom # SCSI

/etc/fstab 中的条目:
/dev/cdrom /media/cdrom subfs noauto,fs=cdfss,ro,procuid,nosuid,nodev,exec 0 0
用 Linux 挂载一个 FreeBSD 分区
用 fdisk 查找分区号,这通常是 root 分区,但也可能是其他 BSD slice。如果 FreeBSD 有许多 slice,他们
不列于同一个 fdisk 分区表中,但可见于 /dev/sda* 或 /dev/hda* 中。

 # fdisk /dev/sda                      # 查找 FreeBSD 分区
 /dev/sda3 *          5357         7905    20474842+ a5 FreeBSD
 # mount -t ufs -o ufstype=ufs2,ro /dev/sda3 /mnt
 /dev/sda10 = /tmp; /dev/sda11 /usr # 其他 slice

重挂载
不用卸载一个设备来重挂载。 对 fsck 来说是必须的。举个例子:

 # mount -o remount,ro /               # Linux
 # mount -o ro /                       # FreeBSD

从 cdrom 拷贝原始数据进一个 iso 映像文件:

# dd if=/dev/cd0c of=file.iso
Tags: , ,

[linux秘笈30]. PS2 - 持续交互的提示符

三月 23rd, 2009 | No Comments | Posted in Linux

A very long command can be broken down to multiple lines by giving \ at the
end of the line. The default interactive prompt for a multi-line command is
“> “. Let us change this default behavior to display “continue->” by using PS2
environment variable as shown below.
ramesh@dev-db ~> myisamchk –silent –force –fast –
update-state \
> –key_buffer_size=512M –sort_buffer_size=512M \
> –read_buffer_size=4M –write_buffer_size=4M \
> /var/lib/mysql/bugs/*.MYI
[Note: This uses the default ">" for continuation
prompt]
ramesh@dev-db ~> export PS2=”continue-> ”
ramesh@dev-db ~> myisamchk –silent –force –fast –
update-state \
continue-> –key_buffer_size=512M –
sort_buffer_size=512M \
continue-> –read_buffer_size=4M –write_buffer_size=4M
\
continue-> /var/lib/mysql/bugs/*.MYI
[Note: This uses the modified "continue-> " for continuation prompt]
I found it very helpful and easy to read, when I break my long commands into
multiple lines using \. I have also seen others who don’t like to break-up long
commands.

Tags: , , ,

[命令集3.4]系统挂载点/磁盘使用情况

三月 21st, 2009 | No Comments | Posted in Linux
# mount | column -t        # 显示系统已挂载分区情况
# df                       # 显示磁盘剩余空间和挂载的设备
# cat /proc/partitions     # 显示所有设备的所有分区(Linux)
Tags: , ,

[Linux秘笈28].显示用户连接时间

三月 21st, 2009 | No Comments | Posted in Linux

Ac command will display the statistics about the user’s connect time.
Connect time for the current logged in user
With the option –d, it will break down the output for the individual days. In
this example, I’ve been logged in to the system for more than 6 hours today.
On Dec 1st, I was logged in for about 1 hour.

   $ ac –d
   Dec 1      total             1.08
   Dec 2      total             0.99
   Dec 3      total             3.39
   Dec 4      total             4.50
   Today      total             6.10

Connect time for all the users
To display connect time for all the users use –p as shown below. Please note
that this indicates the cumulative connect time for the individual users.

   $ ac -p
              john                                            3.64
              madison                                      0.06
              sanjay                                          88.17
              nisha                                           105.92
             ramesh                                        111.42
             total 309.21

Connect time for a specific user
To get a connect time report for a specific user, execute the following:

  $ ac -d sanjay
  Jul 2      total          12.85
  Aug 25     total            5.05
  Sep 3      total            1.03
  Sep 4      total            5.37
  Dec 24     total            8.15
  Dec 29     total            1.42
  Today      total            2.95
Tags: , ,

[命令集3.3]FreeBSD下的启动引导

三月 20th, 2009 | No Comments | Posted in Linux

如果新内核不能引导,要引导一个旧内核,停止启动倒计时,做如下动作:

 # unload
 # load kernel.old
 # boot
Tags: , , ,

[linux秘笈27]Diff命令

三月 20th, 2009 | No Comments | Posted in Linux

diff命令,通常用来比较两个文件的差别,命令的输出比较隐晦,不能直接阅读。使用方法

   Syntax: diff [options] file1 file2

具体的使用方法

jcai@jcai-notebook:~$ diff --help
Usage: diff [OPTION]... FILES
Compare files line by line.
 
  -i  --ignore-case  Ignore case differences in file contents.
  --ignore-file-name-case  Ignore case when comparing file names.
  --no-ignore-file-name-case  Consider case when comparing file names.
  -E  --ignore-tab-expansion  Ignore changes due to tab expansion.
  -b  --ignore-space-change  Ignore changes in the amount of white space.
  -w  --ignore-all-space  Ignore all white space.
  -B  --ignore-blank-lines  Ignore changes whose lines are all blank.
  -I RE  --ignore-matching-lines=RE  Ignore changes whose lines all match RE.
  --strip-trailing-cr  Strip trailing carriage return on input.
  -a  --text  Treat all files as text.
 
  -c  -C NUM  --context[=NUM]  Output NUM (default 3) lines of copied context.
  -u  -U NUM  --unified[=NUM]  Output NUM (default 3) lines of unified context.
    --label LABEL  Use LABEL instead of file name.
    -p  --show-c-function  Show which C function each change is in.
    -F RE  --show-function-line=RE  Show the most recent line matching RE.
  -q  --brief  Output only whether files differ.
  -e  --ed  Output an ed script.
  --normal  Output a normal diff.
  -n  --rcs  Output an RCS format diff.
  -y  --side-by-side  Output in two columns.
    -W NUM  --width=NUM  Output at most NUM (default 130) print columns.
    --left-column  Output only the left column of common lines.
    --suppress-common-lines  Do not output common lines.
  -D NAME  --ifdef=NAME  Output merged file to show `#ifdef NAME' diffs.
  --GTYPE-group-format=GFMT  Similar, but format GTYPE input groups with GFMT.
  --line-format=LFMT  Similar, but format all input lines with LFMT.
  --LTYPE-line-format=LFMT  Similar, but format LTYPE input lines with LFMT.
    LTYPE is `old', `new', or `unchanged'.  GTYPE is LTYPE or `changed'.
    GFMT may contain:
      %<  lines from FILE1
      %>  lines from FILE2
      %=  lines common to FILE1 and FILE2
      %[-][WIDTH][.[PREC]]{doxX}LETTER  printf-style spec for LETTER
        LETTERs are as follows for new group, lower case for old group:
          F  first line number
          L  last line number
          N  number of lines = L-F+1
          E  F-1
          M  L+1
    LFMT may contain:
      %L  contents of line
      %l  contents of line, excluding any trailing newline
      %[-][WIDTH][.[PREC]]{doxX}n  printf-style spec for input line number
    Either GFMT or LFMT may contain:
      %%  %
      %c'C'  the single character C
      %c'\OOO'  the character with octal code OOO
 
  -l  --paginate  Pass the output through `pr' to paginate it.
  -t  --expand-tabs  Expand tabs to spaces in output.
  -T  --initial-tab  Make tabs line up by prepending a tab.
 
  -r  --recursive  Recursively compare any subdirectories found.
  -N  --new-file  Treat absent files as empty.
  --unidirectional-new-file  Treat absent first files as empty.
  -s  --report-identical-files  Report when two files are the same.
  -x PAT  --exclude=PAT  Exclude files that match PAT.
  -X FILE  --exclude-from=FILE  Exclude files that match any pattern in FILE.
  -S FILE  --starting-file=FILE  Start with FILE when comparing directories.
  --from-file=FILE1  Compare FILE1 to all operands.  FILE1 can be a directory.
  --to-file=FILE2  Compare all operands to FILE2.  FILE2 can be a directory.
 
  --horizon-lines=NUM  Keep NUM lines of the common prefix and suffix.
  -d  --minimal  Try hard to find a smaller set of changes.
  --speed-large-files  Assume large files and many scattered small changes.
 
  -v  --version  Output version info.
  --help  Output this help.
 
FILES are `FILE1 FILE2' or `DIR1 DIR2' or `DIR FILE...' or `FILE... DIR'.
If --from-file or --to-file is given, there are no restrictions on FILES.
If a FILE is `-', read standard input.

当用我的新文件去和老文件比较那些发生了修改?
当执行比较的时候,在diff命令中使用选项 -w 能够忽略掉空格,
查看diff输出时候的注意是:

  1. ‘—’ 线上面的是第一个文件发生的变化
  2. ‘—’线向下的第二个文件发生的变化
  3. < 符号表示的内容,属于第一个文件,>符号表示的内容属于第二个文件
jcai@jcai-notebook:~/tmp$ cat test.txt
我们
你们现在还好吗?比较文本
jcai@jcai-notebook:~/tmp$ cat test2.txt
他们
我们
你们现在还好吗?
jcai@jcai-notebook:~/tmp$ diff test.txt test2.txt
0a1
> 他们
2c3
< 你们现在还好吗?比较文本
---
> 你们现在还好吗?
Tags: , , ,

[命令集3.2]Linux下和磁盘相关的命令

三月 19th, 2009 | No Comments | Posted in Linux
# diskinfo -v /dev/ad2 # 显示磁盘信息(扇区/大小) (FreeBSD)
# hdparm -I /dev/sda   # 显示 IDE/ATA 磁盘信息 (Linux)
# fdisk /dev/ad2       # 显示和修改磁盘分区表
# smartctl -a /dev/ad2 # 显示磁盘检测信息
Tags: , ,