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

相关推荐

  • N22-love cat 博客作业 第3部分

    基于 heartbeat v2 crm 实现HA高可用性的 LAMP+wordpress 基本环境设置 OS   version:       CentOS release 6.7 (Final) Soft versio…

    Linux干货 2016-08-15
  • 第三周n28

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 who | cut -d ” ” -f 1 | sort -u 2、取出最后登录到当前系统的用户的相关信息。 who | tail -1 3、取出当前系统上被用户当作其默认shell的最多的那个shell。 cat /etc/passwd | …

    Linux干货 2017-12-17
  • 条件判断if、case与文件查找locate、find及相关练习

    一、条件选择 1、if:按条件执行脚本中的内容,可以使用嵌套结构,有单分支、双分支和多分支结构,每个条件中可以有不止一条语句,如果有多条语句,可以用and(-a)或or(-o)连接在一起,但不能使用&&或||: if COMMANDS; then     COMMANDS;   &n…

    Linux干货 2016-08-18
  • sed使用详解

    vim  ,sed 1.首先,sed作为一个流编译器,它是对文本进行处理的,它和grep虽然都是对文本进行处理的,但是sed的处理机制和grep还是有很大的不同的,grep:文本过滤(模式:pattern)工具;grep, egrep, fgrep(不支持正则表达式搜索)sed:stream editor,文本编辑工具;awk:Linux上的实现g…

    Linux干货 2016-08-11
  • Linux 第七天: (08月05日) 练习和作业

    Linux 第七天: (08月05日) 练习和作业       1 找出ifconfig命令结果中本机的所有IPv4地址 ifconfig | tr -cs '[0-9].''\n' | sort -ut '.' -k3 -n 或ifconfig | head -2 |…

    Linux干货 2016-08-08
  • Linux程序包管理

    软件包管理   API:Application Programming Interface POSIX:Portable OS                程序源代码–>预处理–…

    Linux干货 2016-08-29

评论列表(1条)

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

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