您的位置:首页 > 运维架构 > Linux

linux 比较重要的常用命令

2014-04-25 09:28 316 查看
一.mv命令
mv - move (rename) files
当后面接的文件存在的时候,就是移动
当后面接的文件不存在的时候,就是改名
移动命令相当于windows里的剪切
====
[root@teacher lianxi]# ls
wudang wulin xiang
[root@teacher lianxi]# mv xiang wulin/ 移动
[root@teacher lianxi]#

[root@teacher xiejiaming]# ls
aa wangwang
[root@teacher xiejiaming]# mv wangwang/ wangshuwen
将wangwang 改名为wangshuwen
[root@teacher xiejiaming]# ls
aa wangshuwen
[root@teacher xiejiaming]#
[root@teacher lianxi]# ls
hunan wulin xiaowudang
[root@teacher lianxi]# mv hunan xiang 将hunan改名为xiang
[root@teacher lianxi]# ls
wulin xiang xiaowudang
[root@teacher lianxi]#
[root@teacher lianxi]# ls
wulin xiang xiaowudang
[root@teacher lianxi]# mv xiang/ wulin/hunan 将xiang目录移动到wulin目录下改名为hunan (移动、粘贴、重命名)
[root@teacher lianxi]# ls
wulin 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]# ls
c del shaolin
[root@teacher lianxi]# del c
bash: del: command not found
[root@teacher lianxi]# ./del c 执行
[root@teacher lianxi]# ls
del 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]# ls
aa 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

衡阳 湖南
20
hengyang
tongxin
zhaozhifan
[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
123
123456
[root@teacher lijun]# cat 1.txt >2.txt 覆盖原来的内容
[root@teacher lijun]# cat 2.txt
123
123456
[root@teacher lijun]# cat 1.txt >>2.txt 追加
[root@teacher lijun]# cat 2.txt
123
123456
123
123456
[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 查看合并后的内容
彭州 重庆 垫江
====

123
123456
[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:查找外部命令,内部命令是找不到的。
whereis
locate:是在环境里找命令。
*which和whereis主要是用来查找命令,不能用来查找目录*
*locate可以用来查找文件和目录,但是需要updatedb命令更新下数据库*
文件查找的命令
which
whereis
locate
find 最难(* * * * *)
=====
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]# alias
alias 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=clear
clear是系统里的命令
cls是自己定义的
[root@teacher china_voice]# ls
hunantv jiangshutv passwd zhejiangtv
[root@teacher china_voice]# cc zhejiangtv/ 使用
[root@teacher china_voice]# ls
hunantv 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 functions

alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias c=clear ---》增加
alias mk=mkdir ---》增加
alias cls=clear ---》增加
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
[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 PATH
PATH=/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin
WINDOWPATH=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和NTFS
linux ---》ext4 (rhel6)
ext3 (rhel5)
iso9660 光盘文件系统
fat32 windows和linux都可以识别
===
===
[root@teacher lianxi]# cat /etc/issue
Red 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.8
lrwxrwxrwx 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
总用量 8
drwxrwxr-x 2 xiaochen xiaochen 4096 6月 5 19:49 bmw
drwxrwxr-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 xiaozhou
xiaozhou/
xiaozhou/hosts
[root@teacher lianxi]# ls
hosts meinv.xcf tcpdump.txt xiaozhou
jubaopeng passwd tv xiaozhou.tar.bz2
meinv.jpg passwd.zip xiaoliu xiaozhou.tar.gz
meinv.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 /zhou
tar: Removing leading `/' from member names
[root@teacher bak]# ls /zhou
bak
[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}
===
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux windows find mv tar