首页 > 代码库 > 谢烟客---------Linux之命令引入篇
谢烟客---------Linux之命令引入篇
在了解计算机基础和Linux历史后通过以下知识,相信应该能开始着手学习Linux了吧.
1)如何登陆Linux?
login: 用户名 + Enter
Password: 密码 + Enter
2)什么是终端?
终端(Computer terminal)是用来让用户输入数据及显示其计算结果的机器。终端有些是全电子的,也有些是机电的。其又名终端机。
Linux是多用户多任务的,在早期一台Unix主机连接多个终端机,让每个终端用户均可使用。
Linux也模拟实现了UNIX的终端功能:
物理终端:Console
虚拟终端:/dev/tty# [1,7]
图形终端:/dev/tty7
模拟终端:/dev/pts/# [1,+oo)
3)用户接口:与内核交互的接口
在Windows中:桌面
用户仅需双击图标即可完成用户与内核交互
在Linux中:
桌面:Gnome,KDE,XFCE(用于嵌入式环境)
用户仅需双击图标即可完成用户与内核交互
命令行:由sh,bash,csh,zsh,ksh程序提供
输入命令+Enter键即可完成用户与内核交互
4)Linux的哲学思想
1、一切皆文件,几乎所有资源都映射为文件:例如:设备
2、由众多单一目的的小程序组成复杂程序,例如:管道
3、避免跟用户交互,实现shell编程
4、文本编辑命令即可配置文本
5)文件:
不能完成路径映射
6)目录:
完成路径映射
7)文件名
1、区分字符大小写
2、/不能作为文件名,/为路径分隔符
3、长度小于255个字符
4、以.开头的文件为隐藏文件
5、见名知义,单词的缩写; copy 的命令为cp
8)路径
/etc/sysconfig/network-scripts
工作目录:当前目录
./ 指的是 network-scripts
上一级目录:
../ 指的是 sysconfig
相对路径:从当前目录开始
./ifcfg-eth0
绝对路径:从根开始
/etc/sysconfig/network-scripts/ifcfg-eth0
9)程序的组成
指令 + 数据(来自于文件,变量、数组、链表)
算法 + 数据结构
二进制文件、库文件、配置文件、帮助文件
10)命令提示符:
[root@izpo45bh60h6bsz ~]# 对于管理员: # 普通用户:$
提示符后键入命令按Enter键:
用户接口解析命令,分析命令,请求内核分配CPU时间片和内核资源将其运行为一个进程(动态)
shell解析命令的过程:从定义的PATH环境变量中,从左而右依次查找目录下是否存在此命令,查找到,记录于缓存中以便二次查找,如果不存在,BASH命令报错。
[root@izpo45bh60h6bsz ~]# cat /etc/issue #命令为cat, \S Kernel \r on an \m [root@izpo45bh60h6bsz ~]# echo $PATH #输入命令时,shell程序会从变量的路径中从左而右的查找 /usr/local/nginx/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
11)命令的格式
命令:
命令的位置:
普通命令: bin中
管理命令: sbin中
选项:用于启用或关闭命令的某个或某些功能
[root@izpo45bh60h6bsz ~]# cat /etc/fstab # # /etc/fstab # Created by anaconda on Fri Feb 24 02:58:22 2017 [root@izpo45bh60h6bsz ~]# cat -n /etc/fstab #可以明显看出,-n启用了,可以查看每行编号的功能。 1 2 # 3 # /etc/fstab 4 # Created by anaconda on Fri Feb 24 02:58:22 2017
短选项: -c,-l,-h,多个选项间用空格分隔
多个选项可合并,例如:-l -h = -hl,合并后的结果仍不会改变
[root@izpo45bh60h6bsz ~]# ls -l -h / total 1.5M drwxr-xr-x 10 root root 4.0K Jun 28 15:19 app -rw-r--r-- 1 root root 1.4M Jul 3 16:04 app.tar.gz lrwxrwxrwx. 1 root root 7 Feb 24 10:58 bin -> usr/bin dr-xr-xr-x. 4 root root 4.0K Mar 3 12:27 boot drwxr-xr-x 3 nginx nginx 4.0K Jun 2 21:26 cache [root@izpo45bh60h6bsz ~]# ls -lh / total 1.5M drwxr-xr-x 10 root root 4.0K Jun 28 15:19 app -rw-r--r-- 1 root root 1.4M Jul 3 16:04 app.tar.gz lrwxrwxrwx. 1 root root 7 Feb 24 10:58 bin -> usr/bin dr-xr-xr-x. 4 root root 4.0K Mar 3 12:27 boot drwxr-xr-x 3 nginx nginx 4.0K Jun 2 21:26 cache
长选项:--character,--human-readable
长选项不能合并,合并使用时将会报错,多个选项间用空格分隔
[root@izpo45bh60h6bsz ~]# ls --all --human-readable . a.txt .bash_profile bin .config fstab link_test1 mariadb-5.5.56-linux-i686.tar.gz .pip .rnd .tcshrc tomcat .. .bash_history .bashrc b.sh c.sh gentoo .local .mysql_history .pki slackware test1 tomcat1 .ansible .bash_logout .bashrc_docker .cache .cshrc .lesshst manifests passwd .pydistutils.cfg .ssh tmpfile .viminfo [root@izpo45bh60h6bsz ~]# ls --all--human-readable ls: unrecognized option ‘--all--human-readable‘ Try ‘ls --help‘ for more information. [root@izpo45bh60h6bsz ~]# ls --allhuman-readable ls: unrecognized option ‘--allhuman-readable‘ Try ‘ls --help‘ for more information.
混合使用:
[root@izpo45bh60h6bsz ~]# ls --all -lh total 207M drwxr-xr-x. 17 root root 4.0K Jul 28 17:33 . dr-xr-xr-x. 25 root root 4.0K Jul 28 14:54 .. drwx------ 3 root root 4.0K Jun 14 16:23 .ansible -rw-r--r-- 1 root root 5 Jul 13 10:06 a.txt -rw------- 1 root root 20K Jul 28 18:14 .bash_history -rw-r--r--. 1 root root 18 Dec 29 2013 .bash_logout -rw-r--r-- 1 root root 203 Jul 10 08:45 .bash_profile
参数:命令的作用对象
[root@izpo45bh60h6bsz ~]# ls a.txt bin b.sh c.sh fstab gentoo link_test1 manifests mariadb-5.5.56-linux-i686.tar.gz passwd slackware test1 tmpfile tomcat tomcat1 [root@izpo45bh60h6bsz ~]# ls /tmp 123.file systemd-private-5dcdf14753784b8d848b77111bf5ef1e-systemd-machined.service-2X5usM tmp.37EDkMuqcT Aegis-<Guid(5A2C30A2-A87D-490A-9281-6765EDAD7CBA)> systemd-private-a5389471547d457d95c6184b005585f9-named.service-Bjy16G tmp.KEBXHvNPLz mykernel systemd-private-a5389471547d457d95c6184b005585f9-ntpd.service-Jqrn5o tmp.XESks7mpp9 systemd-private-5dcdf14753784b8d848b77111bf5ef1e-named.service-U672aF tmp.1GRvDKa1HN
当给出不同的参数,得出的结果,并不相同。
ls命令的作用是:list directory contents列出目录下的文件列表,传递不同的参数,将列出不同目录下的文件列表 。如果没有参数,默认为当前目录。
12)如何使用命令?
命令的格式:
windows: EXE,MSI
linux: ELF
命令的类型:
shell自带的命令: 在文件系统所有路径下没有与之对应的程序文件
[root@izpo45bh60h6bsz ~]# type cd cd is a shell builtin
外部命令:有独立的可执行文件
[root@izpo45bh60h6bsz ~]# type cat cat is /usr/bin/cat
shell自带命令:
# help 命令(COMMAND)
[root@izpo45bh60h6bsz ~]# help cd cd: cd [-L|[-P [-e]]] [dir] Change the shell working directory.
外部命令:
1)获取帮助: COMMAND --help
[root@izpo45bh60h6bsz ~]# cat --help Usage: cat [OPTION]... [FILE]... Concatenate FILE(s), or standard input, to standard output. -E, --show-ends display $ at end of each line -n, --number number all output lines
2)帮助手册: man [CHAPTER] COMMAND
man 查询如果没有给出具体章节,默认显示匹配到首个章节。
帮助手册的位置: /usr/share/man
[root@izpo45bh60h6bsz ~]# ls /usr/share/man #ls作用的对象为/usr/share/man目录,列出此目录下的所有文件和目录 cs de fr id ja man0p man1p man2 man3 man3x man4x man5x man6x man7x man8x man9x pl pt_BR sk tr zh_TW da es hu it ko man1 man1x man2x man3p man4 man5 man6 man7 man8 man9 mann pt ru sv zh_CN
不同帮助手册的意义:
man1,man2,man3,....,man8
man1: 普通命令
[root@localhost ~]# man 1 ls (/bin/ls)
man2: 系统调用
[root@localhost ~]# man 2 read
man3: 库调用
man4: 设备
[root@localhost ~]# man 4 tty (/dev/tty)
man5:配置文件格式
[root@localhost ~]# man 5 passwd (/etc/passwd)
man6: 游戏
man7:杂项
man8:管理命令
[root@localhost ~]# man 8 init (/sbin/init)
获取命令的帮助手册: whatis COMMAND
[root@localhost ~]# whatis passwd #帮助手册的位置1,5都有 passwd (1) - update user‘s authentication tokens passwd (5) - password file passwd [sslpasswd] (1ssl) - compute password hashes
注意获取命令是找到whatis数据库实现的,如果有新的man手册加入有必要运行命令:
# makewhatis
查看指定手册的帮助: man # COMMAND #[1,9]
[root@localhost ~]# man 1 passwd PASSWD(1) User utilities PASSWD(1) NAME passwd - update user’s authentication tokens [root@localhost ~]# man 5 passwd PASSWD(5) Linux Programmer’s Manual PASSWD(5) NAME passwd - password file
快捷键:
Ctrl用 ^表示
^u: 向上翻半屏
^d: 向下翻半屏
Enter: 向下翻一行
k:向上翻一行
space:向下翻一屏
b:向上翻一屏
q: 退出
#G:跳到指定行
G:最后一行
1G/gg:道行
搜索:
/字符串 当前光标向下搜索
?字符串 当前光标向上搜索
n 同向下一个
N 逆向下一个
3)信息页:info
[root@localhost ~]# info ls #显示命令的作者,所写的日期,等与此命令相关历史信息
4)官方文档 Documentation
Hadoop: hadoop.apache.org
nginx : nginx.org
apache: apache.org
5)发行商的文档:
redhat.com/docs
6)谷歌、bing、百度
本文出自 “Reading” 博客,请务必保留此出处http://sonlich.blog.51cto.com/12825953/1951866
谢烟客---------Linux之命令引入篇