Linux基础命令快速入门
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux基础命令快速入门相关的知识,希望对你有一定的参考价值。
Linux基础命令
write by Booboo Wei
摘要:
常用的命令 ls cd pwd
符号 * ? { } |
帮助命令 --help help type man info /usr/share/doc
针对文件的的基本操作 touch mkdir rmdir cp rm mv
针对文件内容的基本操作 cat tac head tail more less
文件的查看、编辑、过滤vi vim echo grep cut wc file
关于时间的命令cal date timedatectl hwclock
版权声明:
本文遵循“署名非商业性使用相同方式共享2.5 中国大陆”协议
您可以自由复制、发行、展览、表演、放映、广播或通过信息网络传播本作品
您可以根据本作品演义自己的作品
您必须按照作者或者许可人指定的方式对作品进行署名。
您不得将本作品用于商业目的。
如果您改变、转换本作品或者以本作品为基础进行创作,您只能采用与本协议相同的许
可协议发布基于本作品的演绎作品。
对任何再使用或者发行,您都必须向他人清楚地展示本作品使用的许可协议条款。
如果得到著作权人的许可,您可以不受任何这些条件的限制。
Booboo Wei([email protected])
1 命令简介
1.1 命令的构成
命令字 选项 参数
命令分:内部命令、外部命令;
选项: - 单个字符-- 多个字符
参数:对谁执行这个命令,可以有多个,选项和参数可以互换位置
1.2 命令使用的原因
Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。实际上Shell是一个命令解释器,它解释由用户输入的命令并且把它们送到内核。从这里开始学习Linux命令,本课程让你更清楚地了解和掌握它,在Linux中命令是讲究大小写的。使用命令即快速又能减少机器的性能消耗。
1.3 命令提示符
# root 用户
$ 一般用户
[ 用户的身份@ 主机名 当前位置 ]
当前位置显示的是目录名
[[email protected] ~]# hostname www.dabao.com [[email protected] ~]# groupadd tom [[email protected] ~]# useradd -g tom tom [[email protected] ~]# id tom uid=501(tom) gid=501(tom) groups=501(tom) [[email protected] ~]# su - tom [[email protected] ~]$ who root tty1 2016-03-20 23:56 (:0) root pts/0 2016-03-21 00:39 (:0.0) |
2 常用的命令
2.1 ls
ls | list的简写 查看当前目录下的所有文件 | 备注 |
-l | long的缩写 详细列出当前目录下的所有文件属性 | 七列 文件名 <=255个字符 |
-d | directory的缩写 查看当前目录本身的信息 | 文件大小默认单位为bites |
-h | 以人性化的方式显示文件大小,录的大小并不代表目录内所有文件的大小du -sh /etc<== 查看etc目录真正的大小 | |
-a | 查看隐藏文件 以 .开头的文件 | |
-R | 查看多层目录 | |
-b | 特殊字符将以\ 分割 | 用ls 查看有特殊字符的文件 |
2.1.1 ls实验
[[email protected] tmp]$ ls -hl total 68K srwxr-xr-x. 1 root root 0 Mar 20 23:59 gedit.root.3177893063 drwx------. 2 root root 4.0K Feb 5 18:24 keyring-JL7MKY [[email protected] tmp]$ ls -ld /tmp drwxrwxrwt. 22 root root 4096 Mar 21 00:43 /tmp [[email protected] tmp]$ ls -la /tmp total 96 drwxrwxrwt. 22 root root 4096 Mar 21 00:43 . dr-xr-xr-x. 29 root root 4096 Mar 20 23:55 .. drwx------. 2 root root 4096 Mar 20 23:56 .esd-0 drwx------. 2 cong cong 4096 Jan 1 18:33 .esd-500 [[email protected] tmp]$ ls -bl -rw-rw-r--. 1 tom tom 0 Mar 21 00:48 a\ b.txt [[email protected] tmp]$ ls -l -rw-rw-r--. 1 tom tom 0 Mar 21 00:48 a b.txt [[email protected] tmp]$ mkdir -p a/b/c [[email protected] tmp]$ ls -lR a/ a/: total 4 drwxrwxr-x. 3 tom tom 4096 Mar 21 00:50 b a/b: total 4 drwxrwxr-x. 2 tom tom 4096 Mar 21 00:50 c a/b/c: total 0 |
2.2 cd
cd | change directory 切换工作目录 |
绝对路径 | 以根为起始的路径 |
相对路径 | ~当前用户的家目录 . 当前目录 .. 上一层用户 -回到上一次所在位置 |
2.2.1 cd实验
[[email protected] tmp]$ cd /etc/ [[email protected] etc]$ cd ~ [[email protected] ~]$ cd . [[email protected] ~]$ cd .. [[email protected] home]$ cd - /home/tom |
2.3 pwd
pwd:print working directory 显示当前坐在位置的绝对路径
2.3.1 pwd实验
[[email protected] tmp]$ cd /etc/nginx [[email protected] nginx]$ cd conf.d [[email protected] conf.d]$ pwd /etc/nginx/conf.d |
3 符号
3.1 通配符*
匹配任意一个字符
3.2 匹配一个字符?
匹配指定位数
3.2.1 *?实验
rm -f *1 rm -f 1* rm -f 1*1 rm -f test?<== 想删除test后面有一个字符的文件 |
3.3 | 管道
output | input
对某些命令执行的结果去作操作,会用到管道
3.3.1 |实验
# 详细列出/tmp目录下的文件,并截取以空格为分割的第三列 [[email protected] ~]$ ls -l /tmp|cut -d" " -f3 tom tom root root root # 详细列出/tmp目录下的文件,截取含有关键字tom的行,再截取以空格为分割的第一列内容 [[email protected] ~]$ ls -l /tmp|grep tom|cut -d" " -f1 drwxrwxr-x. -rw-rw-r--. |
4 针对文件的的基本操作
4.1 touch
touch [filename] <== 创建文件,参数可以跟多个
如果要创建50 个有规律的文件,例如text1-text50
利用参数扩展
touch test{1..50}
touch test{a..e}
touch test{a..e}_{1..3}---> 会创建a_1 a_2 a_3...
上帝之手,本来是用来修改文件时间戳的。文件的三个时间ctime\mtime\atime
拓展内容:可以通过“stat”命令查看文件的三个时间
touch " " 可以放一些特殊字符
4.1.1 touch实验
[[email protected] ~]$ touch test{a..c}_{1..4} [[email protected] ~]$ ls testa_1 testa_4 testb_3 testc_2 testa_2 testb_1 testb_4 testc_3 testa_3 testb_2 testc_1 testc_4 #--full-time可以查看mtime的完整时间 [[email protected] ~]$ ls -l --full-time total 0 -rw-rw-r--. 1 tom tom 0 2016-03-21 01:31:22.853039590 +0800 testa_1 -rw-rw-r--. 1 tom tom 0 2016-03-21 01:31:22.853039590 +0800 testa_2 -rw-rw-r--. 1 tom tom 0 2016-03-21 01:31:22.853039590 +0800 testa_3 -rw-rw-r--. 1 tom tom 0 2016-03-21 01:31:22.853039590 +0800 testa_4 -rw-rw-r--. 1 tom tom 0 2016-03-21 01:31:22.853039590 +0800 testb_1 -rw-rw-r--. 1 tom tom 0 2016-03-21 01:31:22.853039590 +0800 testb_2 -rw-rw-r--. 1 tom tom 0 2016-03-21 01:31:22.853039590 +0800 testb_3 -rw-rw-r--. 1 tom tom 0 2016-03-21 01:31:22.853039590 +0800 testb_4 -rw-rw-r--. 1 tom tom 0 2016-03-21 01:31:22.854039544 +0800 testc_1 -rw-rw-r--. 1 tom tom 0 2016-03-21 01:31:22.854039544 +0800 testc_2 -rw-rw-r--. 1 tom tom 0 2016-03-21 01:31:22.854039544 +0800 testc_3 -rw-rw-r--. 1 tom tom 0 2016-03-21 01:31:22.854039544 +0800 testc_4 [[email protected] ~]$ touch "ab cd" [[email protected] ~]$ ls -b ab\ \ \ cd testa_3 testb_2 testc_1 testc_4 testa_1 testa_4 testb_3 testc_2 testa_2 testb_1 testb_4 testc_3 |
4.1.2 touch拓展实验
[[email protected] ~]$ touch booboo [[email protected] ~]$ ll total 0 -rw-rw-r--. 1 booboo booboo 0 Jun 15 23:28 booboo [[email protected] ~]$ stat booboo File: ‘booboo’ Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: fd01h/64769d Inode: 143 Links: 1 Access: (0664/-rw-rw-r--) Uid: ( 1001/ booboo) Gid: ( 1001/ booboo) Context: unconfined_u:object_r:user_home_t:s0 Access: 2016-06-15 23:28:55.041578819 -0400 #atime 文件最近一次被访问的时间 Modify: 2016-06-15 23:28:55.041578819 -0400 #mtime 文件内容最近一次修改的时间 Change: 2016-06-15 23:28:55.041578819 -0400 #ctime 文件属性最近一次修改的时间 Birth: - #使用cat去访问booboo文件,可以发现atime被修改了 [[email protected] ~]$ cat booboo [[email protected] ~]$ stat booboo File: ‘booboo’ Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: fd01h/64769d Inode: 143 Links: 1 Access: (0664/-rw-rw-r--) Uid: ( 1001/ booboo) Gid: ( 1001/ booboo) Context: unconfined_u:object_r:user_home_t:s0 Access: 2016-06-15 23:32:35.898724748 -0400 Modify: 2016-06-15 23:28:55.041578819 -0400 Change: 2016-06-15 23:28:55.041578819 -0400 Birth: - #通过chmod修改文件权限后,会看到ctime时间改变,通过ll命令看到的时间为mtime [[email protected] ~]$ chmod 777 booboo [[email protected] ~]$ ll total 0 -rwxrwxrwx. 1 booboo booboo 0 Jun 15 23:28 booboo [[email protected] ~]$ stat booboo File: ‘booboo’ Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: fd01h/64769d Inode: 143 Links: 1 Access: (0777/-rwxrwxrwx) Uid: ( 1001/ booboo) Gid: ( 1001/ booboo) Context: unconfined_u:object_r:user_home_t:s0 Access: 2016-06-15 23:32:35.898724748 -0400 Modify: 2016-06-15 23:28:55.041578819 -0400 Change: 2016-06-15 23:33:49.195445761 -0400 Birth: - #通过echo命令向booboo文件追加一些内容,会看到mtime时间变了,并且ctime也变了,思考为什么? [[email protected] ~]$ echo hi >> booboo [[email protected] ~]$ ll total 4 -rwxrwxrwx. 1 booboo booboo 3 Jun 15 23:34 booboo [[email protected] ~]$ stat booboo File: ‘booboo’ Size: 3 Blocks: 8 IO Block: 4096 regular file Device: fd01h/64769d Inode: 143 Links: 1 Access: (0777/-rwxrwxrwx) Uid: ( 1001/ booboo) Gid: ( 1001/ booboo) Context: unconfined_u:object_r:user_home_t:s0 Access: 2016-06-15 23:32:35.898724748 -0400 Modify: 2016-06-15 23:34:53.251332183 -0400 Change: 2016-06-15 23:34:53.251332183 -0400 Birth: - |
4.2 rm
rm | [filename] remove 删除文件,对root用户有提示,普通用户没有提示 |
-f | force强制删除, root 无提示 |
-i | 普通用户有提示的删除 |
-r | 递归删除,慎重使用-rf |
4.2.1 rm实验
# 普通用户tom [[email protected] ~]$ rm testa_1 [[email protected] ~]$ rm -i testa_2 rm: remove regular empty file `testa_2‘? Y #root 用户 [[email protected] ~]# rm a.test rm: remove regular empty file `a.test‘? Y [[email protected] ~]# rm -f b.test # 普通用户tom [[email protected] ~]$ mkdir -p a/b/c [[email protected] ~]$ rm a/ rm: cannot remove `a/‘: Is a directory [[email protected] ~]$ rm -r a/ |
4.3 mkdir
mkdir:make directory 创建目录
mkdir -p /test/test1<== 第归创建目录
mkdir {a..e}<== 创建a-e 的目录
touch {a..e}/file{1..4}<== 在a-e 的目录下新建file1-file4 文件
4.3.1 mkdir实验
[[email protected] ~]$ mkdir -p test/test1 [[email protected] ~]$ ls ab cd testa_3 testb_2 testc_1 testc_4 p testa_4 testb_3 testc_2 test testb_1 testb_4 testc_3 [[email protected] ~]$ mkdir {a..f} [[email protected] ~]$ ls a d test testb_2 testc_2 ab cd e testa_3 testb_3 testc_3 b f testa_4 testb_4 testc_4 c p testb_1 testc_1 [[email protected] ~]$ touch {a..f}/file{1..4} [[email protected] ~]$ ls a d test testb_2 testc_2 ab cd e testa_3 testb_3 testc_3 b f testa_4 testb_4 testc_4 c p testb_1 testc_1 [[email protected] ~]$ ls -rR .: testc_4 testb_4 testa_4 f b testc_3 testb_3 testa_3 e ab cd testc_2 testb_2 test d a testc_1 testb_1 p c ./test: test1 ./test/test1: ./p: ./f: file4 file3 file2 file1 ./e: file4 file3 file2 file1 以上是关于Linux基础命令快速入门的主要内容,如果未能解决你的问题,请参考以下文章 |