Linux中如何让进程在后台运行
在Linux中,如果要让进程在后台运行,一般情况下,我们在命令后面加上&即可,实际上,这样是将命令放入到一个作业队列中了:
$ ./test.sh & [1] 17208 $ jobs -l [1]+ 17208 Running ./test.sh &
对于已经在前台执行的命令,也可以重新放到后台执行,首先按ctrl+z暂停已经运行的进程,然后使用bg命令将停止的作业放到后台运行:
$ ./test.sh [1]+ Stopped ./test.sh $ bg %1 [1]+ ./test.sh & $ jobs -l [1]+ 22794 Running ./test.sh &
卸载rpm包遭遇error: specifies multiple packages
准备在Redhat Linux系统上安装MySQL5.1,先卸载自带的低版本MySQL,结果不知怎么搞的,同一个package出现了两次,版本也都是一样的:
mysqlclient10-3.23.58-4.RHEL4.1
mysql-4.1.20-2.RHEL4.1
mysql-4.1.20-2.RHEL4.1
mysqlclient10-3.23.58-4.RHEL4.1
尝试卸载:
error: "mysqlclient10-3.23.58-4.RHEL4.1" specifies multiple packages
通过man rpm,发现–allmatches应该可以解决这个问题:
–allmatches
Remove all versions of the package which match PACKAGE_NAME. Normally an error is issued if PACKAGE_NAME matches
multiple packages.
rpm -e --allmatches mysql-4.1.20-2.RHEL4.1
warning: /etc/my.cnf saved as /etc/my.cnf.rpmsave
ok,系统自带的旧版本MySQL卸载完成。
Linux中如何将文件dump成16进制值
在linux中有多种方式可以将文件dump成16进制显示,也可以将16进制值再反向成文件。
0000000 524f 2d41 3030 3036 0a30 524f 2d41 3030
0000010 3630 0a30
0000014
$ od -x test.txt
0000000 524f 2d41 3030 3036 0a30 524f 2d41 3030
0000020 3630 0a30
0000024
$ xxd test.txt
0000000: 4f52 412d 3030 3630 300a 4f52 412d 3030 ORA-00600.ORA-00
0000010: 3036 300a 060.
注意到hexdump和od出来的结果都是按实际存储的字节序,因为基于x86的linux是little-endian的,也就是高低字节是颠倒了的。但是xxd的结果是将字节序调整过了的。而IBM的Power CPU是big-endian的,所以在AIX上od的结果如下:
0000000 4f52 412d 3030 3630 300a 4f52 412d 3030
0000020 3036 300a
0000024
xxd还可以实现从16进制反向生成文件,只需要加上-r选现即可。
ORA-00600
ORA-00060
$ echo 0000000: 4f52 412d 3030 3630 300a 4f52 412d 3030 | xxd -r
ORA-00600
ORA-00
但是要注意xxd接受的是big-endian格式的16进制值,如果输入的是little-endian的,则生成的文件字符(包括换行符)是两两颠倒的。
RO-A0006
0RO-A0060
0
在vi编辑器中可以使用:%!xxd 调用xxd来将文件转换成16机制编辑模式,编辑完成后再调用:%!xxd -r转换文件模式,从而使得vi具有16进制编辑的功能,:%!其实就是调用外部shell命令,需要注意的是xxd的字节序是big-endian的,不要搞错了。
如果你的Linux系统中找不到xxd命令,那么检查下是否有安装vim-common包
vim-enhanced-6.3.046-0.40E.7
vim-X11-6.3.046-0.40E.7
vim-minimal-6.3.046-0.40E.7
vim-common-6.3.046-0.40E.7
Redhat Linux如何设置用户默认属性
和Oracle的profile类似,在Redhat Linux新建一个用户或组,有很多默认继承的属性,比如密码过期时间,密码最短长度,UID/GID的范围等。这些属性是通过文件/etc/login.defs获得的,所以可以通过修改该文件改变后续所有新建用户的默认设置。
一些主要的属性包括:
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_MIN_LEN 5
PASS_WARN_AGE 7
UID_MIN 500
UID_MAX 60000
GID_MIN 500
GID_MAX 60000
CREATE_HOME yes
更多的设置及其详细说明,参考man login.defs。