1.Linux文件管理类命令
命令 | 功能 | 命令 | 功能 |
---|---|---|---|
pwd | 显示当前目录 | ls | 显示目录下的内容 |
cd | 改变所在目录 | cat | 显示文件的内容 |
grep | 在文件中查找字符串 | cp | 复制文件 |
touch | 创建文件 | mv | 移动文件 |
rm | 删除文件 | rmdir | 删除目录 |
1.1 pwd命令 该命令的英文解释为print working directory(打印工作目录)。输入pwd命令,Linux会输出当前目录。 1.2 cd命令 cd命令用来改变所在目录。 cd / 转到根目录中 cd ~ 转到/home/user用户目录下 cd /usr 转到根目录下的usr目录中-------------绝对路径 cd test 转到当前目录下的test子目录中-------相对路径 1.3 ls命令
ls选项 | 含义 |
---|---|
-a | 列举目录中的全部文件,包括隐藏文件 |
-l | 列举目录中的细节,包括权限、所有者、组群、大小、创建日期、文件是否是链接等 |
-f | 列举的文件显示文件类型 |
-r | 逆向,从后向前地列举目录中内容 |
-R | 递归,该选项递归地列举当前目录下所有子目录内的内容 |
-s | 大小,按文件大小排序 |
-h | 以人类可读的方式显示文件的大小,如用K、M、G作单位 |
ls -l examples.doc | 列举文件examples.doc的所有信息 |
1.4 cat命令 cat命令可以用来合并文件,也可以用来在屏幕上显示整个文件的内容。 cat snow.txt 该命令显示文件snow.txt的内容,ctrl+D退出cat。 1.5 grep命令 grep命令的最大功能是在一堆文件中查找一个特定的字符串。 grep money test.txt 以上命令在test.txt中查找money这个字符串,grep查找是区分大小写的。 1.6 touch命令 touch命令用来创建新文件,他可以创建一个空白的文件,可以在其中添加文本和数据。 touch newfile 该命令创建一个名为newfile的空白文件。 1.7 cp命令 cp命令用来拷贝文件,要复制文件,输入命令: cp <source filename> <target filename> cp t.txt Document/t 该命令将把文件t.txt复制到Document目录下,并命名为t。
cp选项 | 含义 |
---|---|
-i | 互动:如果文件将覆盖目标中的文件,他会提示确认 |
-r | 递归:这个选项会复制整个目录树、子目录以及其他 |
-v | 详细:显示文件的复制进度 |
1.8 mv命令 mv命令用来移动文件。
mv选项 | 说明 |
---|---|
-i | 互动:如果选择的文件会覆盖目标中的文件,他会提示确认 |
-f | 强制:它会超越互动模式,不提示地移动文件,属于很危险的选项 |
-v | 详细:显示文件的移动进度 |
mv t.txt Document 把文件t.txt 移动到目录Document中。 1.9 rm命令 rm命令用来删除文件。
rm选项 | 说明 |
---|---|
-i | 互动:提示确认删除 |
-f | 强制:代替互动模式,不提示确认删除 |
-v | 详细:显示文件的删除进度 |
-r | 递归:将删除某个目录以及其中所有的文件和子目录 |
rm t.txt 该命令删除文件t.txt
1.10 rmdir命令
rmdir命令用来删除目录。
2.bash的工作特性,相关示例
2.1.bash特性之一:命令别名
#alias NAME='COMMAND'
2.2.bash的特性之二:命令历史
命令语法格式: history [-c] [-d OFFSET] [n] history -anrw [FILENAME] history -ps VALUE [VALUE…] 常用参数 -c: 清空命令历史; -d offset(偏移量):删除指定命令历史,offset为history显示出来的命令数字; -r: 从文件读取命令历史至历史列表中; -w:把历史列表中的命令追加至历史文件中; history #:显示最近的#条命令;
2.3.bash特性之三:快捷键
Ctrl+a:跳转至命令行行首; Ctrl+e:跳转至命令行行尾; Ctrl+u:删除行首至光标所在处之间的所有字符; Ctrl+k:删除光标所在处至行尾的所有字符; Ctrl+l:清屏,相当于clear;
2.4.bash的特性之四:命令补全和路径补全
1.命令查找和补全机制: (1) 查找内部命令; (2) 根据PATH环境变量中设定的目录,自左而右逐个搜索目录下的文件名; (3) 给定开头的部分字符串如果能惟一标识某命令程序文件,则直接补全; 不能惟一标识某命令程序文件,再击tab键一次,会给出列表; 2.路径补全: 在给定起始路径下,以对应路径下的打头字串逐一匹配起始路径下每个文件: TAB按键;如果能惟一标识,则直接补全;否则,再一次tab,给出列表; 3.命令行展开 ~:自动展开为用户的家目录,或指定的用户的家目录; {}:花括号展开。可承载一个以逗号分隔的路径列表,并能够将其展开为多个路径;
2.5.bash的特性之五:命令行展开:
1)、命令行展开; 以某些bash能够解释的符号来代替命令中的某些参数。 ~:展开为用户的家目录; 例1:切换至家目录 cd ~;pwd /root {}:可承载一个以逗号分隔的列表,并将其展开为多个路径; 例2:在/tmp/d目录下创建f1,f2,f3三个文件 touch /tmp/d/f{1,2,3} bash
2.6.bash特性之六:命令的执行状态结果:
1)、bash的基础特性之状态值返回:在bash中使用一个特殊的变量$?来保存上一个命令的执行状态结果。 0表示成功, 1-255表示失败
3. 使用命令行展开功能实现习题
3.1.创建tmp目录下的:a_c,a_d,b_c,b_d;
[root@localhost ~]# touch {a,b}{_c,_d} [root@localhost ~]# ll total 165716 -rw-r--r--. 1 root root 369 Nov 29 16:11 ab.lua -rw-r--r--. 1 root root 0 Dec 10 10:20 a_c -rw-r--r--. 1 root root 0 Dec 10 10:20 a_d -rw-------. 1 root root 1048 Nov 23 10:05 anaconda-ks.cfg -rw-r--r--. 1 root root 0 Dec 10 10:20 b_c -rw-r--r--. 1 root root 0 Dec 10 10:20 b_d
3.2.创建/tmp/mylinux目录下的以下目录
├── bin ├── boot │ └── grub ├── dev ├── etc │ ├── rc.d │ │ └── init.d │ └── sysconfig │ └── network-scripts ├── lib │ └── modules ├── lib6 ├── proc ├── sbin ├── sys ├── tmp ├── usr │ └── local │ ├── bin │ └── sbin └── var ├── lock ├── log └── run [root@localhost home]# mkdir -p /tmp/mylinux/{bin,boot/grup,dev,etc/{rc.d/init.d,sysconfig/network- scripts},lib/modules,lib6,proc,sbin,sys,tmp,usr/local/{bin,sbin},var,lock,log,run} [root@localhost home]# tree /tmp/mylinux/ /tmp/mylinux/ ├── bin ├── boot │ └── grup ├── dev ├── etc │ ├── rc.d │ │ └── init.d │ └── sysconfig │ └── network-scripts ├── lib │ └── modules ├── lib6 ├── lock ├── log ├── proc ├── run ├── sbin ├── sys ├── tmp ├── usr │ └── local │ ├── bin │ └── sbin └── var
4. 文件的元数据信息有哪些?分别代表什么含义?如何查看?如何修改时间戳信息?
元数据信息:文件名称、属主属组、文件访问权限、uid、gid、三个时间戳(centos7是四个)、inode号等等 访问时间access time:读一次这个文件的内容,这个时间就会更新。比如对这个文件运用 more、cat等命令。ls、stat命令都不会修改文件的访问时间。 修改时间modify time:修改时间是文件内容最后一次被修改时间。比如:vi后保存文件。ls -l列出的时间就是这个时间。 状态改变时间change time:是该文件的i节点最后一次被修改的时间,通过chmod、chown命令修改一次文件属性,这个时间就会更新。 查看命令:stat filename [root@localhost home]# stat /tmp/mylinux/ File: ‘/tmp/mylinux/’ Size: 4096 Blocks: 8 IO Block: 4096 directory Device: fd00h/64768d Inode: 137816826 Links: 17 Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Context: unconfined_u:object_r:user_tmp_t:s0 Access: 2016-12-10 10:45:11.942457078 +0800 Modify: 2016-12-10 10:43:07.978456374 +0800 Change: 2016-12-10 10:43:07.978456374 +0800 Birth: - 修改时间戳信息:touch [option] filename touch命令: touch – change file timestamps touch [OPTION]… FILE… -c: 指定的文件路径不存在时不予创建; -a: 仅修改access time; -m:仅修改modify time; -t 指定时间:[[CC]YY]MMDDhhmm[.ss] [root@localhost home]# touch -a /tmp/mylinux/ ---//修改访问时间 [root@localhost home]# stat /tmp/mylinux/ File: ‘/tmp/mylinux/’ Size: 4096 Blocks: 8 IO Block: 4096 directory Device: fd00h/64768d Inode: 137816826 Links: 17 Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Context: unconfined_u:object_r:user_tmp_t:s0 Access: 2016-12-10 10:50:46.963458981 +0800 ---//访问时间已被修改 Modify: 2016-12-10 10:43:07.978456374 +0800 Change: 2016-12-10 10:50:46.963458981 +0800 Birth: - [root@localhost home]# touch -m /tmp/mylinux/ ---//修改文件编辑时间 [root@localhost home]# stat /tmp/mylinux/ File: ‘/tmp/mylinux/’ Size: 4096 Blocks: 8 IO Block: 4096 directory Device: fd00h/64768d Inode: 137816826 Links: 17 Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) Context: unconfined_u:object_r:user_tmp_t:s0 Access: 2016-12-10 10:50:46.963458981 +0800 Modify: 2016-12-10 10:54:34.479460274 +0800 ---/文件编辑时间已被修改 Change: 2016-12-10 10:54:34.479460274 +0800 Birth: -
5文件别名的定义,如何在命令中引用另一个命令的执行结果。
alias NAME='COMMAND' //只对当前shell进程有效,结束后得重新来再次定义 unalias NAME //撤销别名 例如: [root@localhost home]# alias cat='tac' [root@localhost ~]# cat ab.lua end print("not c") -->output:not c else print("c") --这个没有执行 if c then end print("not b") --这个没有执行 else print("b") -->output:b if b then end print("not a") --这个没有执行 else print("a") -->output:a if a then local c = nil local b = 0 local a = true ab.lua 撤销别名cat之后我们再尝试 [root@localhost ~]# unalias cat [root@localhost ~]# cat ab.lua ab.lua local a = true local b = 0 local c = nil if a then print("a") -->output:a else print("not a") --这个没有执行 end if b then print("b") -->output:b else print("not b") --这个没有执行 end if c then print("c") --这个没有执行 else print("not c") -->output:not c end 可以发现ab.lua在cat别名为tac生效时是以倒序列出文件内容的。
6.exercise
6.1显示/var目录下所有以l开头,以一个小写字母结尾,且中间出现一个数字(可以有其他字符)的文件或目录 ls -d /var/l*[0-9]*[[:lower:]] 6.2显示/etc目录下,以任意一位数字开头,且以非数字结尾的文件或目录 ll -d /etc/[0-9]*[^0-9] 6.3显示/etc目录下,以非字母开头,后面跟一个字母及其它任意长度任意字符的文件或目录 ll -d /etc/[^[:alpha:][:alpha:]]* 6.4在/tmp目录下创建以tfile开头,后跟当前日期或时间的文件,文件名形如:tfile-2016-05-27-9-32-22 touch /tmp/tfile-$(date +%F-%H-%M-%S) 6.5复制/etc目录下,所有以p开头,以非数字结尾的文件或目录至/tmp/mytest1目录 cp -a /etc/p*^[0-9] /tmp/mytest1 6.6复制/etc目录下,所有以.d结尾的文件或目录至/tmp/mytest2目录下 cp -a /etc/*.d /tmp/mytest2 6.7复制/etc目录下,所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录下 cp -a /etc/[l,m,n]*.conf /tmp/mytest3
原创文章,作者:oranix,如若转载,请注明出处:http://www.178linux.com/63589
评论列表(1条)
赞,整体看下来都很棒~~加油~