一.mv命令
mv - move (rename) files当后面接的文件存在的时候,就是移动当后面接的文件不存在的时候,就是改名移动命令相当于windows里的剪切====[root@teacher lianxi]# lswudang wulin xiang[root@teacher lianxi]# mv xiang wulin/ 移动[root@teacher lianxi]# [root@teacher xiejiaming]# lsaa wangwang[root@teacher xiejiaming]# mv wangwang/ wangshuwen将wangwang 改名为wangshuwen[root@teacher xiejiaming]# lsaa wangshuwen[root@teacher xiejiaming]#[root@teacher lianxi]# lshunan wulin xiaowudang[root@teacher lianxi]# mv hunan xiang 将hunan改名为xiang[root@teacher lianxi]# lswulin xiang xiaowudang[root@teacher lianxi]# [root@teacher lianxi]# lswulin xiang xiaowudang[root@teacher lianxi]# mv xiang/ wulin/hunan 将xiang目录移动到wulin目录下改名为hunan (移动、粘贴、重命名)[root@teacher lianxi]# lswulin xiaowudang[root@teacher lianxi]# ls wulin/emei hunan mingjiao shaolin wudang wudangshan xiang[root@teacher lianxi]# [root@teacher lianxi]# mv zhuzhou/ changsha/ wulin/ 将zhuzhou和changsha目录都移动到wulin目录下[root@teacher lianxi]# mv xiaowudang/ /hu 将当前目录下的xiaowudang移动到/hu目录下===二.rm命令删除命令,此命令要谨慎使用,不能到回收站里找回来 -f, --force ignore nonexistent files, never prompt-r, -R, --recursive remove directories and their contents recursively====(1) [root@localhost zhuzhou]# rm -rf a* 删除所有以a开头的文件(2) [root@localhost zhuzhou]# rm -rf a?? 删除以a开头,文件名是3个字母的文件和文件夹(3) [root@localhost zhuzhou]# rm -rf * 删除当前目录下所有的文件和文件夹[root@teacher lianxi]# rm -rf a*d注意:千万不要使用rm -rf / 此命令会删除linux系统里所有的文件。
不要使用下面命令===cd /rm -rf *===rm -rf /*========三.cat 命令 自己写一个简单的删除是移动的小脚本cat rm.sh[root@teacher lianxi]# cat rm.sh mv $1 /backup[root@teacher lianxi]# chmod +x rm.sh 授予可执行权限[root@teacher lianxi]# mv rm.sh del 改名mkdir /backup 新建备份目录,用来存放移动过来的文件[root@teacher lianxi]# lsc del shaolin[root@teacher lianxi]# del cbash: del: command not found[root@teacher lianxi]# ./del c 执行[root@teacher lianxi]# lsdel shaolin[root@teacher lianxi]# ls /backup/a b c wudang wulin[root@teacher lianxi]# [root@teacher lianxi]# cp del /bin/ 复制del脚本到/bin目录下,然后就可以直接使用了[root@teacher lianxi]# mkdir aa bb cc[root@teacher lianxi]# lsaa bb cc del[root@teacher lianxi]# del aa 直接使用del删除aa,其实是移动到/backup目录下===显示行号 -n, --number number all output lines====[root@teacher lianxi]# cat -n zhaozhifan.txt 1zhaozhifan 2tongxin 3hengyang 420 5衡阳 湖南 6[root@teacher lianxi]# tac zhaozhifan.txt 衡阳 湖南20hengyangtongxinzhaozhifan[root@teacher lianxi]# ===| 管道 将前面一个命令的输出送给后面一个命令作为输入 (提篮子) 借花献佛===[root@teacher lianxi]# cat -n zhaozhifan.txt |tac 6 5衡阳 湖南 420 3hengyang 2tongxin 1zhaozhifan[root@teacher lianxi]# ====四.more命令 用途:全屏方式分页显示文件内容交互操作方法: 按Enter键向下逐行滚动 按空格键向下翻一屏、按b键向上翻一屏(back) 按q键退出(quit)===[root@teacher lijun]# cat -n messages | more| 管道 将前面一个命令的输出送给后面一个命令作为输入 (提篮子) 借花献佛将cat -n messages在屏幕上的显示内容 送给more命令,分页显示===less命令用途:与more命令相同,但扩展功能更多交互操作方法: 与more命令基本类似,但个别操作会有些出入【page down】【page up】上翻下翻页===[root@teacher lijun]# cat -n messages |less===cat 不能分页显示,cat -n 可以显示行号more和less可以分页显示===cat命令的扩展[root@teacher lianxi]# cat -n hosts >1.txt 查看当前目录下hosts文件里的内容,然后重定向到当前目录下的1.txt文件里> 输出重定向符号,把本来应该在屏幕上输出的内容转移到后面接的文件里(乾坤大挪移),会覆盖原来文件里的内容。如果文件不存在,就新建>> 追加输出重定向,不会覆盖原来文件里的内容重定向后面接的文件如果不存在会自动建立===[root@teacher lijun]# echo 123 在屏幕上输出后面接的内容123[root@teacher lijun]# [root@teacher lijun]# echo 123 > 1.txt[root@teacher lijun]# cat 1.txt 123[root@teacher lijun]# echo 123456 >>1.txt [root@teacher lijun]# cat 1.txt 123123456[root@teacher lijun]# cat 1.txt >2.txt 覆盖原来的内容[root@teacher lijun]# cat 2.txt 123123456[root@teacher lijun]# cat 1.txt >>2.txt 追加[root@teacher lijun]# cat 2.txt 123123456123123456[root@teacher lijun]#[root@teacher lianxi]# cat -n zhaozhifan.txt >>zhao.txt[root@teacher lianxi]# cat zhao.txt 123 1zhaozhifan 2tongxin 3hengyang 420 5衡阳 湖南 6[root@teacher lianxi]# cat -n zhaozhifan.txt >>/backup/zhao.txt 绝对路径[root@teacher lianxi]# cat /backup/zhao.txt 1zhaozhifan 2tongxin 3hengyang 420 5衡阳 湖南 6[root@teacher lianxi]# [root@teacher lijun]# cat 1.txt >>/lijun/3.txt[root@teacher lijun]# cat pengzhou.txt 1.txt >peng.txt将在屏幕上显示pengzhou.txt 和1.txt的内容,然后重新定向到当前目录下的peng.txt文件里[root@teacher lijun]# cat peng.txt 查看合并后的内容彭州 重庆 垫江====123123456[root@teacher lijun]# ===document here [root@teacher lianxi]# cat >qiwufeiyang <<EOF 在当前目录下产生一个qiwufeiyang的文件,等待你输入,当你输入EOF这个字符串的时候就停止(可以是其他的字符)> jazz> du pi wu> qia qia wu> pi li wu> zombi wu> eof> EOF=======五.head命令用途:查看文件开头的一部分内容(默认为10行)[root@teacher lijun]# head yangjiaxiong.txt |cat -n显示前10行的内容,并且显示行号 1yunnan 2dali 3caijingxueyuan 4shuaige 5彭州 重庆 垫江 6==== 7 8彭州 重庆 垫江 9==== 10[root@teacher lijun]#[root@teacher lijun]# cat -n yangjiaxiong.txt |head -5显示前10行的内容,并且显示行号 1yunnan 2dali 3caijingxueyuan 4shuaige 5彭州 重庆 垫江[root@teacher lijun]# 六.tail 显示后几行的内容(默认是10行) [root@teacher lijun]# cat -n yangjiaxiong.txt |tail -5 12==== 13 14彭州 重庆 垫江 15==== 16[root@teacher lijun]# ====[root@teacher lijun]# cat -n yangjiaxiong.txt |head -500|more分页显示前500行的内容[root@teacher lijun]# cat -n yangjiaxiong.txt |head -500|tail -201|more分页显示前300到500行的内容====显示第100行[root@teacher lijun]# cat -n yangjiaxiong.txt |head -100|tail -1 100 84Sep 29 17:34:53 teacher avahi-daemon[2204]: Invalid query packet.[root@teacher lijun]# ====七.which , whereis, locate 命令的说明和区别which:查找外部命令,内部命令是找不到的。whereislocate:是在环境里找命令。*which和whereis主要是用来查找命令,不能用来查找目录**locate可以用来查找文件和目录,但是需要updatedb命令更新下数据库*
文件查找的命令whichwhereislocatefind 最难(* * * * *)=====which主要是用来查找命令的,而且只是在特定的目录下查找(PATH变量指定的路径下)which 是用来查询命令存放的路径,一般在PATH环境变量指定路径,命令必须具有可执行权限====[root@teacher lianxi]# which cd/usr/bin/which: no cd in (/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin:/lianxi)如果which查找不到命令,有2种可能:1.命令确实不存在在PATH变量定义的路径里2.此命令是bash的内部命令====重点:which和whereis的区别 which查找的文件,需要具有可执行权限,如果没有执行权限,就算在PATH变量的路径下,也查找不到。 whereis能显示man手册文件的路径,whereis不需要可执行权限====八,alias 查看系统里定义的别名[root@teacher china_voice]# aliasalias c='clear'alias cp='cp -i'alias l.='ls -d .* --color=auto'alias ll='ls -l --color=auto'alias ls='ls --color=auto'alias mv='mv -i'alias rm='rm -i'alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'[root@teacher china_voice]#[root@teacher china_voice]# alias cc="rm -rf" 定义cc的别名是实现rm -rf的效果,但是系统重新启动就没有作用了alias cls=clearclear是系统里的命令cls是自己定义的[root@teacher china_voice]# lshunantv jiangshutv passwd zhejiangtv[root@teacher china_voice]# cc zhejiangtv/ 使用[root@teacher china_voice]# lshunantv jiangshutv passwd[root@teacher china_voice]# [root@teacher china_voice]# unalias cc 取消别名===永久有效,别名[root@teacher china_voice]# vim ~/.bashrc[root@teacher china_voice]# cat ~/.bashrc# .bashrc# User specific aliases and functionsalias rm='rm -i'alias cp='cp -i'alias mv='mv -i'alias c=clear ---》增加alias mk=mkdir ---》增加alias cls=clear ---》增加# Source global definitionsif [ -f /etc/bashrc ]; then. /etc/bashrcfi[root@teacher china_voice]#====[root@teacher feng]# daxia=zhangwu 定义一个变量名为daxia,它的值为zhangwu[root@teacher feng]# echo $daxia ni hao 引用变量的时候,前面接$符号zhangwu ni hao=====(1)env是查看系统里已经定义的变量,不需要我们定义,但是我们可以修改(2)grep是根据后面接的字符串过滤出匹配的行,然后在屏幕上显示[root@teacher feng]# env|grep PATHPATH=/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/binWINDOWPATH=7[root@teacher feng]#[root@teacher feng]# 平时查找命令的时候,都是到PATH变量指定的路径下查找[root@teacher bin]# PATH=$PATH:/feng 重新定义了PATH变量的值,注意以分号隔开[root@teacher bin]# x=3 ^C[root@teacher bin]# echo $PATH/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin:/feng[root@teacher bin]# PATH=$PATH:/software[root@teacher bin]# echo $PATH/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin:/feng:/software[root@teacher bin]# [root@teacher bin]# which cd cd是内部命令,查找不到/usr/bin/which: no cd in (/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin:/feng:/software)===九.U盘的挂载 插入u盘,是否能自动识别?文件系统--》FAT32 ---》能自动挂载文件系统--》ntfs ---》不能自动挂载常见:windows ---》FAT32和NTFSlinux ---》ext4 (rhel6) ext3 (rhel5)iso9660 光盘文件系统fat32 windows和linux都可以识别======[root@teacher lianxi]# cat /etc/issueRed Hat Enterprise Linux Server release 6.4 (Santiago)Kernel \r on an \m[root@teacher lianxi]# ===挂载使用u盘的步骤1.插入u盘2.使用df -Th 查看u盘挂载点[root@localhost lianxi]# df -Th文件系统 类型 容量 已用 可用 已用%% 挂载点/dev/sda3 ext4 455G 88G 344G 21% /tmpfs tmpfs 1.9G 48K 1.9G 1% /dev/shm/dev/sda1 ext4 194M 30M 154M 17% /boot/dev/sdb1 vfat 15G 5.2G 9.4G 36% /media/0BD5-5F99[root@localhost lianxi]# /dev/sda1 是第1块磁盘的第1个分区/dev/sdb1 是第2块磁盘的第1个分区====3.进入挂载点[root@localhost lianxi]# cd /media/0BD5-5F99/ 进入目录[root@localhost 0BD5-5F99]# ls 查看内容linux 电影[root@localhost 0BD5-5F99]# 4.登录ftp服务器10.0.0.253 (ftp服务器里存放大量的软件和资料)[root@localhost 0BD5-5F99]# pwd/media/0BD5-5F99[root@localhost 0BD5-5F99]# lftp 10.0.0.253 登录lftp 10.0.0.253:~> cd software/iso/lftp 10.0.0.253:/software/iso> get rhel6.3.x86.iso 下载 lftp 10.0.0.253:/software> quit 退出====5.卸载u盘(安全弹出)[root@localhost 0BD5-5F99]# umount /media/0BD5-5F99/ 卸载挂载点目录umount: /media/0BD5-5F99: device is busy. 设备忙,因为你在当前目录下 (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1))[root@localhost 0BD5-5F99]# pwd 显示路径/media/0BD5-5F99[root@localhost 0BD5-5F99]# cd 退出到家目录[root@localhost ~]# umount /media/0BD5-5F99/ 卸载挂载点目录[root@localhost ~]# df -Th 查看挂载情况文件系统 类型 容量 已用 可用 已用%% 挂载点/dev/sda3 ext4 455G 88G 344G 21% /tmpfs tmpfs 1.9G 48K 1.9G 1% /dev/shm/dev/sda1 ext4 194M 30M 154M 17% /boot[root@localhost ~]# ========手动挂载步骤:1.接上u盘2.fdisk -l 查看系统给u盘分配的设备文件3.mount /dev/sd* /media (sd* 是fdisk -l查看到的设备文件) 挂载U盘到/media目录 (类似于windows里分配一个G盘,可以自己定义)4.cd /media 进入u盘的挂载目录5.退出u盘目录6.卸载 umount /media==========ntfs-3g 专门用来挂载ntfs文件系统的,在linux下的软件===十.find命令 用途:用于查找文件或目录格式:find [查找范围] [查找条件] [动作]常用查找条件-name:按文件名称查找-size: 按文件大小查找-user: 按文件属主查找-type: 按文件类型查找-perm :按文件权限查找-mtime :按文件更改时间查找====[root@teacher lianxi]# find / -name zhongguohehuoren -exec cp {} /zhou \;find / -name oujieli -exec rm -rf {} \;find 是一个查找的命令(1) / 查找的范围和位置 ==>范围(2) -name 根据名字来查找 ==>名称 zhongguohehuoren 是文件名 (3) -exec 执行后面的命令(4) cp 是复制的命令(5) {} 用来存放前面的find命令查找的结果。相当于一个容器,用来存放find找的结果(6) /zhou 是cp复制内容的目的地(7) \; 结束标志=====[root@teacher software_sx]# find . -size +100M -exec cp -r {} /feng \;[root@teacher software_sx]# find . -size +4k -exec cp -r {} /feng \;[root@teacher ~]# find / -name oujieli -exec rm -rf {} \;====[root@teacher lianxi]# find / -name zhongguohehuoren -ok rm -rf {} \; < rm ... /bin/zhongguohehuoren > ? y< rm ... /lianxi/zhongguohehuoren > ? y< rm ... /zhongguohehuoren > ? y[root@teacher lianxi]#-ok选项会提醒你是否要执行后面的删除命令====[root@teacher boot]# find /boot -size +1024k -o -name "vmlinuz*" |xargs ls -l====-a and 并且-o or 或者not ! 非===| 管道符号:将前面一个命令的输出送给后面一个命令作为输入xargs 是将前面命令的输出做为参数送给后面的命令使用-rw-r--r--. 1 root root 15034508 Mar 9 14:17 /boot/initramfs-2.6.32-279.el6.i686.img-rw-r--r-- 1 root root 15614654 Mar 27 09:41 /boot/initramfs-2.6.38.8.img-rw------- 1 root root 3704307 Mar 9 14:20 /boot/initrd-2.6.32-279.el6.i686kdump.img-rw-r--r--. 1 root root 1846041 Jun 14 2012 /boot/System.map-2.6.32-279.el6.i686-rw-r--r-- 1 root root 1878946 Mar 27 09:41 /boot/System.map-2.6.38.8lrwxrwxrwx 1 root root 22 Mar 27 09:41 /boot/vmlinuz -> /boot/vmlinuz-2.6.38.8-rwxr-xr-x. 1 root root 3857376 Jun 14 2012 /boot/vmlinuz-2.6.32-279.el6.i686-rw-r--r-- 1 root root 3726704 Mar 27 09:41 /boot/vmlinuz-2.6.38.8[root@teacher boot]#====[root@teacher lianxi]# find . ! -type d 查找当前目录下不是文件夹的文件(非目录)./zhoujunjie./.messages.swp./uuu./huojian./aa.txt./zhouxingchi./messages./bb.txt./hosts./tangtaotao[root@teacher lianxi]#-type 类型f (file) 普通文件d (directory) 目录(文件夹)c 字符设备(character)b 块设备 (block)l (link) 链接文件p 管道====(1)-mtime (modify time)修改时间 +5 5天之前 -5 5天内=====find /root -mtime -2 查找2天以内的文件在/root目录下==== 查找3个小时内的文件====(2)-mmin 根据分钟来查找find /lianxi -mmin -180[root@teacher lianxi]# find /lianxi -mtime -0.8 等于上面的效果/lianxi/lianxi/xiaotang====(1)atime (access)访问时间(2)ctime(change) 改变文件的属性(时间、大小、属主、属组等)(3)mtime (modify)修改过里面的内容====-user 根据用户来找[root@teacher lianxi]# useradd xiaochen 新建用户xiaochen[root@teacher lianxi]# su - xiaochen 切换用户到xiaochen登录系统 (switch user)[xiaochen@teacher ~]$ [xiaochen@station4 ~]$ mkdir bmw 新建文件夹bmw[xiaochen@station4 ~]$ ll总用量 8drwxrwxr-x 2 xiaochen xiaochen 4096 6月 5 19:49 bmwdrwxrwxr-x 2 xiaochen xiaochen 4096 6月 5 19:48 xiaozhou[xiaochen@station4 ~]$ exit 注销====查找出根目录下文件夹名字是bmw 文件属主(用户)是xiaochen ,再将此目录复制到/tmp下find / -type d -name bmw -user xiaochen[root@localhost ~]# find / -type d -name xiaoniu -user xiaochen -exec cp -r {} /tmp \;====十一.tar命令 用途:制作归档文件、释放归档文件格式:tar [选项]... 归档文件名 源文件或目录 tar [选项]... 归档文件名 [-C 目标目录]常用命令选项-c:创建 .tar 格式的包文件 -c, --create-x:解开.tar格式的包文件 -x, --extract,====> 解压打包文件 -xf-v:输出详细信息 -v, --verbose-f:表示使用归档文件 -f, --file-t:列表查看包内的文件 ====>查看打包文件里的内容 -tvf(verbose 显示详细信息) -tf -t, --list list the contents of an archive-p:保持原文件的原来属性 -p, --preserve-permissions-P:保持原文件的绝对路径 -P, --absolute-names don’t strip leading ‘/’s from file names-C :解压时指定路径,创建文件时不使用-C 而使用绝对路径。tar xf hosts-2.tar.bz2 -C /zhou-j --bzip2-z, --gzip====将当前目录下的xiaozhou打成压缩包叫xiaozhou.tar.gz[root@teacher lianxi]# tar czvf xiaozhou.tar.gz xiaozhou[root@teacher lianxi]# tar cjvf xiaozhou.tar.bz2 xiaozhouxiaozhou/xiaozhou/hosts[root@teacher lianxi]# lshosts meinv.xcf tcpdump.txt xiaozhoujubaopeng passwd tv xiaozhou.tar.bz2meinv.jpg passwd.zip xiaoliu xiaozhou.tar.gzmeinv.png shadow.bz2 xiaotang[root@teacher lianxi]# ====创建压缩包(1)-cjvf --->tar.bz2(2)-czvf --->tar.gz(3)-cJvf --->tar.xz====[root@teacher lianxi]# tar tvf xiaozhou.tar.gz 查看压缩文件里的内容drwxr-xr-x root/root 0 2013-06-05 21:14 xiaozhou/-rw-r--r-- root/root 206 2013-06-05 21:14 xiaozhou/hosts[root@teacher lianxi]#===[root@teacher tar]# cp /boot /var/log/ ./ -rf[root@teacher tar]# cp /etc/hosts /etc/passwd ./将/etc/hosts和/etc/passwd都复制当前目录下目的地只有一个,被复制的文件可以有很多个===-cjvf --->tar.bz2-czvf --->tar.gz-cJvf ---->tar.xz===-xf 是解压文件不论是.tar.gz 还是.tar.bz2都可以解压[root@teacher bak]# tar xf hosts-2.tar.bz2 -P-P 在创建tar包文件的时候使用,会保留文件的绝对路径,在解压的时候使用,会按照绝对路径去释放压缩包的内容,会替换原来的文件。====注意,尽量不使用-P选项====解压后替换原来存在的文件====[root@teacher bak]# tar xf hosts.tar.gz 默认情况下,解压文件,会解压到当前目录下====解压时指定路径使用-C创建压缩文件时不使用-C,使用绝对路径-C 指定解压路径[root@teacher bak]# tar xf hosts-2.tar.bz2 -C /zhoutar: Removing leading `/' from member names[root@teacher bak]# ls /zhoubak[root@teacher bak]#======include 包含====--exclude 不包含某个文件== 将/bak目录下的除/bak/bak目录以外的所有文件都备份到/zhou目录下叫no-bak.tar.gz==tar cjvf /zhou/no-bak.tar.gz /bak --exclude /bak/bak==排除多个文件的使用方法[root@station15 lianxi]# tar -czvf /bak/123.tar.gz /lianxi/* --exclude=/lianxi/{bak,boot}[root@teacher lianxi]# tar czvf /lianxi/bak123.tar.gz /bak/* --exclude=/bak/{boot,var,etc,jj_diandian.tar.gz}===