Linux基础与命令
Linux起源
1984 年:Richard Stallman 发起GNU 项目和自由软件基金会
创建开源的UNIX 实用工具版本
创建通用公共许可证(GPL) )
开源软件许可实施原则
1991 年:Linus Torvalds 发布Linux
创建开放源码,类Unix 的内核,在GPL 下发布
下载:www.kernel.org
Linux 操作系统:
Linux 内核+ GNU 工具= 完整的类UNIX 操作系统
如:CentOS,Ubuntu,Android;
Linux发行版
slackware:SUSE Linux Enterprise Server (SLES)
opensuse 桌面
debian: ubuntu ,mint
redhat: : rhel: redhat enterprise linux
每18 个月发行一个新版本
CentOS :兼容rhel 的格式
中标 麒麟:中标 软件
fedora :每6 个月发行一个新版本
ArchLinux :轻量简洁
Gentoo :极致性能, 不提供传统意义的安装程序
LFS: Linux From scratch 自制Linux
Android: kernel+busybox (工具集)+java 虚拟机、
Linux 分支参考网站:http://futurist.se/gldt/
世界上的开源许可证,大概有上百种
GPLv2, GPLv3, LGPL(lesser) :copyleft,WordPress
Apache: apache
BSD: bsd
Mozilla
Apache
MIT
Linux 哲学思想
一切都是一个文件(包括硬件)
小型,单一用途的程序
链接程序,共同完成复杂的任务
避免令人困惑的用户界面
配置数据存储在文本中
CentOS
https://wiki.centos.org/Download
http://mirrors.aliyun.com
http://mirrors.sohu.com
用户登录
root 用户:
一个特殊的管理帐户
也被称为超级用户
root 已接近完整的系统控制
对系统损害几乎有无限的能力
除非必要,为 不要登录为 root
( 普通( 权 非特权 )用户
权限有限
造成损害的能力比较有限
终端terminal
设备终端
键盘 鼠标显示器
( 物理终端( /dev/console ) )
控制台console
虚拟终端(tty :teletypewriters, , /dev/tty# # 为[1-6])
tty 可有n 个,Ctrl+Alt+F[1-6]
( 图形终端( /dev/tty7 ) ) startx, xwindows
CentOS 6: Ctrl + Alt + F7
CentOS 7: 在哪个终端启动,即位于哪个虚拟终端
( 串行终端( /dev/ttyS# ) )
ttyS
( 伪终端( pty :pseudo-tty , , /dev/pts/# ) )
pty, SSH 远程 连接
查看 当前的 终端设备:#tty
交互式接口:启动终端后,在终端设备附加一个交互式应用程序
GUI :Graphic User Interface
X protocol, window manager, desktop
Desktop:
GNOME (C, 图形库gtk), ,
KDE (C++, 图形库qt)
XFCE ( 轻量级桌面)
CLI :Command Line Interface
shell 程序:sh (bourn) csh tcsh ksh (korn)
bash (bourn again shell)GPL zsh
Shell 是Linux 系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。
shell 也被称为LINUX 的命令解释器(command interpreter) )
shell 是一种高级程序设计语言
bash shell
GNU Bourne-Again Shell(bash) 是GNU 计划中重要的工是 具软件之一,目前也是 Linux 标准的shell ,与sh 兼容
CentOS 默认使用
显示当前使用的shell
#echo ${SHELL}
显示当前系统使用的所有shell
#cat /etc/shells
命令提示符: :prompt
显示提示符格式
[root@localhost ~] :echo $PS1
修改提示符格式
PS1="\[\e[31m\][\u@\h \W]\\$\[\e[0m\]"
\e \033
\u 当前用户
\h 主机名简称
\H 主机名
\w 当前工作 目录
\W 当前工作目录基名
\t 24 小时时间格式
\T 12 小时时间格式
\! 命令历史数
\# 开机后命令历史数
在shell 中可执行的命令有两类:
内部命令:由shell 自带的,而且通过某命令形式提供
help 内部命令列表
enable cmd 可以启用
enable –n cmd 禁用 内部 命令
enable –n 查看所有禁用的内部命令
外部命令:在文件系统路径下有对应的可执行程序文件
查看路径:which -a |–skip-alias ; whereis
区别指定的命令是内部或外部命令:
# type COMMAND
Hash 缓存表:
系统初始hash 表为空 ,当外部命令执行时,默认会 从ATH 路径下寻找该 命令,找到后会将这 条命令的 路径记录到
hash 表中,当再次 使用该命令时,shell 解释器首先会查看hash表 ,存在将执行之,如果不存在,将会去 去PATH 路径下
寻找 。利用hash 缓存表可大大提高命令的调用速率
Hash 常见用法:
hash 显示hash 缓存
hash –l 显示hash 缓存,可作为输入使用
hash –p path name 将命令全路径path起 起 别名为name
hash –t name 打印缓存中name 的路径
hash –d name 清除name 缓存
hash –r 清除缓存
命令别名
显示当前shell 进程所有可用的命令别名
#alias
定义别名NAME ,其相当于执行命令VALUE
#alias NAME='VALUE'
在命令行中定义的别名,仅对当前shell 进程有效
如果想永久有效,要定义在配置文件中
仅对当前用户:~/.bashrc
对所有用户有效:/etc/bashrc
撤消别名:unalias
unalias [-a] name [name …]
-a取消所有别名
date 显示日期和时间
Linux的 的 两种 时钟
系统 时钟:由Linux 内核通过CPU 的工作频率进行 的
硬件 时钟:主板
hwclock ,clock: 显示硬件时钟
-s, –hctosys 以硬件时钟 为 准,校正系统时钟
-w, –systohc 以系统时钟为准 , 校正硬件时钟
时区: :/etc/localtime
时间方面 :
% : 印出 %
%n : 下一行
%t : 跳格
%H :小时(0..23)
%I : 小时(01..12)
%k : 小时(0..23)
%M : 分钟(0..59)
%p : 显示本地时段“上午”或 “下午”
%r : 直接显示时间 (12 小时制,格式为 hh:mm:ss [AP]M)
%s : 从 1970 年 1 月 1 日 00:00:00 UTC 到目前为止的秒数
%S : 秒(00..61)
%T : 直接显示时间 (24 小时制)
%X : 相当于 %H:%M:%S
%Z : 显示时区
日期方面 :
%a : 星期几 (Mon..Sun)
%A : 星期几 (Monday..Sunday)
%b : 月份 (Jan..Dec)
%B : 月份 (January..December)
%c : 直接显示日期与时间
%d : 日 (01..31)
%D : 直接显示日期 (mm/dd/yy)
%h : 同 %b
%j : 一年中的第几天 (001..366)
%m : 月份 (01..12)
%U : 一年中的第几周 (00..53) (以 Sunday 为一周的第一天的情形)
%w : 一周中的第几天 (0..6)
%W : 一年中的第几周 (00..53) (以 Monday 为一周的第一天的情形)
%x : 直接显示日期 (mm/dd/yy)
%y : 年份的最后两位数字 (00.99)
%Y : 完整年份 (0000..9999)
若是不以加号作为开头,则表示要设定时间,而时间格式为 MMDDhhmm[[CC]YY][.ss],其中 MM 为月份,DD 为日,hh 为小时,mm 为分钟,CC 为年份前两位数字,YY 为年份后两位数字,ss 为秒数
把计 :
-d datestr : 显示 datestr 中所设定的时间 (非系统时间)
–help : 显示辅助讯息
-s datestr : 将系统时间设为 datestr 中所设定的时间
-u : 显示目前的格林威治时间
–version : 显示版本编号
例子 :
显示时间后跳行,再显示目前日期 :
date +%T%n%D
显示月份与日数 :
date +%B %d
显示日期与设定时间(12:34:56) :
date –date 12:34:56
cal 显示日历
cal –y
nano 文本编辑
关机:halt, poweroff
重启:reboot
-f: 强制,不调用shutdown
-p: 切断电源
关机或重启:shutdown
shutdown [OPTION]… TIME [MESSAGE]
-r: reboot
-h: halt
-c :cancel
TIME:now: 立刻
+m: 如 相对时间表示法,多久之后;例如 +3
hh:mm: 绝对时间表示,指明具体时间
用户登录信息查看命令:
whoami: 显示当前登录有效用户
who: 系统当前所有的登录会话
w: 系统当前所有的登录会话及所做的操作
screen 命令:
创建新screen 会话:
screen –S [SESSION]
加入screen 会话:
screen –x [SESSION]
退出并 关闭screen 会话:
exit
剥离 当前screen 会话:
Ctrl+a,d
显示所有已经打开的 的screen 会话:
screen -ls
恢复某 某screen 会话
screen -r [SESSION]
echo 命令
• 功能:显示字符
-E 持 (默认)不支持 \ 解释功能
-n 不自动换行
-e 用 启用 \ 字符的解释功能
启用命令 选项-e,若字符串中出现以下字符,则特别加以处理,而不会将它当成一般文字输出
\a 发出警告声
\b 退格键
\c 最后不加上换行符号
\n 换行且光标移至行首
\r 回车,即光标移至行首,但不换行
\t 插入tab
\\ 插入\ 字符
\0nnn 插入nnn (八进制)所代表的ASCII 字符
echo -e '\033[43;31;5mmagedu\033[0m'
\xHH 插入HH (十六进制)所代表的ASCII字
重复前一个命令,有4 种方法:
• 重复前一个命令 使用上方向键,并回车执行
• 按 按 !! 并回车执行
• 入 输入 !-1 并回车执行
• 按 按 Ctrl+p 并回车执行
Ctrl + n :历史中的下一条命令
!num: 按照history 命令输出中的序号重复对应命令
!-n : 重复n
!string 重复前一个以“string ”开头的命令
!?string 重复前一个包含string 的命令
!string:p 仅打印命令历史,而不执行
!$:p 出 打印输出 !$ 的内容
!*:p 出 打印输出 !*) (所有参数) 的内容
^string 删除上一条命令中的string
^string1^string2 将上一条命令中的string1 替换为string2
!!:gs/string1/string2 将上一条命令中所有的string1 都替换为 string2
使用up (向上)和down (向下)键来上下浏览从前输入的
命令
ctrl-r 来在命令历史中搜索命令
• ( (reverse-i-search )`’: :
Ctrl+g :从历史搜索模式退出
要重新调用前一个命令中最后一个参数:
!$ 表示
Esc, . (点击Esc击 键后松开,然后点击 . 键)
Alt+ . (按住Alt击 键的同时点击 . 键)
command !^ : 利用上一个命令的第一个参数做cmd 的参数
command !$ : 利用上一个命令的最后一个参数做cmd 的参数
command !* : 利用上一个命令的全部参数做cmd 的参数
command !:n : 利用上一个命令的第n 个参数做cmd
command !n:^ 调用第n 条命令的第一个 参数
command !n:$ 调用第n 条命令的最后一个 参数
command !n:m 调用第n 条命令的第 第m个 个 参数
command !n:* 调用第n 条命令的所有
-c: 清空命令历史
-d: 删除历史中指定 的命令
#: 显示最近的# 条历史
-a: 追加本次会话新执行的命令历史列表至历史文件
-n: 读历史文件中未读过的行到历史列表
-r: 读历史文件附加到历史列表
-w: 保存历史列表到指定的历史文件
-p: 展开 历史参数成多行 ,但不存在历史列表中
bash 的快捷键
Ctrl + l 清屏,相当于clear 命令
Ctrl + o 执行当前命令,并重新显示本命令
Ctrl + s 阻止屏幕输出,锁定
Ctrl + q 允许屏幕输出
Ctrl + c 终止命令
Ctrl + z 挂起命令
Ctrl + a 移到命令行首
Ctrl + e 移到命令行尾
Ctrl + f 按字符前移(右向)
Ctrl + b 按字符后移(左向)
Alt + f 按单词前移(右向)
Alt + b 按单词后移(左向)
Ctrl + xx 在命令行首和光标之间移动
Ctrl + u 从光标处删除至命令行首
Ctrl + k 从光标处删除至命令行尾
Ctrl + w 从光标处向左删除至单词首
Alt + d 从光标处向右删除至字尾
Ctrl + d 删除光标处的字符
Ctrl + h 删除光标前的字符
Ctrl + y 将删除的字符粘贴至光标后
Alt + c 从光标处更改为首字母大写的单词
Alt + u 从光标处更改为全部大写的单词
Alt + l 从光标处更改为全部小写的单词
Ctrl + t 交换光标处和之前的字符
Alt + t 交换光标处和之前的单词
Alt + N 提示输入指定字符后,重复显示该字符N次 次
注意:Alt快捷键较少使用,因为常常和编辑器冲突
原创文章,作者:SDS,如若转载,请注明出处:http://www.178linux.com/68888