选取指定行:
sed -n ’6p' file
awk ‘NR==6’ file
常见压缩格式与解压方法
文件后缀 | 解压命令 | 压缩命令 |
---|---|---|
.zip (需要zip) | unzip File.zip | zip File.zip DirName |
.rar (需要rar) | rar x File.rar | rar a File.rar |
.tar (打包,不是压缩) | tar xvf File.tar | tar cvf File.tar DirName |
.tar.gz, .tgz | tar zxvf File.tar.gz | tar zcvf File.tar.gz DirName |
.tar.bz2, .tar.bz | tar jxvf File.tar.bz2 | tar jcvf File.tar.bz2 Dir |
.tar.Z | tar Zxvf File.tar.Z | tar Zcvf File.tar.Z DirName |
.gz | gunzip File.gz | gzip File |
.Z | uncompress File.Z | compress File |
.bz2 (需要bzip2) | bunzip2 File.bz | bzip2 File |
suse 好像没有自带 类似dos 的tree 命令
永久加载分区
http://linux.chinaunix.net/techdoc/beginner/2009/03/10/1100861.shtml
/dev/hda5 /home ext3 defaults 1 2
/dev/hda3 swap swap defaults 0 0
说一下后2个:dump和fsck。
能否被 dump 备份指令作用:
在 Linux 当中,可以利用 dump 这个指令来进行系统的备份的。而 dump 指令则会针对 /etc/fstab的设定值,去选择是否要将该 partition 进行备份的动作呢! 0 代表不要做 dump 备份, 1 代表要进行 dump 的动作。 2也代表要做 dump 备份动作, 不过,该 partition 重要度比 1 小。
是否以 fsck 检验扇区:
开机的过程中,系统预设会以 fsck 检验我们的 partition 内的 filesystem 是否完整 (clean)。不过,某些 filesystem 是不需要检验的,例如虚拟内存 swap ,或者是特殊档案系统, 例如 /proc 与 /sys等等。所以,在这个字段中,我们可以设定是否要以 fsck 检验该 filesystem 喔。 0 是不要检验, 1 是要检验, 2也是要检验,不过 1 会比较早被检验啦! 一般来说,根目录设定为 1 ,其它的要检验的 filesystem 都设定为 2 就好了。
一般来说, 当我们编辑 /etc/fstab 后,为了避免可能的错误,通常就会以 mount -a 这个指令来测试看看呢!这是很重要的一个测试动作喔!
/etc/fstab 是开机时的设定档,不过,实际 filesystem 的挂载是记录到 /etc/mtab 与/proc/mounts 这两个档案当中的。每次我们在更动 filesystem 的挂载时,也会同时更动这两个档案喔!但是,万一发生您在/etc/fstab 输入的数据错误,导致无法顺利开机成功,而进入单人维护模式当中,那时候的 / 可是 read only的状态,当然您就无法修改 /etc/fstab ,也无法更新 /etc/mtab ,没关系,可以利用底下这一招:
[root@linux ~]# mount -n -o remount,rw /
加上 -n 则不更新 /etc/mtab ,加上 -o 则提供额外的参数设定。 利用这一动作,嘿嘿!您的 / 就可以读写,那么自然就能够更新档案内容了。
ssh无密码登陆Linux 服务器
linux客服端:
ssh-keygen -t rsa
将~/.ssh 中的id_rsa.pub 上传到 服务端的~/.ssh中去
cat id_rsa.pub >> authorized_keys
或者更方便的
ssh-copy-id username@remoteserver
windows 中
假设生成的公钥文件名称为my_desktop.pub,将文件上传到服务器~/.ssh目录后,使用下面的命令就可以完成密钥登录的配置:
ssh-keygen -i -f my_desktop.pub >> authorized_keys
上面命令的作用是把ssh2格式的公钥文件,转换为Openssh的格式,然后加入到authorized_keys
ps: 如果建的秘钥太多,可能会混乱,可是删除~./ssh 中的所有文件,重新生成,使用 ssh-copy-id 是能自动在服务端中 自动生成 authorized_key的
一些嵌入式linux中如 openwrt 使用的是小型的ssh变体:dropbear ,使用ssh-copy-id -i file.pub username@IP 生成的位置时 ~/.ssh中,只要将
authorized_key 复制到 /etc/dropbear下即可
把你的public key 扔到openwrt系统上,openwrt使用的是一个比较轻量的ssl服务,叫做dropbear,所以ssh key放置的目录也不太一样。你可以直接run这条命令:
cat ~/.ssh/id_rsa.pub | ssh root@192.168.1.1 "cat >> /etc/dropbear/authorized_keys”
vmware tool 路径问题
http://hi.baidu.com/984280150/item/0670ba98d31f22b383d295b3
the version.h does not exists at 3.8.0-29-generic/include/linux directory.
First, make sure install build-essiontial and linux-headers.
$ sudo apt-get install build-essential linux-headers-$(uname -r)
And then,
sudo -i
cd /lib/modules/3.8.0-29-generic/build/include
cp ./generated/uapi/linux/version.h linux/version.h
Linux当前路径省略./的方法:
修改~/.bashrc
添加
PS1='\W$'
PATH=$PATH:.
Segmentation Fault
本段来源于 Linux公社网站(www.linuxidc.com) 原文链接:http://www.linuxidc.com/Linux/2012-10/72782.htm
Linux对于每个用户,系统限制其最大进程数。为提高性能,可以根据设备资源情况,设置各linux 用户的最大进程数
可以用ulimit -a 来显示当前的各种用户进程限制。
下面我把某linux用户的最大进程数设为10000个:
ulimit -u 10240
对于需要做许多 socket 连接并使它们处于打开状态的 Java 应用程序而言,
最好通过使用 ulimit -n xx 修改每个进程可打开的文件数,缺省值是 1024。
ulimit -n 4096 将每个进程可以打开的文件数目加大到4096,缺省为1024
其他建议设置成无限制(unlimited)的一些重要设置是:
数据段长度:ulimit -d unlimited
最大内存大小:ulimit -m unlimited
堆栈大小:ulimit -s unlimited
CPU 时间:ulimit -t unlimited
虚拟内存:ulimit -v unlimited
暂时地,适用于通过 ulimit 命令登录 shell 会话期间。
永久地,通过将一个相应的 ulimit 语句添加到由登录 shell 读取的文件中, 即特定于 shell 的用户资源文件,如:
1)、解除 Linux 系统的最大进程数和最大文件打开数限制:
vi /etc/security/limits.conf
# 添加如下的行
* soft noproc 11000
* hard noproc 11000
* soft nofile 4100
* hard nofile 4100
说明:* 代表针对所有用户,noproc 是代表最大进程数,nofile 是代表最大文件打开数
2)、让 SSH 接受 Login 程式的登入,方便在 ssh 客户端查看 ulimit -a 资源限制:
a、vi /etc/ssh/sshd_config
把 UserLogin 的值改为 yes,并把 # 注释去掉
b、重启 sshd 服务:
/etc/init.d/sshd restart
3)、修改所有 linux 用户的环境变量文件:
vi /etc/profile
ulimit -u 10000
ulimit -n 4096
ulimit -d unlimited
ulimit -m unlimited
ulimit -s unlimited
ulimit -t unlimited
ulimit -v unlimited
保存后运行#source /etc/profile 使其生效
/**************************************
有时候在程序里面需要打开多个文件,进行分析,系统一般默认数量是1024,(用ulimit -a可以看到)对于正常使用是够了,但是对于程序来讲,就太少了。
修改2个文件。
1./etc/security/limits.conf
vi /etc/security/limits.conf
加上:
* soft nofile 8192
* hard nofile 20480
2./etc/pam.d/login
session required /lib/security/pam_limits.so
/**********
另外确保/etc/pam.d/system-auth文件有下面内容
session required /lib/security/$ISA/pam_limits.so
这一行确保系统会执行这个限制。
/***********
3.一般用户的.bash_profile
#ulimit -n 1024
重新登陆ok
ssh 远程执行命令
COMMAND="ssh -p n user@host 'ps aux'"
`eval $COMMAND` >>logfile;
要在远程服务器上执行较多的命令时,先将命令写着文本中如command
在脚本中
ssh -p n user@host "`cat command`"
要等待后台命令结束,可以使用 wait
http://blog.csdn.net/shangzhiliang_2008/article/details/8602756
- #!/bin/bash
- #变量定义
- ip_array=("192.168.1.1" "192.168.1.2" "192.168.1.3")
- user="test1"
- remote_cmd="/home/test/1.sh"
- #本地通过ssh执行远程服务器的脚本
- for ip in ${ip_array[*]}
- do
- if [ $ip = "192.168.1.1" ]; then
- port="7777"
- else
- port="22"
- fi
- ssh -t -p $port $user@$ip "remote_cmd"
- done
Linux添加环境变量与GCC编译器添加INCLUDE与LIB环境变量
http://www.cnblogs.com/image-eye/archive/2011/08/20/2147133.html
对所有用户有效在/etc/profile增加以下内容。只对当前用户有效在Home目录下的
.bashrc或.bash_profile里增加下面的内容:
(注意:等号前面不要加空格,否则可能出现 command not found)
#在PATH中找到可执行文件程序的路径。
export PATH =$PATH:$HOME/bin
#gcc找到头文件的路径
C_INCLUDE_PATH=/usr/include/libxml2:/MyLib
export C_INCLUDE_PATH
#g++找到头文件的路径
CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/include/libxml2:/MyLib
export CPLUS_INCLUDE_PATH
#找到动态链接库的路径
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/MyLib
export LD_LIBRARY_PATH
#找到静态库的路径
LIBRARY_PATH=$LIBRARY_PATH:/MyLib
export LIBRARY_PATH
库 文件在连接(静态库和共享 库)和运行(仅限于使用共享库的程序)时被使用,其搜索路径是在系统中进行设置的。一般 Linux 系统把 /lib 和 /usr/lib 两个目录作为默认的库搜索路径,所以使用这两个目录中的库时不需要进行设置搜索路径即可直接使用。对于处于默认库搜索路径之外的库,需要将库的位置添加到 库的搜索路径之中。设置库文件的搜索路径有下列两种方式,可任选其一使用:
在环境变量 LD_LIBRARY_PATH 中指明库的搜索路径。
在 /etc/ld.so.conf 文件中添加库的搜索路径。
将自己可能存放库文件的路径都加入到/etc/ld.so.conf中是明智的选择
添加方法也极其简单,将库文件的绝对路径直接写进去就OK了,一行一个。例如:
/usr/X11R6/lib
/usr/local/lib
/opt/lib
需 要注意的是:第二种搜索路径的设置方式对于程序连接时的库(包括共享库和静态库) 的定位已经足够了,但是对于使用了共享库的程序的执行还是不够的。这是因为为了加快程序执行时对共享库的定位速度,避免使用搜索路径查找共享库的低效率, 所以是直接读取库列表文件 /etc/ld.so.cache 从中进行搜索的。/etc/ld.so.cache 是一个非文本的数据文件,不能直接编辑,它是根据 /etc/ld.so.conf 中设置的搜索路径由 /sbin/ldconfig 命令将这些搜索路径下的共享库文件集中在一起而生成的(ldconfig 命令要以 root 权限执行)。因此,为了保证程序执行时对库的定位,在 /etc/ld.so.conf 中进行了库搜索路径的设置之后,还必须要运行 /sbin/ldconfig 命令更新 /etc/ld.so.cache 文件之后才可以。ldconfig ,简单的说,它的作用就是将/etc/ld.so.conf列出的路径下的库文件缓存到/etc/ld.so.cache 以供使用。因此当安装完一些库文件,(例如刚安装好glib),或者修改ld.so.conf增加新的库路径后,需要运行一下 /sbin/ldconfig使所有的库文件都被缓存到ld.so.cache中,如果没做,即使库文件明明就在/usr/lib下的,也是不会被使用 的,结果编译过程中抱错,缺少xxx库,去查看发现明明就在那放着,搞的想大骂computer蠢猪一个。
在程序连接时,对于库文件(静态库和共享库)的搜索路径,除了上面的设置方式之外,还可以通过 -L 参数显式指定。因为用 -L 设置的路径将被优先搜索,所以在连接的时候通常都会以这种方式直接指定要连接的库的路径。
前 面已经说明过了,库搜索路径的设置有两种方式:在环境变量 LD_LIBRARY_PATH 中设置以及在 /etc/ld.so.conf 文件中设置。其中,第二种设置方式需要 root 权限,以改变 /etc/ld.so.conf 文件并执行 /sbin/ldconfig 命令。而且,当系统重新启动后,所有的基于 GTK2 的程序在运行时都将使用新安装的 GTK+ 库。不幸的是,由于 GTK+ 版本的改变,这有时会给应用程序带来兼容性的问题,造成某些程序运行不正常。为了避免出现上面的这些情况,在 GTK+ 及其依赖库的安装过程中对于库的搜索路径的设置将采用第一种方式进行。这种设置方式不需要 root 权限,设置也简单:
$ export LD_LIBRARY_PATH=/opt/gtk/lib:$LD_LIBRARY_PATH
可以用下面的命令查看 LD_LIBRAY_PATH 的设置内容:
$ echo $LD_LIBRARY_PATH
至此,库的两种设置就完成了。
pbs 服务启动
1) 在主节点上打开PBS服务
/etc/init.d/pbs_server start
2) 在主节点和其他节点打开PBS客户端。主节点虽是服务端,但也可参加计算,因而要打开客服。依次执行如下:
/etc/init.d/pbs_mom start
3) 在所有节点上打开调度器
/etc/init.d/maui.d start