Linux 入门
目录
一、 用户登录
二、 终端
三、 shell介绍
四、 执行命令
五、 简单命令
六、 命令行历史
七、 bash快捷键
八、 使用ghome-ternimal
九、 文件管理
十一、. 目录、inode表与文件
十二、 软/硬链接
一、用户登录
在Linux系统中有两种用户,一种为root用户,一种为普通用户,
1、root 用户
root是一种特殊的管理账户,拥有管理系统的所有权利,相当于windows的超级管理员,可以管理任何的文件,也可以管理其它普通用户的权限,对于管理系统非常的方便,(但是对系统损害也几乎拥有无限的能力,除非必要不要登录root)
2、普通(非特权)用户
权限有限,也不能对其它的用户信息及权限进行修改,造成损害的权利比较有限
二、终端terminal
终端是用来管理Linux 的的一种
1、设备终端
键盘鼠标显示器
2、物理终端(/dev/console)
控制台 console
3、虚拟终端(tty:teletypewriters, /dev/tty# #为[1-6])
tty 可有多个,ctrl+Alt+F[1-6]
4、图形终端(/dev/tty7) starx, xwindows
Centos 6:ctrl+Alt+F7
Centos 7:在哪个终端启动,即位于哪个虚拟终端
5、串行终端(/dev/ttys$)
ttys
6、伪终端(pty: pseudo-tty, /dev/pts/#)
pty ,SHH 远程连接
7、查看当前终端设备的命令是tty
三、shell 介绍
shell 是Linux系统的用户界面,提供了用户与内核进行互相操作的一种接口。它接受用户输入的命令并把它送到内核去执行。shell也被称为Linux的命令解释器,shell是一种高级程序语言。
1、echo 显示当前
2、cat /etc/shells 显示当前系统使用的所有shell
3、命令提示符 [[email protected] ~]#
管理员 $ 普通用户
echo $PS1 显示提示符格式
PS1="\[\e[311m\][\[email protected]\h \W]\\$\[\e[0m\]"
\e \033 颜色 \u 当前用户
\h 主机名简称 \H 主机名
\w 当前工作目录 \W 当前工作目录基名
\t 24小时时间格式 \T 12小时时间格式
\! 命令历史数 \# 开机后命令历史数
四、执行命令
输入命令后回车即可执行命令
1、在shell中可执行的命令分为两种:
内部命令:由shell自带的,而且通过某命令形式提供
help 显示所有的内部命令列表
enable 显示所有已激活的内部命令
enable cmd 激活被禁用的内部命令
enable -n cmd 禁用某个内部命令
enable -n 显示所有被禁用的内部命令
enable -a显示所欲内部命令
enable -a |wc -1 显示所有的内部命令的数量
enable |wc -1 显示激活中的内部命令的数量
2、外部命令:在文件系统路径下有对应的可执行程序文件
查看路径:which -a |--skip-alias ;whereis
3、区别制定的命令是内部命令或是外部命令的命令:
type cmd
4、当执行一条命令时的查找顺序
别名
内部命令
外部命令
hash(缓存表)
path(存储外部命令的命令)
5、hash缓存表:系统重启后hash表为空,当执行一个外部命令时,默认会从path路径下寻找该命令,找到后会将这条命令的路径记录到hash表中,当再次使用该命令时,shell解释器首先会查看hash表,存在则执行之,如果不存在,将会去path路径下寻找。利用hash缓存表可大大提高命令的调用速率
hash命令的常见用法
hash 显示所有被hash的命令路径
hash -l 显示所有被hash的命令路径,包含别名
hash -p 路径 别名 手工添加一条hash
hash -t name 显示别名(命令)的hash路径
hash -d 别名(命令) 删除指定命令或别名的hash条目
hash -r 清空所有的hash
6、alias 显示所有的别名信息
alias 别名=‘cmd -选项 参数’ 定义一个命令的别名
unalias 别名 取消一个别名
unalias -a 取消所有的别名
别名的保存 /etc/bashrc
如果一个别名跟另一个命令重名了,要想使用哪个命令而不是哪个别名的话,可以使用下列方式:
\cmd
‘cmd‘
"cmd"
/path/cmd
7、 在命令行中定义的别名,仅对当前shell进程中有效,如果想要永久有效,可以定义在配置文件中,
仅对当前用户的配置文件:~/.bashrc
对所有用户有效的配置文件:/etc/bashrc
编辑配置给出的新配置不会立即生效,需要重新读取配置文件后才能生效
source /path/to/config_file
五、 简单命令
1、命令的执行语法
cmd 选项 参数
选项:用于启用或关闭命令的某些功能
参数:命令的作用对象,
(多个选项以及多参数和命令之间使用空白字符分隔
取消命令和结束命令:Ctrl+c ,Ctrl+d
多个命令在一行可以用;符号分开
一个命令可以用\分成多行)
2、Linux中一些基础的命令
1.时间
date 显示系统日期和时间
clock,hwclock :显示硬件时钟
Linux的两种时钟,
系统时钟:Linux的系统时间,关机后则不再工作
硬件时钟:硬件时钟,在关机后仍然工作,依靠主板上的 一 颗 纽扣电池供电
hwclock -s 以硬件时间为准,校正系统时钟
hwclock -w 以系统时间为准,校正硬件时钟
date
+%Y 只显示 年
+%m 只显示月
+%d 日
+%H 时
+%M 分
+%S 秒
+%F 年-月-日
+%T 时:分:秒
用date 设置系统时间
date 月日时分年[.秒] date 102013112020.45
dae -s ‘年-月-日 时:分:秒’
- cal 显示日历
cal 显示今年本月的日历
cal 年份 显示该年一整年的日历
cal 月份 年份
3.关于开关机
poweoff 关机
reboot 重启
init 0 关机
init 6 重启
shutdown -r 重启
shutdown -h 关机
shutdown +n n分钟后关机
shutdown 20:20 20:20 关机(定时关机)
(如何取消关机,在当前终端可以Ctrl+c 取消关机,在其他终端可以打命令shutdown -c 取消关机计划)
4.关于查看当前用户的信息
whoami 显示当前用户名
who am/are/is 任意字符 显示当前终端的信息
who 显示所有终端的信息
w 显示所有终端的详细信息及操作
5.screen命令
screen 创建一个会话可以让不同地方两个终端共享一个终端, 在其中一个终端上敲命令,另一个终端上也能显示出来
screen 生成默认名字的会话
screen -S 会话名 创建指定名的screen
screen -ls 查看所有已打开的screen
screen -x 会话名 加入已创建的screen
exit 退出当前会话
6.echo 输出内容在终端上
-E 不开始解释功能,默认
-n 不自动换行
-e “”开启解释功能“”
\a 警告声
\b 退格
\c 不换行
\n 回车换行
\r 回车,即光标移至行首,但不换行
\t 插入tab
\ 插入\
7.关于whatis 的用法和作用
whatis cmd或man -f cmd 仅能提供命令基本的介绍。不提供用法,基于数据库的查找,优点是检索速度快,缺点是缺乏实时性。
8.pwd 查看当前所在目录的路径
pwd -d 当前目录为软链接时,显示其源目录
9.ls用法
ls -a 显示所有目录和文件,包括隐藏文件
ls -A 显示所有文件,除. , ..
ls -l 以长格式列出文件和目录
-rw-r--r--. 1 root root 2193 Jul 14 17:28 passwd
文件类型|owner权限group权限other权限|硬链接数|owner|group|文件大小(bytes)|mtime|文件名
ls -R 递归
ls -ld 显示指定目录的详细信息
ls -S 按文件大小降序排列
ls -t 按修改时间(Mtime) 从新到旧排列
ls -ut 按访问时间(atime) 从新到旧排列
ls -U 按文件存放先后顺序
ls -X 按文件后缀排序
ls -i 显示inode号
(时间戳 atime 访问时间
mtime 文件数据修改时间
ctime 文件元数据修改时间
查看某个文件或目录的时间戳:stat 文件或目录路径)
六、命令行历史
history 历史命令查询命令,显示当前终端的历史记录
history 查询历史记录
history -c 清空当前的所有历史记录
history -d 删除某条历史
history -a 将当前终端执行的命令写入历史记录文件中 (文件由 变量HISTORY决定,默认为用户家目录的.bash_history
history -w /path/filename.txt 将历史记录写入指定文件
history -n 将未读过的历史从文件中读取
history -r 将所欲历史从文件中读取
!! 重复执行上一条命令
!-n 重复执行倒数第n条命令
!n重复执行第n条命令
!:0 执行前一条命令(去除参数)
!str 重复前一个以str 开头 的命令
!?str 重复前一个包含str的命令
!str:p 仅打印以str开头的命令历史,而不执行
!$:p 打印输出!$ 上一条命令的最后一个参数的内容
!:p 打印输出(上一条命令中所有的参数)的内容
ctrl -r 在历史命令中搜索命令
ctrl -g 从历史搜索模式中退出
esc, .(点击esc键松开,然后点击.键)
alt +. (按住alt键的 同时点击 . 键)
调用历史参数
cmd ! ^ 利用上一个命令的第一个参数做cmd的参数
cmd !$ 利用上一个命令的最后一个参数做cmd的参数
cmd ! 利用上一条命令的全部参数做cmd的参数
cmd !:n 利用上一个命令的第n个参数做cmd的参数
cmd !n:^ 调用第n条命令的第一个参数
cmd !n:m 调用第n条命令的第m个参数
cmd !n: 调用第n条命令的所有参数
cmd !str:^ 从命令历史中搜索以str开头的命令,并获取它的 第一个参数
cmd !str:$ 从命令历史中搜索以str开头的命令,并获取它的 最后一个参数
cmd !str:n 从命令历史中搜索以str开头的命令,并获取它的 第n个参数
cmd !str: 从命令历史中搜索以str开头的命令,并获取它的 所有参数
七、bash快捷键
Ctrl+L 清屏
Ctrl+O 执行当前命令,并重新显示本命令
Ctrl+s 锁定,输入运行任何命令屏幕上都不显示,但仍执行命令
Ctrl+q 解锁
Ctrl+C 强制结束
Ctrl+D 正常终止
Ctrl+Z 挂起(暂停命令)
Ctrl+a 光标移动到命令行首,相当于home
Ctrl+e 光标移动到命令行尾,相当于end
Ctrl+f 光标向右移动一个字符
Ctrl+b 光标向左移动一个字符
Ctrl+xx 光标在命令行首和光标当前位置之间移动
Ctrl+u 删除光标之前的内容
Ctrl+k 删除光标之后的内容
Ctrl+w 从光标处向左删除至单词首
Ctrl+d 删除光标后的一个字符
Ctrl+h 删除光标钱的一个字符
Ctrl+y 将删除的字符粘贴至光标后
Ctrl+t 交换光标处和之前的单词位置
Alt +f 向右移动一个单词
Alt +b 向左移动一个单词
Alt +r 清除全部内容
Alt +d 从光标处向右删除至单词尾
Alt +c 从光标处开始向右更改为首字母大写的单词
Alt +u 从光标处开始,将右边一个单词更改为大写
Alt +l 从光标处开始,将右边一个单词更改为小写
Alt +t 交换光标处和之前的单词位置
Alt +N 提示输入指定字符后,重复显示该字符n次(n表示具体的数 字)
八、使用ghome-ternima
Ctrl-Shift-n 创建新窗口
Ctrl-Shift-q 关闭当前窗口
Ctrl-Shift-t 创建一个标签页
Ctrl-Shift-w 关闭一个标签页
Ctrl-Paup/padn 切换到上一个/下一个标签页
Ctrl-Shift-c 复制选中的文本
Ctrl-Shift-v 把文本粘贴到当前光标处
九、文件管理
1、文件系统
文件和目录被组织成一个倒根树结构。
文件系统从根目录下开始,
用“/",文件名区分大小写,
以.开头的文件为隐藏文件,
路径分隔符“/”
文件有两类数据,
元数据metadata
数据 data
文件名最长255个字节,包含路径在内文件名称最长4095个字节
蓝色 -->目录;绿色 --> 可执行文件 ; 红色 - -> 压缩文件;浅蓝色 --> 链接文件;灰色-->其他文件
2、Linux根目录下的目录的作用
/boot: 引导文件存放目录,内核文件、引导加载器都存放于此
/bin : 供所有用户使用的基本命令
/sbin: 管理类的基本命令
/lib : 启动时程序依赖的基本共享库文件以及内核模块文件
/lib64: 专用于x86_64系统上的辅助共享库文件存放位置
/etc: 配置文件目录
/home : 存放着普通用户的家目录
/root : 管理员root的家目录
/media: 便携式移动设备挂载点
/mnt : 临时文件系统挂载点
/dev : 设备文件及特殊文件存放位置
/opt: 第三方应用程序的安装位置
/srv: 系统上运行的服务用到的数据
/tmp: 临时文件存储位置
/proc: 用于输出内核与进程信息相关的虚拟文件系统
/sys: 用于输出当前系统上硬件设备相关信息虚拟文件系统
/selinux:securityenhanced Linux,selinux相关的安全政策等信息的存储位置
3、Linux下的文件类型
-:普通文件
d:目录文件
b:块设备
c:字符设备
l:符号链接文件
p:管道文件pipe
s:套接字文件socket
4、显示当前工作目录
每个shell和系统进程都有一个当前的工作目录
1.pwd 显示当前的工作目录
-p 显示真实物理路径
-L 显示链路路径(默认)
5、路径的表示方式
绝对路径:以正斜杠开始,是从根目录开始到达目标目录
相对路径:不以正斜杠开头,从当前目录开始到达目标目录
6、更改目录
cd 单独一个cd命令会从当前目录切换至登录用户的家目录
cd 目标路径:从当前目录切换至目标目录
7、文件通配符
[:digit:]:任意数字,相当于0-9
[:lower:]:任意小写字母
[:alnum:]:任意数字或字母
[:blank:]:水平空白字符
[:space:]:水平或垂直空白字符
[:punct:]:标点符号
[:print:]:可打印字符
[:cntrl:]:控制(非打印)字符
[:graph:]:图形字符
[:xdigit:]:十六进制字符
8、创建空文件和刷新时间
touch 选项 文件路径 : 创建一个文件
-a 仅改变 atime和ctime
-m 仅改变 mtime和ctime
-t [[CC]YY]MMDDhhmm[.ss]
指定atime和mtime的时间戳
-c 如果文件不存在,则不予创建
9、复制文件或目录
cp 选项 原文件路径(src) 目标文件路径(dest)
-i:覆盖前提示
–n:不覆盖,注意两者顺序
-r: -R: 递归复制目录及内部的所有内容
-a: 归档,相当于-dR --preserv=all
-d:--no-dereference --preserv=links 不复制原文件,只复制链名
-p: 等同--preserv=mode,ownership,timestamp
-v: --verbose 显示复制的过程
-f: --force 当普通用户对某目录有rx权限时,使用-f可以将没有修改 权限的文件强制覆盖。即删除再创建
src是文件:
如果dest不存在:新建dest,并将src中内容填充至dest中
如果dest存在:
如果dest是文件:将src的内容覆盖至dest中,基于安全,建 议为cp命令下使用-i选项
如果dest是目录:在dest下新建与src同名的文件,并将src中 的内容填充至新文件中
src是目录:此时使用选项-r
如果dest不存在:则创建指定目录,复制src目录中所有文件至 dest中;
如果dest存在:
如果dest是文件:报错
如果dest是目录:将src目录下所有文件或目录一次复制至 dest目录下
10、移动和重命名文件
mv 选项 src dest
-i :交互式
-f :强制
-r :递归
11、删除文件
rm 选项 目标路径
-i:交互式
-f:强制删除
-r:递归
12、tree 显示目录树
-d :只显示目录
-L level:指定显示的层级数目
-p pattern:只显示由指定pattern匹配到的路径
13 创建目录
mkdir 目录路径 在该目录下创建一个目录
-p:存在于不报错,且可自动创建所需的各目录
-v:显示详细信息
-m mode:创建目录时直接指定权限
14、删除空目录
rmkdir 目录路径 删除这个空目录
-p:递归删除父空目录
-v:显示详细信息
rm -r:递归删除目录树
十、目录、元数据、inode表与文件
人是通过目录文件名来引用一个文件,每一个文件都有一个相对应的i元数据,每一个元数据都对应着一个inode号,目录是目录下的文件和文件inode号之间的映射
1、元数据里面包括:
文件类型,权限,UID,GID
链接数
该文件的和不同的大小和不同的时间戳
指向磁盘上文件的数据块指针
有关文件的其他数据
2、在cp的命令:
分配一个空闲的inode号,在inode表中生成新的条目
在目录中创建一个目录项,将名称与inode编号关联
拷贝数据生成新的文件
3、rm命令
链接数递减,从而释放的inode号可以被重用
把数据块放在空闲列表中
删除目录项
数据实际上不会马上被删除,但当另一个文件使用数据块时将被
覆盖
4、mv和inode
如果mv命令的目标和源文件在相同的文件系统,作为mv命令
用新的文件名创建对应新的目录项
删除旧目录条目对应的旧的目录名
不影响inode表(除时间戳)或磁盘上的数据位置:没有数据被 移动
如果目标和源不同的文件系统,mv相当于cp和rm
十一、软/硬链接
1、硬链接
创建硬链接会增加额外的记录项以引用文件
对应于同一文件系统上一个物理文件
每个目录引用相同的inode号
创建时链接数递增
删除文件时:
rm命令递减计数的链接,文件要存在,至少有一个链接数
当链接数为0时,该文件被删除
不能跨越分区
创建硬链接的语法:
ln filename [linkname]
2、软链接
一个符号链接指向另一个文件
ls - l的 显示链接的名称和引用的文件
一个符号链接的内容是它引用文件的名称
可以对目录进行
可以跨分区
指向的是另一个文件的路径;其大小为指向的路径字符串的
长度;不增加或减少目标文件inode的引用计数;
语法:
ln -s filename [linkname]
3、查看文件类型
文件可以包含多种类型的数据使用file可以检查文件的类型,然后确定适合的命令或应用程序使用,其语法规则为:
file 选项 文件目录路径
-b :列出文件辨识结果时,不显示文件名称
-f filelist: 列出文件filelist中文件名和文件类型
-F:使用指定分隔符号替换输出文件名后默认的:分隔符
-L:查看对应软链接对应文件的文件类型
--help:显示命令在线帮助
原文地址:http://blog.51cto.com/13570214/2060924