1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示
cd、pwd、ls、alias、cat、more、less、tail、cut、wc、touch、mv、cp、rm
pwd:用户当前所在目录
[xuc@localhost ~]$ pwd /home/xuc
cd:切换目录
cd [/PATH/TO/SOMEDIR]:切换至某一个文件目录
[root@localhost ~]# cd / //切换到根目录 [root@localhost /]# ls //查看根目录所有文件 bin dev home lib64 media opt root sbin sys usr boot etc lib lost+found mnt proc run srv tmp var [root@localhost /]# cd /dev //切换到dev目录下 [root@localhost dev]#
cd ~:切换到家目录下
[root@localhost dev]# [root@localhost dev]# cd ~ [root@localhost ~]# pwd /root [root@localhost ~]# su xuc [xuc@localhost root]$ cd ~ [xuc@localhost ~]$ pwd /home/xuc
cd -:前后两次目录之间切换
[root@localhost ~]# cd /etc/ [root@localhost etc]# cd - /root [root@localhost ~]# cd - /etc [root@localhost etc]#
echo $PWD:回显当前目录
[root@localhost etc]# echo $PWD /etc
ls:list查看目录下所有文件
ls -a:显示隐藏文件
[root@localhost etc]# ls -a . fcoe mail.rc rpm .. festival makedumpfile.conf.sample rsyncd.conf abrt filesystems man_db.conf rsyslog.conf adjtime firewalld maven rsyslog.d aliases fonts mke2fs.conf rwtab aliases.db fprintd.conf modprobe.d rwtab.d
ls -l:显示文件详细信息,文件名、类型、大小、权限、属主属组、修改时间、硬连接数
[root@localhost etc]# ls -l total 1884 drwxr-xr-x. 3 root root 4096 Aug 3 17:50 abrt -rw-r--r--. 1 root root 16 Aug 3 18:28 adjtime -rw-r--r--. 1 root root 1518 Jun 7 2013 aliases -rw-r--r--. 1 root root 12288 Aug 3 09:30 aliases.db drwxr-xr-x. 2 root root 4096 Aug 3 17:52 alsa drwxr-xr-x. 2 root root 4096 Aug 3 18:04 alternatives -rw-------. 1 root root 541 Jul 27 2015 anacrontab -rw-r--r--. 1 root root 55 Mar 5 2015 asound.conf -rw-r--r--. 1 root root 1 Nov 19 2015 at.deny
ls -d:查看目录自身而非其内部的文件列表
[root@localhost var]# ls -d
ls -r:逆序显示
[root@localhost ~]# ls anaconda-ks.cfg Documents initial-setup-ks.cfg Pictures Templates Desktop Downloads Music Public Videos [root@localhost ~]# ls -r Videos Public Music Downloads Desktop Templates Pictures initial-setup-ks.cfg Documents anaconda-ks.cfg
ls -R:文件递归显示,显示文件目录及目录内容
[root@localhost ~]# ls -R .: anaconda-ks.cfg Documents initial-setup-ks.cfg Pictures Templates Desktop Downloads Music Public Videos ./Desktop: ./Documents: ./Downloads: ./Music: ./Pictures: ./Public: ./Templates: ./Videos:
alias:定义别名,相当于快捷命令
[root@localhost ~]# alias alias cp='cp -i' alias egrep='egrep --color=auto' alias fgrep='fgrep --color=auto' alias grep='grep --color=auto' 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'
cat:concatenate文本文件查看器
-n:给显示的文本行统一编号
[root@localhost ~]# cat /tmp/test2 #!/bin/bash useradd o useradd p useradd q id -u o >>a.txt id -u p >>a.txt id -u q >>a.txt sum=0 while read LINE do ((sum+=$LINE)) > /dev/null 2>&1 done < a.txt echo $sum [root@localhost ~]# cat -n /tmp/test2 1 #!/bin/bash 2 useradd o 3 useradd p 4 useradd q 5 id -u o >>a.txt 6 id -u p >>a.txt 7 id -u q >>a.txt 8 9 sum=0 10 11 while read LINE 12 do 13 14 15 ((sum+=$LINE)) > /dev/null 2>&1 16 17 done < a.txt 18 19 echo $sum
tac, head, tail, more, less:性质和cat命令相同,都是查看文本文件内容
tac:倒序显示文本内容
head -n:查看文本前n行
tail -n:查看文本后n行
more:翻屏至文件尾部后自动退出
less:与more类似,不会自动退出,随意产看文本文件内容
wc:文字统计
-l:显示文本文件有多少行
-w:有多少个单词
-c:有多少个字节
[root@localhost tmp]# wc -c functions 13948 functions [root@localhost tmp]# wc -w functions 2030 functions [root@localhost tmp]# wc -c functions 13948 functions
cut:文件中每一行的内容截取掉
-d:‘ ‘以什么字符分割
-f:#显示分隔后的第几个字符(从1开始算)
[root@localhost tmp]# wc -l functions |cut -d' ' -f2 functions
touch:创建文件
rm:移除文件
-i:交互式,提示用户是否删除文件(默认alias rm='rm -i')
[root@localhost tmp]# rm test4 rm: remove regular empty file ‘test4’? y [root@localhost tmp]#
-f:强制移除,无交互式提示
-r:递归,删除目录下所有文件
mv:移动文件所在目录
[root@localhost /]# ls bin dev home lib64 media opt root sbin sys usr boot etc lib lost+found mnt proc run srv tmp var [root@localhost /]# mv /tmp/test / [root@localhost /]# ls bin dev home lib64 media opt root sbin sys tmp var boot etc lib lost+found mnt proc run srv test usr
cp:复制文件
-i:交互式复制,即覆盖之前提醒用户确认;
-f:强制覆盖目标文件;
-r, -R:递归复制目录;
-d:复制符号链接文件本身,而非其指向的源文件;
-a:-dR –preserve=all, archive,用于实现归档;
[root@localhost /]# cp /etc/grub2.cfg /tmp/ cp: overwrite ‘/tmp/grub2.cfg’? y [root@localhost /]# cp -r /etc/grub2.cfg /tmp/
2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示
bash的工作特性有很多:命令别名、命令状态返回值、引用、快捷键、路径和命令补全、命令行展开、glob特性、变量、I/O重定向和管道等等
命令执行状态返回值:0表示成功,1~255表示失败
[root@localhost /]# echo "hello world" hello world [root@localhost /]# echo $? //返回上一条执行结果状态成功与否 0 [root@localhost /]# echo $PATH //当前用户shell所在路径 /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin [root@localhost /]#
把命令行的给定的特殊符号自动替换为相应字符串的机制;
~: 自动替换为用户家目录;
~USERNAME:自动替换为指定用户的家目录;
{}:可承载一个以逗号分隔的路径列表,能够将其展开为多个独立路径
[root@localhost ~]# cd /etc/ [root@localhost etc]# cd ~ [root@localhost ~]#
3、请使用命令行展开功能来完成以下练习:
(1)创建/tmp目录下的:a_c,a_d,b_c,b_d
(2)创建/tmp/mylinux目录下的:mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}}
[root@localhost ~]# [root@localhost ~]# mkdir -pv /tmp/{a_c,a_d,b_c,b_d} mkdir: created directory ‘/tmp/a_c’ mkdir: created directory ‘/tmp/a_d’ mkdir: created directory ‘/tmp/b_c’ mkdir: created directory ‘/tmp/b_d’ [root@localhost ~]# ls /tmp/ a= a_c a_d a.txt b= b_c b_d c= [root@localhost ~]# mkdir -pv /tmp/mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}}
4、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息
文件元数据包括:文件大小、权限、属主属组、时间戳 、数据块指针
以上顾名思义,这里解释数据块指针,我们都知道数据存储在硬盘上,存放是以块存放,为了便于存储和查找我们对每个块进行编号,数据指针就是指向这些数据块编号的内容
[root@localhost ~]# ls -i //查看inode 1577704 anaconda-ks.cfg 1577726 Downloads 1577720 mylinux 1577727 Templates 1577725 Desktop 1577714 initial-setup-ks.cfg 1577731 Pictures 1577732 Videos 1577729 Documents 1577730 Music 1577728 Public
文件时间戳分为:access time、modifytime、changetime
touch命令可以改动时间戳
-c: 指定的文件路径不存在时不予创建;
-a: 仅修改access time;
-m:仅修改modify time;
5、如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?
~]# alias NAME='COMMAND' //定义别名方法
[root@localhost ~]# alias alias cp='cp -i' alias egrep='egrep --color=auto' alias fgrep='fgrep --color=auto' alias grep='grep --color=auto' 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@localhost ~]# alias rm='rm -f' [root@localhost ~]# alias alias cp='cp -i' alias egrep='egrep --color=auto' alias fgrep='fgrep --color=auto' alias grep='grep --color=auto' alias l.='ls -d .* --color=auto' alias ll='ls -l --color=auto' alias ls='ls --color=auto' alias mv='mv -i' alias rm='rm -f' //强制 alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
echo $?:引用上一条命令的执行结果
[root@localhost ~]# echo $? 0 [root@localhost ~]# lsa bash: lsa: command not found... [root@localhost ~]# echo $? 127
6、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其他字符)的文件或目录
[root@localhost ~]# ls -d /var/l*[0-9]*[a-z] /var/labc4abcq
7、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录
[root@localhost ~]# ls -d /etc/[0-9]*[^0-9] /etc/9abcdefg /etc/9abcdefg-
8、显示/etc目录下,以非字母开头,后面跟了一个字母以及其他任意长度任意字符的文件或目录
[root@localhost ~]# ls -d /etc/[[:alpha:]][[:alpha:]]* /etc/abrt /etc/gss /etc/profile /etc/adjtime /etc/gssproxy /etc/profile.d /etc/aliases /etc/hba.conf /etc/protocols /etc/aliases.db /etc/host.conf /etc/pulse ...
9、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22
[root@localhost tmp]# touch tfile-`date +"%Y-%m-%d-%H-%M-%S"` [root@localhost tmp]# ls tfile* tfile- tfile-2016-08-21-05-20-45
10、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中
[root@localhost ~]# mkdir /tmp/mytest1 [root@localhost ~]# cp -a /etc/p*[^0-9] /tmp/mytest1 [root@localhost ~]# ls /tmp/mytest1/ pam.d pbm2ppa.conf plymouth popt.d prelink.conf.d profile.d purple passwd pinforc pm postfix printcap protocols python passwd- pki pnm2ppa.conf ppp profile pulse
11、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中
[root@localhost ~]# cp -a /etc/*.d /tmp/mytest2 [root@localhost ~]# ls /tmp/mytest2 auto.master.d dracut.conf.d logrotate.d profile.d rc.d sysctl.d bash_completion.d exports.d modprobe.d rc0.d request-key.d tmpfiles.d binfmt.d gdbinit.d modules-load.d rc1.d rsyslog.d usb_modeswitch.d cgconfig.d grub.d my.cnf.d rc2.d rwtab.d xinetd.d chkconfig.d init.d oddjobd.conf.d rc3.d sane.d yum.repos.d cron.d ipsec.d pam.d rc4.d setuptool.d depmod.d ld.so.conf.d popt.d rc5.d statetab.d dnsmasq.d libibverbs.d prelink.conf.d rc6.d sudoers.d
12、复制/etc目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中
[root@localhost ~]# mkdir /tmp/mytest3 [root@localhost ~]# cp /etc/[lmn]*.conf /tmp/mytest3 [root@localhost ~]# ls /tmp/mytest3 ld.so.conf libuser.conf logrotate.conf mke2fs.conf nfsmount.conf ntp.conf libaudit.conf locale.conf man_db.conf mtools.conf nsswitch.conf numad.conf
原创文章,作者:N22_熊宝,如若转载,请注明出处:http://www.178linux.com/38268
评论列表(1条)
写的很好,排版还可以在漂亮一点,加油,3大题第一个小题可以在简化一下,第2小题跟要求不一样