xinit命令是Linux下X-Window系统的初始化程序,主要完成X服务器的初始化设置。
语法
xinit(参数)
参数
- 客户端选项:客户端指令及选项;
- –:用于区分客户端选项和服务器端选项;
- 服务器端选项:服务器端选项指令及选项。
xinit命令是Linux下X-Window系统的初始化程序,主要完成X服务器的初始化设置。
xinit(参数)
e2image命令将处于危险状态的“ext2”或者“ext3”文件系统保存到文件中。
e2image(选项)(参数)
-l:将文件中的“ext2/ext3”文件系统元数据还原到分区上。
resize2fs命令被用来增大或者收缩未加载的“ext2/ext3”文件系统的大小。如果文件系统是处于mount状态下,那么它只能做到扩容,前提条件是内核支持在线resize。,linux kernel 2.6支持在mount状态下扩容但仅限于ext3文件系统。
resize2fs(选项)(参数)
-d:打开调试特性; -p:打印已完成的百分比进度条; -f:强制执行调整大小操作,覆盖掉安全检查操作; -F:开始执行调整大小前,刷新文件系统设备的缓冲区。
LV分区重设大小
resize2fs /dev/vbirdvg/vbirdlv resize2fs 1.39 (29-May-2006) Filesystem at /dev/vbirdvg/vbirdlv is mounted on /mnt/lvm; on-line resizing Performing an on-line resize of /dev/vbirdvg/vbirdlv to 2191360 (4k) blocks. The filesystem on /dev/vbirdvg/vbirdlv is now 2191360 blocks long.
nice命令用于以指定的进程调度优先级启动其他的程序。
nice(选项)(参数)
-n:指定进程的优先级(整数)。
指令及选项:需要运行的指令及其他选项。
新建一个进程并设置优先级,将当前目录下的documents目录打包,但不希望tar占用太多CPU:
nice -19 tar zcf pack.tar.gz documents
方法非常简单,即在原命令前加上nice -19
。很多人可能有疑问了,最低优先级不是19么?那是因为这个“-19”中的“-”仅表示参数前缀;所以,如果希望将当前目录下的documents目录打包,并且赋予tar进程最高的优先级:
nice --19 tar zcf pack.tar.gz documents
pmap命令用于报告进程的内存映射关系,是Linux调试及运维一个很好的工具。
pmap(选项)(参数)
-x:显示扩展格式; -d:显示设备格式; -q:不显示头尾行; -V:显示指定版本。
进程号:指定需要显示内存映射关系的进程号,可以是多个进程号。
pidof nginx 13312 5371 pmap -x 5371 5371: nginx: worker process Address Kbytes RSS Dirty Mode Mapping 0000000000400000 564 344 0 r-x-- nginx 000000000068c000 68 68 60 rw--- nginx 000000000069d000 56 12 12 rw--- [ anon ] 000000000a0c8000 1812 1684 1684 rw--- [ anon ] 0000003ac0a00000 112 40 0 r-x-- ld-2.5.so 0000003ac0c1c000 4 4 4 r---- ld-2.5.so 0000003ac0c1d000 4 4 4 rw--- ld-2.5.so 0000003ac0e00000 1340 284 0 r-x-- libc-2.5.so 0000003ac0f4f000 2044 0 0 ----- libc-2.5.so 0000003ac114e000 16 16 8 r---- libc-2.5.so 0000003ac1152000 4 4 4 rw--- libc-2.5.so 0000003ac1153000 20 20 20 rw--- [ anon ] 0000003ac1200000 8 4 0 r-x-- libdl-2.5.so 0000003ac1202000 2048 0 0 ----- libdl-2.5.so 0000003ac1402000 4 4 4 r---- libdl-2.5.so 0000003ac1403000 4 4 4 rw--- libdl-2.5.so 0000003ac1600000 84 0 0 r-x-- libselinux.so.1 0000003ac1615000 2048 0 0 ----- libselinux.so.1 0000003ac1815000 8 8 8 rw--- libselinux.so.1 0000003ac1817000 4 4 4 rw--- [ anon ] 0000003ac1a00000 236 0 0 r-x-- libsepol.so.1 0000003ac1a3b000 2048 0 0 ----- libsepol.so.1 0000003ac1c3b000 4 4 4 rw--- libsepol.so.1 0000003ac1c3c000 40 0 0 rw--- [ anon ] 0000003ac1e00000 88 44 0 r-x-- libpthread-2.5.so 0000003ac1e16000 2048 0 0 ----- libpthread-2.5.so 0000003ac2016000 4 4 4 r---- libpthread-2.5.so 0000003ac2017000 4 4 4 rw--- libpthread-2.5.so 0000003ac2018000 16 4 4 rw--- [ anon ] 0000003ac2600000 80 52 0 r-x-- libz.so.1.2.3 0000003ac2614000 2044 0 0 ----- libz.so.1.2.3 0000003ac2813000 4 4 4 rw--- libz.so.1.2.3 0000003ac2a00000 36 4 0 r-x-- libcrypt-2.5.so 0000003ac2a09000 2044 0 0 ----- libcrypt-2.5.so 0000003ac2c08000 4 4 4 r---- libcrypt-2.5.so 0000003ac2c09000 4 4 4 rw--- libcrypt-2.5.so 0000003ac2c0a000 184 0 0 rw--- [ anon ] 0000003ac3600000 8 0 0 r-x-- libkeyutils-1.2.so 0000003ac3602000 2044 0 0 ----- libkeyutils-1.2.so 0000003ac3801000 4 4 4 rw--- libkeyutils-1.2.so 0000003ac3a00000 68 0 0 r-x-- libresolv-2.5.so 0000003ac3a11000 2048 0 0 ----- libresolv-2.5.so 0000003ac3c11000 4 4 4 r---- libresolv-2.5.so 0000003ac3c12000 4 4 4 rw--- libresolv-2.5.so 0000003ac3c13000 8 0 0 rw--- [ anon ] 0000003ac3e00000 8 0 0 r-x-- libcom_err.so.2.1 0000003ac3e02000 2044 0 0 ----- libcom_err.so.2.1 0000003ac4001000 4 4 4 rw--- libcom_err.so.2.1 0000003ac4200000 1204 8 0 r-x-- libcrypto.so.0.9.8e 0000003ac432d000 2044 0 0 ----- libcrypto.so.0.9.8e 0000003ac452c000 132 88 12 rw--- libcrypto.so.0.9.8e 0000003ac454d000 16 12 12 rw--- [ anon ] 0000003ac4600000 176 0 0 r-x-- libgssapi_krb5.so.2.2 0000003ac462c000 2048 0 0 ----- libgssapi_krb5.so.2.2 0000003ac482c000 8 8 8 rw--- libgssapi_krb5.so.2.2 0000003ac4a00000 144 0 0 r-x-- libk5crypto.so.3.1 0000003ac4a24000 2044 0 0 ----- libk5crypto.so.3.1 0000003ac4c23000 8 8 8 rw--- libk5crypto.so.3.1 0000003ac4e00000 32 0 0 r-x-- libkrb5support.so.0.1 0000003ac4e08000 2044 0 0 ----- libkrb5support.so.0.1 0000003ac5007000 4 4 4 rw--- libkrb5support.so.0.1 0000003ac5200000 580 0 0 r-x-- libkrb5.so.3.3 0000003ac5291000 2048 0 0 ----- libkrb5.so.3.3 0000003ac5491000 16 16 12 rw--- libkrb5.so.3.3 0000003ac5a00000 288 4 0 r-x-- libssl.so.0.9.8e 0000003ac5a48000 2048 0 0 ----- libssl.so.0.9.8e 0000003ac5c48000 24 16 12 rw--- libssl.so.0.9.8e 00002b5751808000 8 8 8 rw--- [ anon ] 00002b5751810000 108 36 0 r-x-- libpcre.so.1.2.0 00002b575182b000 2044 0 0 ----- libpcre.so.1.2.0 00002b5751a2a000 4 4 4 rw--- libpcre.so.1.2.0 00002b5751a2b000 28 28 28 rw--- [ anon ] 00002b5751a32000 40 20 0 r-x-- libnss_files-2.5.so 00002b5751a3c000 2044 0 0 ----- libnss_files-2.5.so 00002b5751c3b000 4 4 4 r---- libnss_files-2.5.so 00002b5751c3c000 4 4 4 rw--- libnss_files-2.5.so 00002b5751c3d000 4 4 4 rw-s- zero (deleted) 00002b5751c3e000 20012 20000 20000 rw--- [ anon ] 00007fffbf2ce000 84 20 20 rw--- [ stack ] 00007fffbf35e000 12 0 0 r-x-- [ anon ] ffffffffff600000 8192 0 0 ----- [ anon ] ---------------- ------ ------ ------ total kB 72880 22940 22000
last命令用于显示用户最近登录信息。单独执行last命令,它会读取/var/log/wtmp
的文件,并把该给文件的内容记录的登入系统的用户名单全部显示出来。
last(选项)(参数)
-a:把从何处登入系统的主机名称或ip地址,显示在最后一行;
-d:将IP地址转换成主机名称;
-f <记录文件>:指定记录文件。
-n <显示列数>或-<显示列数>:设置列出名单的显示列数;
-R:不显示登入系统的主机名称或IP地址;
-x:显示系统关机,重新开机,以及执行等级的改变等信息。
last命令用了显示用户登录情况,以下是直接显示固定行数的记录:
last -10
root pts/0 221.6.45.34 Tue Dec 17 09:40 still logged in
root pts/0 221.6.45.34 Mon Dec 16 09:00 - 11:57 (02:56)
root pts/0 222.94.97.122 Sun Dec 15 20:39 - 23:28 (02:48)
root pts/0 222.95.209.80 Sat Dec 14 14:39 - 14:58 (00:18)
root pts/0 221.6.45.34 Thu Dec 12 16:55 - 17:37 (00:41)
root pts/0 49.65.139.195 Wed Dec 11 20:40 - 21:16 (00:35)
root pts/0 49.65.139.195 Wed Dec 11 19:46 - 20:03 (00:17)
root pts/0 221.6.45.34 Tue Dec 10 14:41 - 15:52 (01:10)
root pts/0 221.6.45.34 Mon Dec 9 17:24 - 17:30 (00:06)
root pts/0 221.6.45.34 Mon Dec 9 09:38 - 11:41 (02:02)
logsave命令运行给定的命令,并将命令的输出信息保存到指定的日志文件中。
logsave(选项)(参数)
-a:追加信息到指定的日志文件中。
chroot命令用来在指定的根目录下运行指令。chroot,即 change root directory (更改 root 目录)。在 linux 系统中,系统默认的目录结构都是以/
,即是以根 (root) 开始的。而在使用 chroot 之后,系统的目录结构将以指定的位置作为/
位置。
在经过 chroot 命令之后,系统读取到的目录和文件将不在是旧系统根下的而是新根下(即被指定的新的位置)的目录结构和文件,因此它带来的好处大致有以下3个:
增加了系统的安全性,限制了用户的权力:
在经过 chroot 之后,在新根下将访问不到旧系统的根目录结构和文件,这样就增强了系统的安全性。这个一般是在登录 (login) 前使用 chroot,以此达到用户不能访问一些特定的文件。
建立一个与原系统隔离的系统目录结构,方便用户的开发:
使用 chroot 后,系统读取的是新根下的目录和文件,这是一个与原系统根下文件不相关的目录结构。在这个新的环境中,可以用来测试软件的静态编译以及一些与系统不相关的独立开发。
切换系统的根目录位置,引导 Linux 系统启动以及急救系统等:
chroot 的作用就是切换系统的根位置,而这个作用最为明显的是在系统初始引导磁盘的处理过程中使用,从初始 RAM 磁盘 (initrd) 切换系统的根位置并执行真正的 init。另外,当系统出现一些问题时,我们也可以使用 chroot 来切换到一个临时的系统。
chroot(选项)(参数)
--help:在线帮助;
--version:显示版本信息。
将target作为根目录(运行其中的/bin/sh
):
chroot target /bin/sh
这里,target是busybox安装好的路径,类似一个文件系统包含了许多工具。这样,将会进入一个shell界面,这个shell以target为根。运行exit退出该shell又返回原来的本机环境了,也可以使用Ctrl+D。
注意:
将target作为根目录(运行其中的/bin/ls
):
chroot target /bin/ls
这里,target是busybox安装好的路径,类似一个文件系统包含了许多工具。这样运行的是target中的ls(不是本机的/bin/ls
),然后返回立即本机的目录环境。
注意,自己在本地编译一个程序生成a.out之后,拷进target/bin/
中这样运行却不行,因为它包含了动态连接的库,需要用ldd查看a.out需要那些动态库,将这些库拷贝到新根的对应路径下才能执行。
用chroot运行自己编译的一个程序:
准备chroot的根目录:
mkdir newRoot
编译自己的程序:
gcc main.c
这里main.c生成a.out,功能是输出hello。
查看程序需要的库:
ldd a.out
输入之后,输出如下:
linux-gate.so.1 = > (0xb8034000)
libc.so.6 = > /lib/tls/i686/cmov/libc.so.6 (0xb7eab000)
/lib/ld-linux.so.2 (0xb801a000)
将程序需要的库和程序拷贝到新根目录下:
cp a.out newRoot
mkdir newRoot/lib
cp /lib/tls/i686/cmov/libc.so.6 newRoot/lib
cp /lib/ld-linux.so.2 newRoot/lib
这里newRoot内容将如下:
a.out lib/
使用chroot运行自己的程序:
su
chroot newRoot /a.out
这样就能够正确运行a.out了,因为a.out使用到了其他的动态连接库,所以需要将库拷贝到newRoot中,如果没有其他库那么直接拷贝a.out就能运行。例如静态编译后的busybox,其安装目录中的/bin/busybox
就没有依赖其他库。
ipcs命令用于报告Linux中进程间通信设施的状态,显示的信息包括消息列表、共享内存和信号量的信息。
ipcs(选项)
-a:显示全部可显示的信息; -q:显示活动的消息队列信息; -m:显示活动的共享内存信息; -s:显示活动的信号量信息。
ipcs -a
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x7401833d 2654208 root 600 4 0
0x00000000 3145729 root 600 4194304 9 dest
0x7401833c 2621442 root 600 4 0
0xd201012b 3080195 root 600 1720 2
logrotate命令用于对系统日志进行轮转、压缩和删除,也可以将日志发送到指定邮箱。使用logrotate指令,可让你轻松管理系统所产生的记录文件。每个记录文件都可被设置成每日,每周或每月处理,也能在文件太大时立即处理。您必须自行编辑,指定配置文件,预设的配置文件存放在/etc/logrotate.conf
文件中。
logrotate(选项)(参数)
-?或--help:在线帮助;
-d或--debug:详细显示指令执行过程,便于排错或了解程序执行的情况;
-f或--force :强行启动记录文件维护操作,纵使logrotate指令认为没有需要亦然;
-s<状态文件>或--state=<状态文件>:使用指定的状态文件;
-v或--version:显示指令执行过程;
-usage:显示指令基本用法。
配置文件:指定lograote指令的配置文件。