技术改变世界 阅读塑造人生! - shaogx.com

This string was altered by TechBlog\Plugins\Example.; This is an example to show the potential of an offcanvas layout pattern in Bootstrap. Try some responsive-range viewport sizes to see it in action.

linux系统裁剪

这是自己在2003年初发表与华中白云黄鹤BBS Linux讨论区的一篇文章了,摘录于此,权做一个纪念,顺便更正当中的一些错误。不过文中的一些内容现在看来是有冗余的了,配置文件的理解也不如现在透彻,以后在撰文详述吧,搞一个patch?呵呵 发信站: 武汉白云黄鹤站 (2003年01月14日15:36:07 星期二), 站内信件 小弟近日对Linux进行了小小的裁减,偶有心得,愿大家共享 说到裁减Linux,无非是为了减小磁盘占用或者是为了某些特定场合的应用(如嵌入式系统)。以RedHat 7.3为例,其最小安装仍然达到了300M,这不得不让人对一直号称小而全的Linux系统感到疑惑。 作为自己手中课题的一个铺垫,不久前我尝试了对Linux进行裁减,虽然没有达到预期的一张软盘大小,但结果也相当有吸引力。下面我对此一一做说明。 参考文档: Linux bootdisk-HOWTO:     http://www.linux.org.tw/CLDP/gb/Bootdisk-HOWTO.htmlinitrd introduce on Linux system:    /usr/src/linux-2.4/Documentation/initrd.txt 裁减Linux一般有两种办法,其一是重新生成kernel和文件系统,其二是在原有的系统上删除不必要的文件缩小“体积” 对从一个完整的RedHat 7.3版本而言,其最小安装也有300M,因此,第二个方法是不太现实的。于是重构文件系统和kernel成为了必然。 裁减目标:构成一最小Linux系统担负实验室网关工作,系统载体为硬盘,运行使用RAMDISK,从而减小意外断电造成的文件系统修整消耗提高系统可靠性。 目标平台:P2-400,8G/64M,8139LAN adapt x 2 首先裁减kernel,既然是最小系统,则kernel里所有必须的部件都将直接编译进入内核。但是内核对module的支持需要保留。 如何编译内核,不再累述,具体说说哪些选项先: Code maturity level options ---> 不选 Loadable module support ---> 当中的Set version....的可以不要,其他两个留着 Processor type and features ---> 按照目标系统选择对应的Process Family ,其他的嘛,留下Machine Check Exception、Low Latency....、HIGHMEM Support,其余都可以不要 General setup --->当中,PCI的选上,其他的不要(注意对照你的系统),SYSTEM V IPC、BSD Process accounting、sysctl support留下,Kernel support ELF binary留着,其他的可以不要 Binary emulation of other systems ---> Memory Technology Devices (MTD) ---> Parallel port support ---> 以上三项都是可以不要的 Plug and Play configuration ---> 选上,不过如果没有ISA设备,可以不选对ISA P&P的支持(比如我的目标系统) Block devices --->各取所需了,一般来说,如果你要用软盘,就选上Normal floppy disk support,大多数嵌入式系统是不要的。中间几个也是没有的;Loopback device是一定要的,Network block device我也没把握,可能可以不要不过我选了,呵呵,RAM Disk一定要,Initrd RAM Disk support当然要选。至于Default Ramdisk size就无所谓了,反正可以在启动的时候修改,呵呵。 Multi-device support (RAID and LVM) ---> 这个一般也用不上,不选了。 Networking options --->既然是打算做网关,呵呵,里面大部分东西都要选上而且是[*],编译入内核(前面已经说过了,没有编译为模块的)。从上到下一直选到IP: Virtual Server Configuration --->(从这个开始(含),可以不要了)。 需要说明的是,其中的IP: Netfilter Configuration --->子项即便选择全部编译到内核,似乎并没有什么变化,用iptables的时候一样要iptables的.so支持 :( 不过对irc和ftp的跟踪倒是不需要insmod了 Telephony Support ---> SCSI support ---> Fusion MPT device support ---> I2O device support ---> Amateur Radio support ---> IrDA (infrared) support ---> ISDN subsystem ---> Old CD-ROM drivers (not SCSI, not IDE) ---> 上面几个都不用,为什么RedHat那么大,他们有不小的功劳哟~~~ Network device support --->里面找出你目标系统的网卡(我这里是8139)选上,其他的统统去掉吧。 Input core support --->如果你不是用的USB接口鼠标键盘,可以不用选他们。 Character devices --->这里面我只选了Virtual Terminal以及Support for console on virtual terminal,其他好多东西都没有选。 Multimedia devices ---> Crypto Hardware support ---> 这两个对一般的最小系统来说都是不用的 File systems --->这个是内核大小的大头,ext2(Second extended...)是必要的,ext3也用上吧,/proc有必要,DOS FAT/VFAT(win-95)估计你可能也需要,分区表只要支持PC BIOS就可以了,Native Language我把iso8859-1给内置了 console drivers->我只选了VGA text console Sound ---> USB support ---> Additional device driver support ---> Kernel hacking ---> 这几个都没有选,make dep;make clean;make bzImage 看看吧,内核大概是700~800k左右以前我总以为裁减kernel就是裁减Linux了,后来才发现是大错特错。 以前总以为最难的是裁减kernel,后来才发现自己多么无知。学习裁减内核,大概只用了一两天,编译一次内核也就20分钟不到,可是后来居然重建文件系统花了一两个星期,呜呜~~~ 关于文件系统和kernel的关系,从参考文档里面可以知道,大家自己去看。如果连这个都不懂,建议暂时不要做裁减的事情,以为照着我的文章依葫芦画瓢多半是不能成功的。 首先按照ramdisk的生成方法或者loopback device的生成方法生成一个8M的磁盘挂接到/mnt(或者其他目录)上,就可以以/mnt为根目录构造文件系统。注意将其按照ext2方式格式化 lrwxrwxrwx    1 root     root            4 Dec 28 09:31 bin -> sbin drwxr-xr-x    5 root     root         1024 Dec 27 13:42 dev drwxr-xr-x    7 root     root         1024 Jan  6 15:14 etc drwxr-xr-x    2 root     root         1024 Dec 12 08:33 initrd drwxr-xr-x    4 root     root         1024 Dec 30 06:52 lib drwxr-xr-x    2 root     root         1024 Dec 11 07:52 mnt dr-xr-xr-x   24 root     root            0 Jan  6 15:14 proc drwxr-xr-x    2 root     root         1024 Dec 26 03:03 root drwxr-xr-x    2 root     root         1024 Dec 30 07:28 sbin drwxr-xr-x    2 root     root         1024 Dec 26 03:04 sysroot drwxr-xr-x    2 root     root         1024 Apr 19  2002 tmp drwxr-xr-x    3 root     root         1024 Dec 12 07:45 usr drwxr-xr-x    5 root     root         1024 Dec 12 02:43 var 这几个目录是必须的 先看看bin下面有什么 lrwxrwxrwx    1 root     root            6 Dec 30 07:28 ash -> ./bash -rwxr-xr-x    1 root     root       541096 Dec 30 07:27 bash -rwxr-xr-x    1 root     root        16020 Dec 13 08:56 cat -rwxr-xr-x    1 root     root        16680 Dec 27 15:40 chmod -rwxr-xr-x    1 root     root        36360 Dec 28 09:10 cp -rwxr-xr-x    1 root     root        62756 Dec 28 09:25 ftp -rwxr-xr-x    1 root     root       100624 Dec 28 09:14 grep -rwxr-xr-x    1 root     root         8672 Dec 26 03:27 halt -rwxr-xr-x    1 root     root         9624 Dec 28 09:14 hostname -rwxr-xr-x    1 root     root        54316 Dec 28 09:14 ifconfig -rwxr-xr-x    1 root     root        26920 Dec 12 02:42 init -rwxr-xr-x    1 root     root       105768 Dec 27 13:44 ip -rwxr-xr-x    1 root     root        60764 Dec 28 09:15 iptables -rwxr-xr-x    1 root     root         7764 Dec 26 17:26 kill -rwxr-xr-x    1 root     root        19080 Dec 12 02:25 login -rwxr-xr-x    1 root     root         9172 Dec 11 07:54 losetup -rwxr-xr-x    1 root     root        46888 Dec 13 08:55 ls -rwxr-xr-x    1 root     root        10316 Dec 13 08:37 mingetty -rwxr-xr-x    1 root     root        17992 Dec 27 14:15 mkdir -rwsr-xr-x    1 root     root        60104 Dec 11 07:54 mount -rwxr-xr-x    1 root     root        43496 Dec 28 10:02 mv -rwxr-xr-x    1 root     root        22196 Dec 26 02:09 nash -rwxr-xr-x    1 root     root        29464 Dec 28 09:49 ping -r-xr-xr-x    1 root     root        63304 Dec 26 16:57 ps lrwxrwxrwx    1 root     root            4 Dec 26 03:33 reboot -> halt -rwxr-xr-x    1 root     root        26216 Dec 26 17:35 rm lrwxrwxrwx    1 root     root            6 Dec 30 07:28 sh -> ./bash -rwxr-xr-x    1 root     root        14952 Dec 11 09:44 shutdown -rwxr-xr-x    1 root     root       219932 Dec 28 10:06 ssh -rwxr-xr-x    1 root     root       260616 Dec 27 14:04 sshd lrwxrwxrwx    1 root     root            6 Dec 26 16:48 swapoff -> swapon -rwxr-xr-x    1 root     root  7108 Apr  1  2002 swapon -rwxr-xr-x    1 root     root        27208 Dec 27 14:13 syslogd -rwxr-xr-x    1 root     root        78808 Dec 28 09:30 telnet -rwsr-xr-x    1 root     root        30664 Dec 27 14:23 umount -rwxr-xr-x    1 root     root         7832 Dec 12 01:54 update -rwxr-xr-x    1 root     root       386120 Dec 28 09:13 vi -rwxr-xr-x    1 root     root        13896 Dec 30 06:53 who 这里面包含了ftp、telnet、ssh客户端以及sshd服务器常用的命令和网络设置命令,iptables防火墙,vi编辑器,shell用的是 bash,虽然ash很小但是总是不习惯没有auto complete功能,tcsh不大不小功能又全,可是对一些shell脚本的支持不太好。nash用来解析linuxrc,后面会讲到(如果你看了最前面提到的initrd.txt)也会明白。 接着,用ldd命令看bin目录下面的各个可执行文件分别都和哪些动态库连接把他们cp到/mnt/lib目录下,如用ldd看mv命令,结果如下   libc.so.6 => /lib/i686/libc.so.6 (0x42000000)     /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000) 把/lib/i686/libc.so.6和/lib/ld-linux.so.2复制到/mnt/lib下面即可。 libc.so.6是基本的libc库,好像不同的处理器还不一样,我就在一台P-MMX下面用P2的libc,结果死掉了。查了半天 :( iptables命令除了其显示的以外,还要把/lib/iptables目录复制到/mnt/lib下面 /lib/security下面是PAM需要的库,最小系统只需要复制/lib/security下面的pam_unix.so、pam_stack.so到/mnt/lib/security下面即可 /etc下面的东西最是麻烦,要改的不是一点点 /etc/inittab init的配置文件,我改的是这样的: id:3:initdefault: si::sysinit:/etc/rc 1:2345:respawn:/sbin/mingetty tty1 2:23:respawn:/sbin/mingetty tty2 l0:0:wait:/etc/rc0 l6:6:wait:/etc/rc6 呵呵,简单吧 /etc/fstab记录系统启动应该mount的文件系统,因为系统在ramdisk上面跑,所以是这样的: /dev/ram0               /                       ext2    defaults        1 0none                    /proc                   proc    defaults        0 0从inittab里面知道,启动后执行脚本/etc/rc我是这样写的: #!/bin/sh /bin/mount -n -t proc /proc /proc /bin/mount -n -o remount,rw / /bin/mount -av /bin/hostname MiniLinux /etc/rc.network /etc/rc.firewall /bin/sshd 第一行mount /proc,第二行把根remount为rw模式(漏了这个害得我查了两三天),第三行检查fstab里面是否还有其他的需要mount的分区,第四行设置主机名,后面分别根据脚本设置网络和防火墙,最后开启sshd服务。 设置网络在最小系统里面再也不是像/etc/init.d/network start那么简单, 呵呵,其实也不麻烦。通过命令ip、ifconfig可以很方便的设置。例如rc.network为: #!/bin/sh /bin/ifconfig eth0 192.168.0.254 /bin/ifconfig eth1 211.69.200.1/bin/ip route add default via 211.69.200.2 dev eth1 /bin/ip route replace 192.168.0.0/24 dev eth0 scope link /bin/ip route replace 211.69.200.0/24 dev eth1 scope link 前两行设置ip地址,第三行设置缺省网关,后面两行更改本网路由。 rc.firewall的写法大家可以自己参照iptables的HOWTO去完成 /etc/passwd,/etc/shadow,/etc/group记录有系统帐号信息,在最小系统上,我只留了root组(用户)的信息。 裁减Linux过程中,PAM是一个很关键的部分,由于资料不多,很多人束手无策。 如果仅仅要使用最小系统,从console登陆需要修改/etc/pam.d/login,从ssh 上来修改/etc/pam.d/sshd,不妨复制系统原来的配置文件略作修改/etc/pam.d/login为 #%PAM-1.0auth       required     /lib/security/pam_stack.so service=system-authaccount    required     /lib/security/pam_stack.so service=system-authpassword   required     /lib/security/pam_stack.so service=system-authsession    required     /lib/security/pam_stack.so service=system-auth /etc/pam.d/sshd和login的内容一样。从其可知它们调用了system-auth这个服务,则还需要/etc/pam.d/system-auth,内容为: #%PAM-1.0# This file is auto-generated.# User changes will be destroyed the next time authconfig is run.auth        sufficient    /lib/security/pam_unix.so likeauth nullokaccount     required      /lib/security/pam_unix.sopassword    sufficient    /lib/security/pam_unix.so nullok  md5 shadowsession     required      /lib/security/pam_unix.so 关机和重启 关机和重启在完整的Linux下面是有很长的脚本支持的,就像启动脚本/etc/rc.sysinit 等等。但是在最小系统上面,这些都需要自己来写,复制原有系统的肯定不行。 不过从前面/etc/inittab里面可以知道,最小系统上面reboot执行的是/etc/rc6,关机是/etc/rc0,如果不需要“善后”,则很简单,rc6如下: [root@MiniLinux etc]# cat rc6 /sbin/reboot -i -d rc0则为: [root@MiniLinux etc]# cat rc0 /sbin/halt -i -d -p 整个etc目录下的东西列表大致为: [root@MiniLinux etc]# ll total 891 -rw-r--r--    1 root     root         6639 Apr 19  2002 fonts.cgz -rw-r--r--    1 root     root          109 Dec 30 06:19 fstab -rw-r--r--    1 root     root           14 Dec 14 00:10 group -rw-r--r--    1 root     root          146 Dec 27 15:41 inittab -rw-------    1 root     root           60 Jan  6 15:14 ioctl.save -rw-r--r--    1 root     root           57 Dec 12 01:26 issue -rw-r--r--    1 root     root        28436 Apr 19  2002 keymaps.gz -rw-r--r--    1 root     root         3758 Apr 19  2002 kon.cfg -rw-r--r--    1 root     root         1281 Apr 19  2002 lang-table -rw-r--r--    1 root     root         1320 Dec 30 06:55 ld.so.cache -rw-r--r--    1 root     root           18 Dec 12 07:53 ld.so.conf -rw-r--r--    1 root     root        54692 Apr 19  2002 loader.tr -rw-r--r--    1 root     root         1180 Dec 23 09:07 login.defs -rw-r--r--    1 root     root        30303 Apr 19  2002 minikon.fnt -rw-r--r--    1 root     root            0 Dec 13 23:39 mtab -rw-r--r--    1 root     root          270 Dec 23 04:03 nsswitch.conf drwxr-xr-x    2 root     root         1024 Dec 30 04:48 pam.d -rw-r--r--    1 root     root           28 Dec 30 06:29 passwd -rwxr-xr-x    1 root     root          401 Dec 30 07:43 profile -rw-r--r--    1 root     root        12359 Apr 19  2002 ramfs.img lrwxrwxrwx    1 root     root            7 Dec 26 03:03 rc -> rc.d/rc drwxr-xr-x    2 root     root         1024 Dec 27 15:33 rc.d -rwxr-xr-x    1 root     root         2631 Jan  6 02:18 rc.firewall -rwxr-xr-x    1 root     root          246 Jan  6 02:17 rc.network -rwxr-xr-x    1 root     root           20 Dec 27 15:38 rc0 -rwxr-xr-x    1 root     root           19 Dec 27 15:39 rc6 -r--------    1 root     root           59 Dec 30 06:20 shadow drwxr-xr-x    2 root     root         1024 Dec 26 06:37 ssh -rw-r--r--    1 root     root       737535 Dec 23 10:18 termcap 其中目录ssh为sshd的配置文件,复制原来机器上的即可。其他的大部分文件都是按照HOWTO上面提到的一些必备文件复制的。 nsswitch.conf是系统寻找一些配置文件的配置文件,呵呵,很拗口,man nsswitch.conf看看吧,稍作修改为: [root@MiniLinux /]# cat etc/nsswitch.conf passwd:     files shadow:     files group:      files hosts:      files services: &nbsp; files networks:   files protocols:  files rpc:        files ethers:     files netmasks:   files bootparams: files automount:  files aliases:    files netgroup:   files publickey:  files  profile文件是bash shell的登陆脚本,主要为了限制历史命令记录大小 [root@MiniLinux etc]# cat profile # /etc/profile # System wide environment and startup programs, for login setup # Functions and aliases go in /etc/bashrc HISTSIZE=1000 HISTFILESIZE=20 PATH=/bin PS1='[\u@\h \W]\$ ' HOSTNAME='/bin/hostname' export PATH HISTSIZE HISTFILESIZE HOSTNAME PS1 alias l.='ls -d .[a-zA-Z]* --color=tty' alias ll='ls -l --color=tty' alias ls='ls --color=tty' alias rm='rm -i' alias cp='cp -i' alias mv='mv -i' 关于/dev目录 完整linux的/dev目录下有很多设备文件,不过仔细辨别一下就会发现很多其实 用不上。我列出在我的最小Linux下面用到的设备文件: [root@MiniLinux dev]# ls agpgart  hda   hda6     input  loop3     psaux  ptyp3  ram3  tty3   ttyp4console  hda1  hda7     kbd    loop4     ptmx   ptyp4  ram4  tty4   urandomfb       hda2  hda8     kmem   loop5     pts    ram    shm   ttyp0  zerofb0      hda3  hda9     loop0  mem       ptyp0  ram0   tty0  ttyp1fd0      hda4  initctl  loop1  null      ptyp1  ram1   tty1  ttyp2fd1      hda5  initrd   loop2  openprom  ptyp2  ram2   tty2  ttyp3其中input、shm、pts是目录,似乎是系统自己生成的,fb连接到fb0,ram连接到ram0 ,关于硬盘的保留了hda?,loop[0-5]用于支持回环设备(loopback devices),tty[0-4]用于支持主机直接操作,ttyp[0-4] & ptyp[0-4]用于共同支持ssh登陆,ram?用于支持虚拟盘,urandom是sshd服务必须的设备。所有的设备文件均可以用cp -dpR从原系统的/dev目录下复制过来。 关于linuxrclinuxrc 是一个在initrd.img里面展开后直接自动执行的一个脚本。关于这个脚本的用途,建议大家读一下/usr/src/linux-2.4 /Documentation/initrd.txt,我也是直接把系统提供的initrd-2.4.18-3.img里面带的linuxrc拿来用而已: [root@MiniLinux /]# cat linuxrc #!/bin/nash echo Mounting /proc filesystem mount -t proc /proc /proc echo Creating root device mkrootdev /dev/root echo 0x0100 > /proc/sys/kernel/real-root-dev echo Mounting root filesystem mount --ro -t ext2 /dev/root /sysroot umount /proc pivot_root /sysroot /sysroot/initrd 注意,它用的shell是/bin/nash,而不是通常用的/bin/sh,大家man nash可以看到很多有意思的东西。 最后的一些工作 当你把一个文件虚拟为一个磁盘并挂接在系统上,复制了需要的可执行文件、库文件、配置文件并做了必要的修改之后,一个文件系统基本上已经成形了。 前面列出的最小系统的目录,如果没有特别提到都是留空的。这里要说的,最后的工作就是如何把kernel和文件系统结合起来。 我看到过很多讲一张或者两张软盘启动的linux,里面都提到用rdev定位文件系统,还要如何如何算。我是看明白了,不过觉得特别繁琐,就投机取巧了一番。 首先假定刚才我们挂载的根文件系统是挂载到现在的/mnt目录下,文件名是/root/newfs则首先umount #umount /root/newfs 接着将newfs压缩 #gzip -v9 /root/newfs 此时会生成newfs.gz,接着rename: #mv newfs.gz newfs.img 把它和前面编译的内核bzImage放到/boot目录下去。 我用的Linux引导器是grub。为什么不用LILO?我基本上没有用过LILO,是出道很晚很晚的Linux使用者,从grub的介绍上我发现它比LILO功能强很多,使用新内核不需要像grub那样重新安装,而且内置支持一些常见的文件系统。 看看/boot/grub/grub.conf吧,在其中增加一段: title Test Combine        root (hd0,4)        kernel /bzImage ro ramdisk_size=8192 root=/dev/ram0        initrd /newfs.img 当然,你不可照抄我的配置,需要按照你的系统更改root (hd?,?),如果你建立的文件系统(未压缩前)容量是其他数值的,请用合适的值替代8192,单位是KB(还记得我前面说过的编译内核的时候不需要刻意更改缺省ramdisk容量吗?就在这里指定即可) 好了,可以试试裁减以后的系统了。大概有多大呢?我裁减出来的系统内核大约是<800k,文件系统8M,压缩成.img的是约3M,很小吧。感想 及 说明 先说说这个最小Linux的启动过程。grub将内核载入以后,让内核将newfs.img载入内存并展开(自动展开到/dev/ram0)为临时根文件系统,此时执行/linuxrc,在linuxrc中又指定了新的文件系统。接着内核按照grub带入的参数root=/dev/ram0作为根文件系统正式init,此时/dev/ram0中的内容正是newfs.img的内容(如果你仔细观察的话,会发现完整linux启动过程中有Unmounting initrd....的字样,说明initrd.img是在进入init脚本的过程中才被卸载的),按照/etc/inittab脚本执行,缺省为 runlevel 3,执行/etc/rc,最后由mingetty启动login完成引导。 我个人感觉,/linuxrc里面的脚本似乎对内核正式init时的根分区指定没有多少影响,并不像/usr/src/linux-2.4/Documentation/initrd.txt 里面linuxrc例子那样要求严格。好像决定正式init根分区的是由grub带入内核的参数root=... 来决定的更多。有经验的大侠请多指点。 经过这次实验,感受颇多。首先对linux引导过程以及/etc下面的很多配置文件有了深入了解。Linux可改变的弹性很大,不过也需要大家沉得住气,慢慢去研究,man、HOWTO等等是少不了看的,第一手的资料还是man和英文HOWTO最权威,其次,缩减以后的大小让人非常振奋,裁减以后,系统加载重启登陆的速度都变得非常快,很多东西简直就是一眨眼就过去了。 文末,感谢各位耐心看完,不对之处请斧正。本人也是linux的新手,万望海涵。 - ... 全文

linux linux系统裁剪 职场 休闲

linux系统安全常规优化

关于服务器本地终端上的安全控制,可以从以下几个方面着手:1、即时禁止普通用户登录当服务器正在进行备份或调试等维护工作时,可能不希望再有新的用户登录系统,这时候,只需要简单的建立/etc/nologin文件即可,login程序会检查/etc/nologin文件是否存在,如果存在则拒绝普通用户登录系统(root用户不受限制),删除该文件或者重启系统后就可恢复。touch /etc/nologin2、控制服务器开放的tty终端... 全文

linux安全优化 linux安全系统

linux comm

comm:该命令是对两个已经排好序的文件进行比较。其中file1和file2是已排序的文件。omm读取这两个文件,然后生成三列输出.例如:[root@159 shell]# cat t1abcf[root@159 shell]# cat t2abed[root@159 shell]# comm t1 t2                                a                                bc                e                df输出结果包括3列:第一列:是显示只包含在文件1中的内容。第二列:是显示只包含在文件2中的内容。第三列:是显示2个文件中都包含的内容。参数:comm -1 file1 file2# -1:表示不显示第一列[root@159 shell]# comm -1 t1 t2                a                bedcomm -12 file1 file2# -12:表示不显示第一列和第二列的内容,即只显示第三列,也就是共公部分。[root@159 shell]# comm -12 t1 t2abcomm -23 file1 file2# -23:表示不显示第2列和第三列,只显示第一列,也就是只包含在file1文件中的内容。[root@159 shell]# comm -23 t1 t2cf本文出自 “huoxiubo” 博客,请务必保留此出处http://huoxiubo.blog.51cto.com/2025919/684754... 全文

linux comm comm linux 休闲 职场

轻松使用U盘安装linux

 U盘急救或者安装linux最近发现大家比较关心,linux可不可以像windows那样使用u盘来安装,我来告诉大家完全可以。下面给出U盘安装linux教程。什么U盘制作工具都是浮云?用rhel自带的grub-install来制作吧!在可以正常运行的linux上使用grub-install来安装MRB#grub-install  --root-directory=/media/rhel /dev/sdb      #/media/rhel是当前U盘挂载的地方,/dev/sdb是系统认识的U盘,注意只要写sdb就可以了。从光盘的ISO文件中复制出vmlinuz 、initrd.img、image文件夹 和光盘的整个ISO文件到现在的U盘。重启,选择从U盘启动,就会进入grub,这个grub由于找不到grub.conf这个配置文件,会是GRUB>这个模样GRUB> root (hd0,0) #(不一定是(hd0,0),第一个0表示系统认到的第一个硬盘,后面一个0是表示这块硬盘的第一个分区,以此类推,根据自己的实际情况去选择,如果是成功的话,系统会提示分区的类型的。)GRUB> kernel  /vmlinuz   rescueGRUB>initrd  /initrd.imgGRUB>boot OK!启动了,然后选择语言,然后是选择镜像的位置/dev/sda1(看你把镜像放在哪个分区了)这种方法也可以用于安装  只要加载vmlinuz的时候不要加rescue的参数就可以了 思科认证考试 这种方法太难了?那好吧!来一个又点风险,但是比较加载不用这么麻烦的首先先把/boot分区中需要用到的东西拷贝出来:/boot/grub/grub.conf /boot/grub/splash.xpm.gz /boot/menu.lst   然后将/boot分区/umount掉#umount /boot将U盘挂载到boot#mount -t vfat /dev/sdb1 /boot# grub-install —root-directory=/    /dev/sdb命令完成后就会在/boot下自动生成一个grub的文件夹,然后将刚才拷贝出来的文件复制到这个文件夹下就可以了接着就是修改grub.conf#vim   grub.confdefault=1timeout=5000splashimage=(hd0,0)/grub/splash.xpm.gztitle Red Hat Enterprise Linux install        root (hd0,0)        kernel /vmlinuz        initrd /initrd.imgtitle rhel6.1  rescue        root (hd0,0)        kernel /vmlinuz rescue        initrd /initrd.img保存完成,现在重启从U盘启动看看啦!有尝试到有的U盘是做不了的,最好是那种正版的U盘,如果不行还是用其他工具做吧!文章转载来源:思科网络技术社区 http://www.sikejishu.com原文地址:http://www.sikejishu.com/thread-3010-1-1.html ... 全文

linux 安装 U盘安装linux

linux启动过程

startx  启动图形 startx -- :1 启动第二图形界面 F8启动过程的图文... 全文

linux 职场 休闲 linux_start

Linux 文件系统权限记序

序:文章描述常用权限控制,如拥有属主的运行权限、拥有属组的权限,以及非属主有可写但不可删除的权限。还有某些用户/组有特殊的权限,以及给文件系统不能删除,甚至不能对文件有除了可读的任何操作。对权限控制较严的也许会有一丝帮助。 用到程序:   chmod setfacl getfacl stat chattr lsattr chmod:设置文件权限 setfacl:设置访问控制列表(access control list) getfacl:查看访问控制列表 stat:显示inode内容(a|m|c)time内容 chattr:设置第二扩展文件的列表文件属性系统 lsattr:查看第二扩展文件的列表文件属性系统   setuid:使文件拥有和文件属主相同的x权限 setgid:使文件夹拥有和文件属组相同的x权限 sticky:使文件不可册除 Test:... 全文

Linux linux文件系统权限

打造安全Linux系统

1、LILO安全设置vi /etc/lilo.conf.anaconda      //修改LILO文件===============================================……restricted                  //加入这行password=111111             //加入这行并设置密码为111111……================================================chmod 600 /etc/lilo.conf.anaconda   //设置为ROOT权限读取/sbin/lilo -v                       //更新系统,使上述操作生效chattr +i /etc/lilo.conf.anaconda   //设置LILO文件是不可写2、设置默认口令和帐号长度与有效期vi /etc/login.defs              //修改login.defs文件================================================……PASS_MAX_DAYS 99999PASS_MIN_DAYS 0PASS_MIN_LEN   8                   //修改系统默认密码长度为8位PASS_WARN_AGE 7                   //口令有效期为7天3、清除不设口令的帐号vi /etc/passwd                      //修改passwd文件 =================================================……elain::500:501:elain:/home/elain:/bin/bash……//帐号elain 没有设置口令。因为第二项为空,说明此帐号无密码,这是非常危险的,应该将此类帐号删除或给它设置口令。4、特别的帐号处理删除无用的用户和组用户命令如下:删除用户 :userdel username删除组用户:groupdel groupname删除下列的用户:admlpsyncshutdownhaltmail--------------newsuucpoperatorgames                          //若没有MAIL服务器可删除--------------gopher                          //若没有X Windows服务器可删除ftp                             //若不允许匿名访问 FTP删除此帐号5、权限与文件系统lsattr                          //列出文件的属性chattr                          //改变文件的属性a                        //只可添加属性i                        //不可改变属性修改系统中关键文件如下:passwdpasswd._shadowshadown._xinetd.confserviceslilo.conf等例:chmod 600 /etc/xinetd.conf     //修改文件属主为rootchattr +(-)i /etc/xinetd.conf      //设置为不能(取消)修改6、限制系统使用资源vi /etc/security/limits.conf=================================================……加入或修改下面这几行:*hard core 0                 //禁止创建core文件*hard rss   5000              //除root外,其它用户内存使用为5M*hard nproc 20                //限制最多进程为20vi /etc/pam.d/login=================================================……session required /lib/security/pam_limits.so//在文件末尾加入上面这一行7、设置自动注销帐号的登录vi /etc/profile===================================================……HOSTNAME='/bin/hostname'HISTSIZE=1000       //这是历史记录数,越小越好tmout=300           //添加此行,表示系统在五分钟内没有任何操作,将自动这个帐号注销8、/etc/securetty文件安全设置vi /etc/securetty====================================================tty1#tty2……#tty11              //在默认的内容中注释掉除tty1外的所有tty,表示root只能在tty1终端登录9、禁止外来PING请求,防止补攻击vi /etc/rc.d/rc.local====================================================echo 1>/proc/sys/net/ipv4/icmp_echo_ignore_all//添加上面一行,可阻止系统响应任何外来的PING请求10、限制显示出系统版本信息当用户进入LINUX系统时系统将告诉用户LINUX版本号,内核版本号和服务器主机名。vi /etc/rc.d/rc.local=====================================================在里面添加如下:……#This will overwrite /etc/issue at every boot.So,make any changesyou#want to make to /etc/issue here oryou will lose them when you reboot.#echo""> /etc/issue#echo"$R">> /etc/issue#echo"Kernel $(uname -r)on$a $(uname -m)">>/etc/issue##cp -f /etc/issue /etc/issue.net#echo >>/etc/issue……然后,执行下面几行命令#rm -f /etc/issue#rm -f /etc/issue.net#touch /etc/issue#touch /etc/issue.net也可以单独编辑一个命令(telnet),如修改/etc/inetd.conftelnet stream tcp nowait root /usr/sbin/tcpd in.telnetd -h这样,用户TELNET服务器时,就不会显示出系统版本信息等了,只显示“login:”。11、设置文件/etc/host.conf,防止IP欺骗vi /etc/host.conf===================================================……#Lookup names via DNS first then fall back to /etc/hosts.order bind,hosts#We don't have machines with multipe IP addresses on the same card(likevirtual server,IP Aliasing).multi off#Chesk for IP address spoofing.nospoof onIP Spoofing:IP-Spoofing is a security exploit that works by trichkingcomputers in a trust relationship that you are someone that you really aren.//添加上面几行来防止IP欺骗攻击12、禁止 su作为rootvi /etc/pam.d/su======================================================……auth sufficient /lib/security/pam_rootok.so debugauth required /lib/security/pam_wheel.so group=elain在文件内添加如上两行,这表示只有用户组elain里的成员可以用su作为root若希望用记admin能su作为root,可运行以下命令:#usermod -G10 admin13、禁止使用CTRL+ALT+DEL重启服务器vi /etc/inittab……#ca::ctrlaltdel:/sbin/shutdown -t3 -r now        //用“#”注释掉此行即可然后运行:#/sbin/init -q14、注销时删除命令记录vi /etc/skel/.bash_logout============================================================rm -f $HOME/.bash_history15、确保开启的服务安全常用服务方面的命令:grep -v "#" /etc/services                        //显示没有被注释掉的服务ps -eaf|wc -l                                    //统计当前系统打开服务的总数netstat -na (远程后面可加ip)                     //查看当前运行的服务netstat -an |grep LISTEN                         //查看是否有可疑端口打开当然,也可以执行如下命令:shattr +i /etc/services                          //设置为不可理性属性Linux启动时先检测脚本文件,在REDHAT下,在/etc/rc.d/rc3.d(rc5.d)下(图形化),脚本名字为启动顺序。K 表示杀死进程S 表示启动的服务如在启动时禁止一个服务,只需把该服务的脚本文件的大写“S”更改为小写“s”注意,以下3个服务漏洞很多,强烈建议关闭yppasswdd(NIS服务器)ypserv(NIS服务器)nfs(NFS服务器)16、LINUX防火墙安全配置system-config-securitylevel17、LINUX系统安全工具Sxid:检查系统中的suid,sgid以及没有主人的文件Skey:一次性口令工具Logrotate:日志循环工具Logcheck:日志管理工具Swatch:日志管理工具,比logcheck实时Ssh(openssh):提供安全的连接认证Portsentry:反扫描工具,监视自己的udp和tcp端口Tripwire:提供系统完整性检查Gnupg:对单个文件进行加密以及创建数字签名Hostsentry:基于主机的入侵检测,将连接记入日志ipchains Linux:发行版自带的包过滤形防火墙Anti-sniff:反嗅探工具,检查网络中是否有嗅探器Freeswan:在LINUX中实现 VPN的工具Syslog-ng:替代syslog的日志文件系统Scandns:进行DNS检查追踪工具Whisker:CGI扫描器Snoopy:通过跟踪execve系统调用记录文件的命令Krnsniff:一个基于内核的监听模块Iptable:用来替代ipchains包过滤防火墙Imsafe:通过跟踪系统调用来检测缓冲溢出等问题Iplog:对来往的包进行日志记录Solaris designer:内核补丁,防止缓冲溢出等Stackguard:作为补丁修补GCC,防止缓冲溢出DTK:Honey port欺骗式防御Antiroute:阻止和记录基于路由的跟踪============================================收集于网络,希望能为广大Linux爱好者提供一定的帮助,如有更好的意见,敬请完善!本文出自 “Ro の博客” 博客,请务必保留此出处http://luoweiro.blog.51cto.com/2186161/652732... 全文

Linux 安全Linux 职场 休闲

Linux系统安全基础应用

一、基本安全1、账号安全将非登录用户的Shell设为/sbin/nologin,锁定长期不使用的账号,删除无用的账号锁定账号文件passwd、shadow锁定文件并查看状态[root@localhost ~]# chattr +i /etc/passwd /etc/shadow[root@localhost ~]# lsattr /etc/passwd /etc/shadow—-i——– /etc/passwd—-i——– /etc/shadow解锁文件并查看状态... 全文

Linux Linux安全 系统安全

linux挂载linux的samba

linux挂载linux的samba 挂载其他linux(utf8文件系统编码,samba的unix charset也设置为utf-8了)的时候,和上面挂载共享的ntfs分区的方式是一样的: mount //neighbour/sharedir /media/mountpoint -t samfs -o codepage=cp936,iocharset=utf8 这是要尤其注意的地方,即使两个linux都是utf8编码,好像也必须指定cp936才能够正常浏览和创建中文名称的文件! 另外还要尤其注意,//neighbour/sharedir和//neighbour/sharedir/是不一样的,注意最后有个斜线“/”,有的时候加上了这个斜线samba会不认,报出如下错误: tree connect failed: ERRDOS - ERRnosuchshare (You specified an invalid share name) SMB connection failed ... 全文

linux 职场 samba 休闲

linux下开启core文件设置

linux系统默认是没开启core文件,开启core文件主要针对程序异常bug进行处理。临时方法:#ulimit -c 1024(这个表示每个core文件最大产生的大小kb)永久方法:编辑/etc/security/limits.conf 文件可以永久改变这一设置,在最后添加一行* soft core 1024 查看命令:#ulimit -a   //可以查看core开启或者文件大小情况... 全文

linux core linux core

linux小试验

在VMARE虚似机中添加一块新硬盘,启动 LINUX,在新硬盘上建立一个主分区和一个扩展分区,并在扩展分区中建立两外逻辑分区。   在新建立的磁盘分区上建立EXT3文件系统,并使用MOUNT命令挂载在系统中   修改/ETC/FSTAB文件使得系统引导时自动挂载新建立的主分区   练习软盘和光盘的挂载  改变文件的权限,设置属主和属组   在LINUX中建立用户帐户JACK和RED,设置口令分别为;JACK123和RED123,使用命令设置用户JACK的主目录为/   在/目录中建立目录JACK,并设置该目录的属主和属组均为JACK通过修改配置文件设置JACK的主目录为/JACK   设置/JACK目录的权限为用户JACK读取、写入、执行;属组用户读取、执行;其他用户无权限   创建用户JHON并设置密码,用JHON用户登陆.考察用户主目录,注销以后使用ROOT用户登录,删除用户JHON及主目录.   考察/etc/passwd和/etc/shadow两个文件      练习命令 ps -aux ps -ef top kill kill-9   前台和后台: command& jobs bg fg... 全文

linux小试验 linux 休闲 职场

Linux内核网络参数

 Linux系统内核中网络参数的意义及其应用     在Linux中,我们可以根据不同的需求来调整/proc/sys/net/ipv4/目录下的内核网络参数,通过合理的配置这里内核网络参数,从而达到提高网络的安全性和系统的稳定性的目的。 ... 全文

linux 内核 linux 休闲 职场

Linux 面试基础问题:第二部分

继续我们这面试系列,在这篇文章里我们给出了10个问题。这些问题或者是在以后的文章中出现的问题不一定在面试中会被问到。然而通过这些文章我们呈现出的是一个交互的学习平台,这必将会对你有很大的帮助。... 全文

Linux Linux面试题

linux驱动之按键驱动

目的:编写按键驱动原理图:按键与引脚对应关系:1、编写驱动程序框架2、查看原理图与s3c2440手册3、编写open函数配置引脚4、编写read函数功能驱动代码:... 全文

button linux驱动 linux按键驱动

Linux 添加服务详解

软件安装成服务过程详解:service httpd restart由三部分组成service(服务)、httpd(程序名)、restart(相关命令)少一不可service: 是系统已经定义可的。无需更改。默认会查找/etc/init.d/* httpd: 程序名这个是已经确定的。restart: 相关命令,如start 这个是控制程序走向。 那么非常明确的一个服务需要的流程:1、程序是可执行程序2、位置需放在/etc/init.d/目录下3、相关命令,这个由程序本身决定(有没有指定)。3.1 如果是已经有相关命令的,那么文件直接拷贝到/etc/init.d目录下,并给矛可执行权限。3.2 如果是没有定义,那我们需要写一个脚本。并定义好相关命令。 一、看一个sshd实例,来帮助我们了解整体过程。# vim /etc/init.d/sshd----------sshd start------------------#!/bin/bash## Init file for OpenSSH server daemon## chkconfig: 2345 55 25# description: OpenSSH server daemon## processname: sshd# config: /etc/ssh/ssh_host_key# config: /etc/ssh/ssh_host_key.pub# config: /etc/ssh/ssh_random_seed# config: /etc/ssh/sshd_config# pidfile: /var/run/sshd.pid # source function library. /etc/rc.d/init.d/functions # pull in sysconfig settings[ -f /etc/sysconfig/sshd ] && . /etc/sysconfig/sshd RETVAL=0prog="sshd" # Some functions to make the below more readableKEYGEN=/usr/bin/ssh-keygenSSHD=/usr/sbin/sshdRSA1_KEY=/etc/ssh/ssh_host_keyRSA_KEY=/etc/ssh/ssh_host_rsa_keyDSA_KEY=/etc/ssh/ssh_host_dsa_keyPID_FILE=/var/run/sshd.pid runlevel=$(set -- $(runlevel); eval "echo \$$#" ) do_rsa1_keygen() {if [ ! -s $RSA1_KEY ]; thenecho -n $"Generating SSH1 RSA host key: "if $KEYGEN -q -t rsa1 -f $RSA1_KEY -C '' -N '' >&/dev/null; thenchmod 600 $RSA1_KEYchmod 644 $RSA1_KEY.pubif [ -x /sbin/restorecon ]; then    /sbin/restorecon $RSA1_KEY.pubfisuccess $"RSA1 key generation"echoelsefailure $"RSA1 key generation"echoexit 1fifi} do_rsa_keygen() {if [ ! -s $RSA_KEY ]; thenecho -n $"Generating SSH2 RSA host key: "if $KEYGEN -q -t rsa -f $RSA_KEY -C '' -N '' >&/dev/null; thenchmod 600 $RSA_KEYchmod 644 $RSA_KEY.pubif [ -x /sbin/restorecon ]; then    /sbin/restorecon $RSA_KEY.pubfisuccess $"RSA key generation"echoelsefailure $"RSA key generation"echoexit 1fifi} do_dsa_keygen() {if [ ! -s $DSA_KEY ]; thenecho -n $"Generating SSH2 DSA host key: "if $KEYGEN -q -t dsa -f $DSA_KEY -C '' -N '' >&/dev/null; thenchmod 600 $DSA_KEYchmod 644 $DSA_KEY.pubif [ -x /sbin/restorecon ]; then    /sbin/restorecon $DSA_KEY.pubfisuccess $"DSA key generation"echoelsefailure $"DSA key generation"echoexit 1fifi} do_restart_sanity_check(){$SSHD -tRETVAL=$?if [ ! "$RETVAL" = 0 ]; thenfailure $"Configuration file or keys are invalid"echofi} start(){# Create keys if necessarydo_rsa1_keygendo_rsa_keygendo_dsa_keygencp -af /etc/localtime /var/empty/sshd/etc echo -n $"Starting $prog: "$SSHD $OPTIONS && success || failureRETVAL=$?[ "$RETVAL" = 0 ] && touch /var/lock/subsys/sshdecho} stop(){echo -n $"Stopping $prog: "if [ -n "`pidfileofproc $SSHD`" ] ; then    killproc $SSHDelse    failure $"Stopping $prog"fiRETVAL=$?# if we are in halt or reboot runlevel kill all running sessions# so the TCP connections are closed cleanlyif [ "x$runlevel" = x0 -o "x$runlevel" = x6 ] ; then    killall $prog 2>/dev/nullfi[ "$RETVAL" = 0 ] && rm -f /var/lock/subsys/sshdecho} reload(){echo -n $"Reloading $prog: "if [ -n "`pidfileofproc $SSHD`" ] ; then    killproc $SSHD -HUPelse    failure $"Reloading $prog"fiRETVAL=$?echo} case "$1" instart)start;;stop)stop;;restart)stopstart;;reload)reload;;condrestart)if [ -f /var/lock/subsys/sshd ] ; thendo_restart_sanity_checkif [ "$RETVAL" = 0 ] ; thenstop# avoid racesleep 3startfifi;;status)status -p $PID_FILE openssh-daemonRETVAL=$?;;*)echo $"Usage: $0 {start|stop|restart|reload|condrestart|status}"RETVAL=1esacexit $RETVAL--------------sshd stop---------------------------煮酒品茶:可以看出来,一些判断语句和一些执行路径。以即最下方的获取相关命令并给予相关执行命令。瞧,一个服务的添加就这么简单。测试吧过程如下: [root@localhost test]# service test restarttest: unrecognized service[root@localhost test]# cp test /etc/init.d/[root@localhost test]# ll /etc/init.d/ |grep test-rwxr-xr-x 1 root root    19 Apr 23 11:37 test[root@localhost test]# service test restarthello world #vim /etc/init.d/test-------------------test start--------------- case "$1" instart)echo -n "Starting test: " ~/test/testecho -n "start is OK"  ;;stop)echo -n "Shutting stop test: "killall testecho -n "stop is OK"  ;;esacexit-------------stop-------------------[root@localhost test]# service test startStarting test: hello worldstart is OK[root@localhost test]# service test stopShutting stop test: test: no process killed 煮酒品茶:很简单的的可以理解,先是放到service能找的着的地方,然后再给它判断命令如果是start就写文件正在启动test中,启动完后给一个启动ok的。同理结束直接kill掉他的进程就好了。其它的自由发挥比如:reload、restart等。                ... 全文

Linux 服务 linux系统 添加服务

linux查看dns的命令 一些linux基本命令(一)

签:网络配置linux命令linux文件结构 超级用户提示符 # ,普通用户提示符 $  注销 logout 或ctrl+D  关机 init 0 或halt,重启 init 6 或reboot  多用户环境下,使用shutdown关闭或重启系统,所有登录到系统上的用户将被通知系统将要关闭。  Shell--用户与操作系统内核之间的接口,最重要的功能是命令解释  /bin-存放可执行程序  /boot-存放用于系统引导时使用的各种文件  /dev-存放设备文件,用户可通过这些文件访问外部设备  /home-存放所有用户文件的根目录,每个用户在该目录下都有一个与该用户名相对应的子目录  /lib-程序运行所需要的共享库及内核模块  /mnt-挂载点  /proc-虚拟文件系统  /root-超级用户目录  /tmp-临时文件  /usr-用于存放系统应用程序  /var-用于存放需要随时改变的文件,如系统日志  /etc-存放系统管理所需要的配置文件  man-使用man或info命令查看某个命令的帮助信息,如man ls  tab-帮助补全命令 Linux下的文件系统--ext2(第二代扩展文件系统)、ext3,swap(交换分区),vfat(所有FAT文件系统),NFS(网络文件系统)  mount <选项> <设备名> <挂载点> -t 文件系统类型/auto  # mount t vfat /dev/hda6 /mnt/win //将/dev/hda6上的FAT32文件系统挂载到/mnt/win  # mount t ext3 /dev/sdb1 /opt //将/dev/sdb1上的ext3文件系统挂载到/opt  Umount-卸载文件系统,可以指定要卸载的文件系统的挂载点或设备名  # umount /dev/sdb1 # umount /opt  挂载光盘 # mount /mnt/cdrom 卸载光盘 # umount /mnt/cdrom  挂载软盘 # mount /mnt/floppy 卸载软盘 # umount /mnt/floppy  USB硬盘在Linux下被模拟成SCSI设备来使用的,所以对应的设备文件是/dev/sda  # mkdir /mnt/usb //建立挂载点  # mount t vfat /dev/sda1 /mnt/usb //挂载USB硬盘上的第一个分区  # umount /mnt/usb //卸载USB硬盘  find-用于在文件系统中查找指定文件 find <起始目录> <匹配条件>  起始目录--要在整个文件系统里查找,起始目录是"/",要在当前目录下查找,是"."  -name '字符串'--查找文件名匹配字符串的所有文件,匹配字符串可用通配符*?[]  -iname '字符串'--与-name一样,但是忽略大小写  $ find . name 'd*' //从当前目录开始查找所有以d开头的文件  $ find / name '*.tmp' //从/目录开始查找所有扩展名为.tmp的文件  ifconfig-设置IP地址,查看网络接口的配置情况  # ifconfig eth0 192.168.0.100 //设置eth0IP地址为192.168.0.100  # ifconfig eth0 //查看当前的网络参数配置  # route add default gw 192.168.0.1 //设置网关地址为192.168.0.1  编辑/etc/resolv.conf文件设置DNS服务器地址  # hostname test //设置主机名为test  ls-显示目前下的内容 -a 显示所有文件  -l 长列表形式显示文件的详细信息  ls la /root/ //以长列表形式显示/root目录下的所有文件  pwd-显示当前工作目录  cd-改变目录  cd .. 返回上级目录,注意cd与..之间有一个空格  date-显示系统当前日期和时间 格式:星期月日时:分:秒时区年  cal-万年历,显示系统时间当天所在的月份的月历  cal 2010 //查看2010年12个月的年历 cal 9 1752 //查看1752年9月份的月历  bc-计算器 quit退出  more、less、cat-显示文件内容  cat /etc/hosts //显示/etc/hosts的内容  more /etc/inittab //显示/etc/ inittab的内容  cp-复制文件 -r 以递归形式复制 -i 互动形式复制  cp r /root/ /home/ //复制/root/目录下的文件到/home/,包括子目录及子目录下的文件  cp /etc/yp.conf /root/aa //复制/etc/yp.conf文件到/root目录下,并重命名为aa  mv-移动文件,重命名文件 -i 交互方式操作  mv /usr/xu/* . //将/usr/xu/下所有文件移动到当前目录下  mv wch.txt wcz.doc //将文件wch.txt重命名为wcz.doc... 全文

linux

Linux救援模式 linux rescue(补充中……)

图片无法添加,暂略……Boot Menu中选择CD-ROM启动选择Rescue install system选择语言,默认English选择键盘类型,默认English选择镜像介质,Local CD/DVD选择是否配置网卡系统查找硬盘上的rhel系统,选择Continue硬盘上的系统已找到,并挂载到/mnt/sysimage,点击OK提示chroot /mnt/sysimage,点击OK伪根真根Chroot: change root directory作用:切换系统根位置在 linux 系统中,系统默认目录结构都是以 `/`,即根 (root) 开始使用 chroot 之后,系统目录结构将以指定位置作为 `/` 位置进入待救援系统【补充完善中……】... 全文

linux rescue

初识Linux

一、Linux简介这里我们就不得不先谈谈Linux的起源和发展,这是必须得过程,什么都有个起源么,也就是回顾个历史,为什么有linux,究竟怎么来的:1)首先了解下Linux操作系统的构成,大致分为以下三个结构:Linux内核、系统基本库、应用程序(1)Linux内核项目主要作者:芬兰赫尔辛基大学的 Linus Torvalds1991年10月,发布Linux 0.02版(第一个公开版)1994年3月,Linux 1.0版发布Linux内核的标志 —— 企鹅Tux,取自芬兰的吉祥物官方网站:http://www.kernel.org(2)Linux内核版本由linux内核项目团体统一进行发布的,大致如下:XX.YY.ZZ... 全文

操作系统 Linux历史 linux 休闲 职场

linux 启动过程分析

Linux系统启动过程分析  主要内容:    1. 启动过程几个主要文件简介      2. 开机过程详细说明     3. 开机过程详图 启动过程中的几个主要文件及其作用:文件名称(按照加载次序列出) 作用/etc/inittab定义在进入或切换各个级别时系统需要执行的动作init在初始化系统时需要读取其中配置/etc/rc.d/rc.sysinitinit进程调用执行完成下面的初始化工作:... 全文

linux 休闲 职场 linux 启动过程

Linux入门之《循序渐进Linux》

《循序渐进Linux——基础知识、服务器搭建、系统管理、性能调优、集群应用》本书从基础知识入手,系统讲解了Linux系统结构、shell、主流服务器搭建及故障排除、用户权限管理、磁盘存储管理、文件系统管理、内存管理和系统进程管理等关键技术,深入研究了系统性能优化思路、系统性能评估与优化、集群技术、负载均衡等Linux热点主题。本书特点 本书从Linux的学习方法讲起,全面讲解了Linux的方方面面,具体的特点如下。... 全文

Linux 入门