来源:第二章
笔记:
-
Linux的发行版:
slackware: suse opensuse debian: ubuntu mint redhat: rhel:每18个月发行一个新版本 CentOS:兼容rhel等等格式 fedora:每6个月发行一个新版本 ArchLinux Gentoo LFS:Linux From scratch Android:kernel+busybox+java虚拟机
-
程序包管理器
rpm: RHEL,Fedora,SuSE,CentOS dpt: Debian,Ubuntu
-
终端:
用户与主机交互,必然用到的设备: 物理终端:直接接入本机的显示器和键盘设备:console 虚拟终端:附加在物理终端之上的以软件方式虚拟实现的终端,CentOS默认启动6个虚拟终端:Ctrl+Alt+F1-F6 图形终端:附加在物理终端之上的以软件方式虚拟实现的终端,但会额外提供桌面环境;设备文件路径:/dev/tty# 模拟终端: 图形界面下打开的命令行接口,基于ssh协议或telnet协议等远程打开的界面,设备文件:/dev/pts/#
-
交互式接口
启动终端后,在终端设备附加一个交互式应用程序,用于人机交互:GUI:X protocol, Window manager,desktop Desktop: GNOME(C,gtk) KDE (C++,qt) XFCE(轻量级桌面) CLI: shell程序: sh(bourn) csh tcsh ksh(korn,商业软件) bash(bourn again shell),GPL zsh Tip: #echo $SHELL:显示当前shell #cat /etc/shells:查看当前系统可用shell #echo $PS[1-4]:显示命令提示符格式
-
Linux文件系统:
1、严格区分大小写; 2、分为matedata(元数据)和data(数据); 3、文件名为除 / 以外的任意字符,但不建议使用特殊字符; 4、文件名长度不超过255个字符; 5、以 . 开头的文件为隐藏文件; 6、路径分为相对和绝对路径;
-
Linux命令帮助的获取:
内部命令: # help COMMAND 外部命令: 1、# COMMAND --help # COMMAND -h 2、使用手册(manual) # man COMMAND 3、信息页: # info COMMAND 4、程序自身的帮助文档:/usr/share/doc/COMMAND-VERSION README INSTALL CHANGELOG 5、程序官方文档 官方站点:Documentation 6、系统发行版的官方文档 7、Google 8、www.slideshare.net
命令路径:
1、#echo $PATH:显示当前shell的命令搜寻路径,从左至右查找 2、可在命令行中或在bashrc或profile文件中进行PATH变量重新赋值,修改搜寻路径 3、命令执行时,命令路径结果会缓存至kv存储中: #hash 显示当前kv存储中缓存的命令及hit
-
命令历史:
1、登录shell时,会读取命令历史文件:~/.bash_history; 2、在shell中新执行的命令只会存储在缓存中,在登出缓存时会追加至~/.bash_history 3、# history:显示命令历史 -a:追加当前shell缓存的命令历史到文件中 -d:删除命令历史条目 -c:清空命令历史 快捷操作: !!:执行上次命令 !#:执行第#条命令 !string:执行最近一次以string开头的命令 调用上一个命令的参数: !$:例,ls !$ ESC,. alt+. 控制命令历史的记录方式: 环境变量:HISTCONTROL,有以下值: ignoredups:忽略重复的命令,连续且相同的才称为‘重复’; ignorespace:忽略所有以空白开头的命令; ignoreboth:忽略以上两者; 修改其值:export HISTCONTROL=ignoredups|ignorespace|ignoreboth
-
man手册:
1、手册页一般位置:/usr/share/man,分man1.man2.。。man8: man1:用户命令 man2:系统调用 man3:C库调用 man4:设备文件及特殊文件 man5:配置文件格式 man6:游戏 man7:杂项 man8:管理类的命令 Tip:一个关键字可能会存在多个类别的man文档,使用man # COMMAND查看 2、man命令的配置文件:/etc/man.config,定义了man文档的搜索路径: MANPATH /path/to/somewhere:指明新的手册搜索位置 3、man -M /path/to/somewhere:打开指定位置的man文档 4、man文档中的操作:d或u,半屏翻页
-
时间:
系统时间:date设置和显示 硬件时间:hwclock(或clock)显示和设置: -s:hwtosys,同步硬件时间到系统; -w:systohw:同步系统时间到硬件 日历:cal
-
cd:
扫描二维码关注公众号,回复: 5438030 查看本文章cd 或cd ~: cd ~USERNAME:回指定用户家目录 cd -:回上次所在路径 变量: PWD:当前路径 OLDPWD:上次路径
ls显示的详细信息:
-rw-------. 1 root root 1639 Aug 8 16:33 anaconda-ks.cfg -:显示文件类型 -:普通文件,-、l、s、d、p、b、c rw:显示权限 1:显示被硬链接的次数 root root:属主、数组 1639:文件大小(byte) Aug 8 16:33 :文件最近一次改变(modify)的时间 anaconda-ks.cfg:文件名 stat FILE:显示文件的元数据
cat、tac、file、echo、which、whatis、tty:
cat file1 file 。。。:连接多个文件显示 -E:显示行结束符 -n:显示行号(不属于文件内容,只是显示格式) echo -n:禁止自动添加换行符; -e:允许使用转义符: \n:换行 \t:tab which:显示命令完整路径 --skip-alias:不显示alias信息
-
Linux的哲学思想:
1、一切皆文件; 2、组合小程序完成复杂任务; 3、尽量避免用户交互,用脚本实现任务自动化; 4、使用纯文本保存配置信息,方便完成各种配置工作;
练习:
date命令:
显示今天为周几?
设定当前系统时间?
显示今天的日期,形如:08/15/15?
显示当前的时间,形如:16:01:21?
设置时间:date 【MMDDhhmm[CC]YY】.[SS]
Tip:
请回答一下问题:
问题1:CentOS和Linux、RHEL的关系?
问题2:各种开源协议的具体细节?如GPL,LGPL,Apache,BSD
备忘:
#startx & 启动图形界面
centos7:
#yum groupinstall “X Window System”
#yum groupinstall “Gnome Desktop”
#startx
centos6:图形桌面包
修改:
1、ls -l据实测,显示的是modify的时间,而非change的时间;