一、Linux常用管理命令
1、cp命令:复制
cp 源文件 目标文件
[root@localhost ~]# cp /etc/fstab /tmp cp: overwrite ‘/tmp/fstab’? y
如果目标文件中存在同名的文件,将会提示你是否覆盖,按下“y”键则覆盖。
[root@localhost ~]# cp /etc/vimrc /etc/fstab /etc/exports /tmp/
此命令为复制多个文件到指定目录,其中/tmp/为目标文件
[root@localhost ~]# cp -r /etc/ /tmp/cc/
此命令为递归复制,意思就是讲/etc/目录下的所有文件,以及子目录里的文件全部复制到/tmp/cc/ 目录之下。
命令一:lrwxrwxrwx. 1 root root 14 Dec 22 18:01 system-release -> centos-release 命令二:[root@localhost ~]# cp /etc/system-release /tmp/aa/ 命令三:[root@localhost ~]# ls -l /tmp/aa/ -rw-r--r--. 1 root root 38 Jan 6 07:20 system-release
此命令为复制符号链接所指向的源文件到目录/tmp/aa目录下,通过命令三查看system-release的属性前面没有标注l(l代表此文件为软连接)
命令一:[root@localhost ~]# cp -d /etc/system-release /tmp/aa/ 命令二:[root@localhost ~]# ll /tmp/aa/ total 0 lrwxrwxrwx. 1 root root 14 Jan 6 07:22 system-release -> centos-release
此命令为复制符号链接,而非文件的本身,通过命令二查看,此文件属性前有l参数,并且文件名字后面有指向源文件的符号标识"->"
2、mv命令:移动命令
mv 源文件 目标文件
[root@localhost ~]# mv aaa /tmp/
将文件aaa移动到/tmp目录下,此时工作目录中已经没有aaa这个文件
命令一:[root@localhost ~]# mv aaa /tmp/ mv: overwrite ‘/tmp/aaa’? 命令二:[root@localhost ~]# mv aaa -f /tmp/
当目标文件中存在与源文件相同的文件名时,会提示是否覆盖该文件,如命令一所示;此时,如果在命令中加上-f参数则不会提示是否覆盖而是直接覆盖,如命令二所示。
3、rm命令:删除命令
rm 路径名/文件名
rm后接路径名可直接删除该文件,删除时会提示你是否删除,加上-f参数则不会提示,加上-rf参数则会删除该目录下所有文件以及子目录所有的文件。
二、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。
1、bash的基础特性之:命令行展开
~:自动展开为用户的家目录,或指定用户的目录;
命令一: [root@localhost tmp]# ~ -bash: /root: Is a directory 命令二:[user1@localhost tmp]$ ~ -bash: /home/user1: Is a directory
命令一展示的为root用户的家目录:/root;命令二展示的为user1用户的家目录:/home/user1
{}:可承载一个以都好为分隔符的路径列表,并能够将其展开为多个路径;
例如:/tmp/{a,b} 相当于/tmp/a /tmp/b
root@localhost tmp]# ls -l /tmp/{aaa,bbb} /tmp/aaa: total 0 /tmp/bbb: total 0
此命令分别列出了/tmp/aaa目录和/tmp/bbb目录下的信息。
2、bash的基础特性:命令的执行状态结果
命令执行的状态结果:
bash通过状态返回值来输出此结果;
成功:0
失败:1-255
命令执行完成之后,其状态返回值保存于bash的特殊变量$?中;
命令正常执行时,有的还会有命令返回值,根据命令及其功能不同,结果各不相同;
命令一:[root@localhost tmp]# touch 111 [root@localhost tmp]# echo $? 0 命令二:[root@localhost tmp]# ls 222 ls: cannot access 222: No such file or directory [root@localhost tmp]# echo $? 2 命令三: [root@localhost tmp]# cp 222 cp: missing destination file operand after ‘222’ Try 'cp --help' for more information. [root@localhost tmp]# echo $? 1
命令一为正常执行,返回值为0.命令二和命令三为执行错误,返回值分别为2和1.
三、请使用命令行展开功能来完成以下练习:
(1)创建/tmp目录下的:a_c, a_d, b_c, b_d
[root@localhost tmp]# touch {a_,b_}{c,d} [root@localhost tmp]# ls -l total 0 -rw-r--r--. 1 root root 0 Jan 6 07:58 a_c -rw-r--r--. 1 root root 0 Jan 6 07:58 a_d -rw-r--r--. 1 root root 0 Jan 6 07:58 b_c -rw-r--r--. 1 root root 0 Jan 6 07:58 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 tmp]# 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}} 命令二: root@localhost tmp]# tree /tmp/ /tmp/ └── mylinux ├── bin ├── boot │ └── grub ├── dev ├── etc │ ├── rc.d │ │ └── init.d │ └── sysconfig │ └── network-scripts ├── lib │ └── modules ├── lib64 ├── proc ├── sbin ├── sys ├── tmp ├── usr │ ├── bin │ ├── local │ └── sbin └── var ├── lock ├── log └── run 25 directories, 0 files
命令一为建造目录的命令,命令二为测试输出的结果。
四:文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。
任何文件系统中的数据分为数据和元数据。数据是指普通文件中的实际数据,而元数据指用来描述一个文件的特征的系统数据,诸如访问权限、文件拥有者以及文件数据块的分布信息(inode…)等等。在集群文件系统中,分布信息包括文件在磁盘上的位置以及磁盘在集群中的位置。用户需要操作一个文件必须首先得到它的元数据,才能定位到文件的位置并且得到文件的内容或相关属性。
[root@localhost tmp]# stat aaa File: ‘aaa’ Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: fd00h/64768d Inode: 137 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Context: unconfined_u:object_r:user_tmp_t:s0 Access: 2017-01-06 08:13:50.820953499 -0500 Modify: 2017-01-06 08:13:50.820953499 -0500 Change: 2017-01-06 08:13:50.820953499 -0500 Birth: -
根据stat命令来查看元数据信息;
[root@localhost tmp]# touch -at 1011142221 aaa [root@localhost tmp]# stat aaa File: ‘aaa’ Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: fd00h/64768d Inode: 137 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Context: unconfined_u:object_r:user_tmp_t:s0 Access: 2010-11-14 22:21:00.000000000 -0500 Modify: 2017-01-06 08:34:02.258938821 -0500 Change: 2017-01-06 08:46:13.858929957 -0500 Birth: -
仅修改aaa文件访时间戳的访问时间为10年14号22点21
[root@localhost tmp]# touch -mt 1411142221 aaa [root@localhost tmp]# stat aaa File: ‘aaa’ Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: fd00h/64768d Inode: 137 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root) Context: unconfined_u:object_r:user_tmp_t:s0 Access: 2010-11-14 22:21:00.000000000 -0500 Modify: 2014-11-14 22:21:00.000000000 -0500 Change: 2017-01-06 08:47:58.272928692 -0500 Birth: -
仅修改aaa文件的最近改动时间为2014年11月14日22点21分
五、如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?
1、定义命令的别名
alias 别名='命令'
[root@localhost tmp]# alias mm='rm /tmp/*' [root@localhost tmp]# ls /tmp/ 0811142234.50 101142234 12:11 22:21:48 bbb mylinux 0911142234.50 11 2016-12-24 aaa ddd oct [root@localhost tmp]# mm rm: remove regular empty file ‘/tmp/0811142234.50’? y rm: remove regular empty file ‘/tmp/0911142234.50’? y rm: remove regular empty file ‘/tmp/101142234’? y rm: remove regular empty file ‘/tmp/11’? y rm: remove regular empty file ‘/tmp/12:11’? y rm: remove regular empty file ‘/tmp/2016-12-24’? y rm: remove regular empty file ‘/tmp/22:21:48’? y rm: remove regular empty file ‘/tmp/aaa’? y rm: remove regular empty file ‘/tmp/bbb’? y rm: remove regular empty file ‘/tmp/ddd’? y rm: cannot remove ‘/tmp/mylinux’: Is a directory rm: remove regular empty file ‘/tmp/oct’? y
定义mm为命令'rm /tmp/*'命令的别名,执行mm命令时等于执行'rm /tmp/*'命令
2、通过`命令`能引用命令执行的结果
[root@localhost tmp]# echo `cat /etc/fstab` # # /etc/fstab # Created by anaconda on Thu Dec 22 18:00:27 2016 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # /dev/mapper/centos-root / xfs defaults 0 0 UUID=7ee15b3b-c6b1-4fb6-88d4-442348105d29 /boot xfs defaults 0 0 /dev/mapper/centos-home /home xfs defaults 0 0 /dev/mapper/centos-swap swap swap defaults 0 0 /dev/sdb1 /mydata ext4 noatime,noexec 0 0
此命令为在屏幕输出'cat /etc/fstab'的执行结果
六、var目录下以l开头,中间有数字,小写字母结尾的文件或目录
[root@localhost tmp]# ls -ld /var/l*[1-9]*[a-z] -rw-r--r--. 1 root root 0 Jan 6 09:22 /var/l123aafa -rw-r--r--. 1 root root 0 Jan 6 09:16 /var/l2a
七、/etc目录下以任意数字开头,非数字结尾的目录或文件
[root@localhost tmp]# ls -ld /etc/[1-9]*[![:digit:]] -rw-r--r--. 1 root root 0 Dec 26 02:25 /etc/123a
八、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。
[root@localhost tmp]# ls -ld /etc/[^[:alpha:]][:alpha:]* -rw-r--r--. 1 root root 0 Jan 6 09:42 /etc/1a555
九、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。
[root@localhost tmp]# touch tfile-`date +%F-%H-%M-%S` [root@localhost tmp]# ls -l /tmp total 0 -rw-r--r--. 1 root root 0 Jan 6 09:49 tfile-2017-01-06-09-49-37
十、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
[root@localhost tmp]# cp -rd /etc/p*[^[:digit:]] /tmp/mytest1/ [root@localhost tmp]# ls -l /tmp/mytest1/ total 56 drwxr-xr-x. 2 root root 4096 Jan 6 09:57 pam.d -rw-r--r--. 1 root root 3450 Jan 6 09:57 passwd -rw-r--r--. 1 root root 3407 Jan 6 09:57 passwd- -rw-r--r--. 1 root root 1362 Jan 6 09:57 pbm2ppa.conf -rw-r--r--. 1 root root 2872 Jan 6 09:57 pinforc drwxr-xr-x. 9 root root 91 Jan 6 09:57 pki drwxr-xr-x. 2 root root 27 Jan 6 09:57 plymouth drwxr-xr-x. 5 root root 49 Jan 6 09:57 pm -rw-r--r--. 1 root root 6300 Jan 6 09:57 pnm2ppa.conf drwxr-xr-x. 2 root root 6 Jan 6 09:57 popt.d drwxr-xr-x. 2 root root 4096 Jan 6 09:57 postfix drwxr-xr-x. 3 root root 4096 Jan 6 09:57 ppp drwxr-xr-x. 2 root root 101 Jan 6 09:57 prelink.conf.d -rw-r--r--. 1 root root 233 Jan 6 09:57 printcap -rw-r--r--. 1 root root 1750 Jan 6 09:57 profile drwxr-xr-x. 2 root root 4096 Jan 6 09:57 profile.d -rw-r--r--. 1 root root 6545 Jan 6 09:57 protocols drwxr-xr-x. 2 root root 75 Jan 6 09:57 pulse drwxr-xr-x. 2 root root 22 Jan 6 09:57 purple drwxr-xr-x. 2 root root 34 Jan 6 09:57 python
十一、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。
[root@localhost tmp]# cp -rf /etc/*.d /tmp/mytest2/ [root@localhost tmp]# 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
十二、复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。
[root@localhost tmp]# 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
原创文章,作者:lafengjinzi,如若转载,请注明出处:http://www.178linux.com/66020
评论列表(1条)
非常的棒,继续加油。