N22-第2周作业


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

(0)
N22_熊宝N22_熊宝
上一篇 2016-08-22
下一篇 2016-08-22

相关推荐

  • linux终端的类型与linux发展历史

    一、linux console的类型与说明 说明:        1 由于虚拟终端的实现,人们可以多用户多任务的在一台计算机操作系统上工作             2 在80或90年代的旧电脑上,人们只能用分屏这样的方法来实现多用户,多任务的工作  …

    Linux干货 2016-11-03
  • N25第五周 grep 和find 命令使用示例

    1、显示/boot/grub/grub.conf中以至少一个空白字符开头的行;    [root@localhost grub]# grep "^[[:space:]]\+.*" grub.conf    root (hd0,0)…

    Linux干货 2016-12-25
  • 作业–权限管理

    1、当用户wangcai对/testdir目录无写权限时,该目录下的只读文件file1是否可修改和删除? [root@liang testdir]# su wangcai [wangcai@liang testdir]$ ll -a 总用量 8 drwxr-xr-x. &nbsp…

    Linux干货 2016-08-05
  • do some test

    1、简述TCP三次握手四次挥手过程及各过程中客户端和服务器端的状态。     三次握手:         a(syn-send) -> send syn -> b(listen)         a(syn-send) <- receive …

    Linux干货 2016-06-12
  • 启动和内核管理

    启动和内核管理 :      CentOS 5和6的启动流程     服务管理     Grub管理     自制Linux     启动排错 &nb…

    Linux干货 2016-09-19
  • LVM创建实例及相关注释

    LVM创建    pv—>vg—->lv—->快照 创建前准备了四块1g硬盘分别为:sdb  sdc sdd  sde,并分别给四块盘划分了1G的空间,并指定了分区系统类型为8e(即Linux LVM) [root@localhost ~]# fdisk /dev/…

    Linux干货 2015-06-08

评论列表(1条)

  • 马哥教育
    马哥教育 2016-08-22 14:23

    写的很好,排版还可以在漂亮一点,加油,3大题第一个小题可以在简化一下,第2小题跟要求不一样