linux中的一些基础命令的使用(which,whereis,locate,find,alias,file,ls,cat,echo,tar,bzip2,gzip,history,mv,cp,rm)

时间:2022-06-11 10:20:49

which whereis locate find alias file ls cat echo
tar bzip2 gzip history mv cp rm

--------------------------------------------------------------------------------------------------------------------------------------------------
linux下的查找命令which,whereis,locate
which主要是用来查找命令的,而且只是在特定的目录下查找(PATH 变量指定的路径下)
[root@teacher lianxi]# which mkdir 查看mkdir命令所在的路径
/bin/mkdir
[root@teacher lianxi]# which alias 查看alias命令所在的路径
/usr/bin/which: no alias in (/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin)
[root@teacher lianxi]#
说明alias在上面路径下都不存在。同时也说明alias是一个内部命令,安装好bash这个软件就可以使用的,不需要再额外安装

[root@teacher bin]# locate mkdir 查看所有包含mkdir文件,都查找出来
根据每天更新的数据库进行查找
不能找到字节新建的文件但会找到已经删除的文件
手动更新数据库updatedb

whereis 查找命令的时候,也是在PATH变量的路径下查找.which查找的文件 必须有可执行权限的才能被which找到,若无可执行权限,就算在PATH变量的路径下,也查找不到。但是whereis可以找出来

[root@teacher vnc]# which mkdir 查看mkdir命令的路径
/bin/mkdir
[root@teacher vnc]# rpm -qf /bin/mkdir 查看/bin/mkdir文件是通过那个软件安装过来的
coreutils-8.4-19.el6.i686
[root@teacher vnc]#
[root@teacher vnc]# rpm -qf `which mkdir` 效果等于上面2条命令
coreutils-8.4-19.el6.i686
`` (反引号) 作用:优先执行里面的命令
-------------------------------------------------------------------------------------------------------------------------------------------------
find命令
用途:用于查找文件或目录
格式:find [查找范围] [查找条件] [动作]
常用查找条件
-name:按文件名称查找
-size: 按文件大小查找
-user: 按文件属主查找
-type: 按文件类型查找
-perm :按文件权限查找
-mtime :按文件更改时间查找

eg:[root@teacher lianxi]# find / -name zhongguohehuoren -exec cp {} /zhou \;
find 是一个查找的命令
/ 查找的范围和位置
-name 根据名字来查找
zhongguohehuoren 是文件名
-exec 执行后面的命令
cp 是复制的命令
{} 用来存放前面的find命令查找的结果。相当于一个容器,用来存放find找的结果
/zhou 是cp复制内容的目的地
\; 结束标志

[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 是将前面命令的输出做为参数送给后面的命令使用

[root@teacher lianxi]# find . ! -type d 查找当前目录下不是文件夹的文件(非目录)

find / -name vmlinuz* -a -type f -a -size +1M
-type 类型
f (file) 普通文件
d (directory) 目录(文件夹)
c 字符设备(character)
b 块设备 (block)
l (link) 链接文件
p 管道
-mtime (modify time)修改时间
+5 5天之前
-5 5天内
-mmin 根据分钟来查找
-user 根据用户来找

atime (access)访问时间
ctime(change) 改变文件的属性(时间、大小、属主、属组等)
mtime (modify)修改过里面的内容
-------------------------------------------------------------------------------------------------------------------------------------------------
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的效果,但是系统重新启动就没有作用了
[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 ---》增加
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
[root@teacher china_voice]#

-------------------------------------------------------------------------------------------------------------------------------------------------
file命令
用途:查看文件类型
- 普通文件
d 目录 (directory)
l 链接文件(link)
c 字符文件 (charecter)
b 块设备文件(block)

-------------------------------------------------------------------------------------------------------------------------------------------------
ls (list)
-l use a long listing format 以长格式显示(详细的信息显示)

ls -d
-d, --directory 显示目录本身的信息,不显示目录里的内容
ls -a
-a, --all 所有的文件(包括隐藏文件)
ls -R
-R, --recursive 递归显示
list subdirectories recursively
ls -h 以人类能够读的懂的方式显示(K M G T P E)
-h, --human-readable

ls -lh 不能查看目录总的大小
du -sh 可以查看目录总的大小
但查看文件时效果一样

在当前目录下创建一个叫tv的链接文件指向/hunantv目录
[root@teacher lianxi]# ln -s /hunantv tv
ln (link)
[root@teacher lianxi]# ll tv 链接文件
lrwxrwxrwx 1 root root 8 Jun 5 20:38 tv -> /hunantv
[root@teacher lianxi]# cd tv 进入链接文件,其实是进入到来链接目录里
[root@teacher tv]# pwd 查看路径
/lianxi/tv
[root@teacher tv]# pwd -P 查看真正的路径
/hunantv
------------------------------------------------------------------------------------------------------------------------------------------------
cat 查看文件里的内容
[root@teacher lianxi]# cat -n aa.txt 显示行号
[root@teacher lianxi]# cat aa.txt hosts 将2个文件里的内容合并到屏幕上输出
[root@teacher lianxi]# cat aa.txt >>bb.txt 查看aa.txt文件里的内容,然后重新定向到bb.txt文件,如果bb.txt文件不存在,则自动建立
>> 输出重定向(追加) 作用:把本来应该在屏幕上显示的内容,输出到别的地方
> 输出重定向(覆盖原来的内容)
------------------------------------------------------------------------------------------------------------------------------------------------
echo
[root@teacher lianxi]# echo $PATH
echo 是一个在屏幕输出内容的命令
$PATH 是引用一个变量的值
PATH是一个变量名
/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin
PATH变量的值都是系统里存放命令的路径.中间使用:冒号隔开
[root@teacher lianxi]# meinv=diaochan 定义了一个变量叫meinv,她的值为diaochan
[root@teacher lianxi]# echo $shuaige he $meinv
xiaozhou he diaochan
------------------------------------------------------------------------------------------------------------------------------------------------
history
[root@localhost lianxi]# history 查看历史记录,保留最近1000条命令
[root@localhost lianxi]# !1075 执行第1075条命令
touch -d "2014-5-23 19:30:30" qq.exe
[root@localhost lianxi]# !chown 执行最近以chown开头的命令
chown xiaochen:zhou qq.exe
-----------------------------------------------------------------------------------------------------------------------------------------------
压缩命令
创建压缩文件的意义:节约空间,备份数据
windows里的zip、rar
zip
unzip
[root@teacher lianxi]# zip passwd.zip passwd 将passwd文件打成passwd.zip压缩包
adding: passwd (deflated 70%)
[root@teacher lianxi]# unzip passwd.zip 解压缩passwd.zip

[root@teacher lianxi]# gzip -9 shadow 压缩shadow文件,直接在原来的文件上进行,打包后的文件会多一个.gz的文件名
[root@teacher lianxi]# zcat shadow.gz 查看压缩后文件里内容
[root@teacher lianxi]# gzip -d shadow.gz 解压压缩文件
[root@teacher lianxi]# gunzip lulu.gz 解压压缩文件
gzip --》.gz bzip2 --》.bz2
zcat查看.gz压缩包里的内容 bzcat查看.bz2压缩包里的内容

tar命令
用途:制作归档文件、释放归档文件
格式:tar [选项]... 归档文件名 源文件或目录
tar [选项]... 归档文件名 [-C 目标目录]
常用命令选项
-c:创建 .tar 格式的包文件 -c, --create
-x:解开.tar格式的包文件 -x, --extract,
-v:输出详细信息 -v, --verbose
-f:表示使用归档文件 -f, --file
-t:列表查看包内的文件
-t, --list
list the contents of an archive
-p:保持原文件的原来属性
-p, --preserve-permissions
-P:保持原文件的绝对路径
-P, --absolute-names
don’t strip leading ‘/’s from file
names

-j --bzip2 创建压缩包: -cjvf --->tar.bz2
-z, --gzip -czvf --->tar.gz

将当前目录下的xiaozhou打成压缩包叫xiaozhou.tar.gz
[root@teacher lianxi]# tar czvf xiaozhou.tar.gz xiaozhou
[root@teacher lianxi]# tar cjvf xiaozhou.tar.bz2 xiaozhou
查看压缩文件里的内容
[root@teacher lianxi]# tar tvf xiaozhou.tar.gz

-tx 是解压文件
不论是.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

------------------------------------------------------------------------------------------------------------------------------------------------
cp命令
用途:复制(Copy)文件或目录
格式:cp [选项]... 源文件或目录… 目标文件或目录
-r:递归复制整个目录树
-a: 复制时保留链接、文件属性,并递归地复制目录
[root@teacher tar]# cp /etc/hosts /etc/passwd ./
将/etc/hosts和/etc/passwd都复制当前目录下
目的地只有一个,被复制的文件可以有很多个
------------------------------------------------------------------------------------------------------------------------------------------------
mv命令
用途:移动(Move)文件(剪切)或目录和重命名
mv - move (rename) files
—— 若如果目标位置与源位置相同,则相当于改名
格式:mv [选项]... 源文件或目录… 目标文件或目录
[root@localhost lianxi]# mv hunan/ /uuu/
[root@localhost lianxi]# ls
a wudangshan
[root@localhost lianxi]# ls /uuu/
hunan
[root@localhost lianxi]#
[root@localhost lianxi]# mv wudangshan/ hubei-wudang 重命名
[root@localhost lianxi]# ls
a hubei-wudang
[root@localhost lianxi]#
当后面接的文件和目录存在的时候,就是移动。但是文件夹不能移动到文件里
当后面接的文件和目录不存在的时候,就是重命名
------------------------------------------------------------------------------------------------------------------------------------------------
more命令
用途:全屏方式分页显示文件内容
交互操作方法:
按Enter键向下逐行滚动
按空格键向下翻一屏、按b键向上翻一屏
按q键退出
less命令
用途:与more命令相同,但扩展功能更多
交互操作方法:
与more命令基本类似,但个别操作会有些出入
【page down】【page up】上翻下翻页
head命令
用途:查看文件开头的一部分内容(默认为10行)
格式:head -n 文件名
tail命令
用途:查看文件结尾的少部分内容(默认为10行)
格式:tail -n 文件名
[root@teacher lianxi]# tail -2 hosts 显示尾2行
tail -f 动态的监测某个文件的变化

tail命令高级用法
格式:tail -n 数字 文件名
数字:数字前有 +(加号),从文件开头指定的单元 数开始输出;数字前有 -(减号),从文件末尾指定的单元 数开始输出;没有 +或 -,从文件末尾指定的单元 数开始输出。
例如:
tail -n +3 /etc/passwd 从第三行开始显示
tail -n -3 /etc/passwd 显示最后三行
head -n -3 /etc/passwd 不显示最后三行
head -n +3 /etc/passwd 显示前三行

[root@teacher lianxi]# cat -n hosts|head -3|tail -1 显示第3行的内容
3 10.0.0.253 teacher.sxkeji.com teacher
[root@teacher lianxi]# cat -n hosts |head -4|tail -2显示第3,4行内容
3 10.0.0.253 teacher.sxkeji.com teacher
4 zhou jun jie

------------------------------------------------------------------------------------------------------------------------------------------------
rm 删除文件和目录
rm - remove files or directories

-f, --force 强制删除
-r, -R, --recursive 递归删除
remove directories and their contents
recursively
-i prompt before every removal 删除任何文件前进行提醒