linux简单入门
Posted Edison.W
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux简单入门相关的知识,希望对你有一定的参考价值。
目录
Linux简介
Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹(Linus Benedict Torvalds)于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。它支持32位和64位硬件,能运行主要的Unix工具软件、应用程序和网络协议。
Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux有上百种不同的发行版,如基于社区开发的debian、archlinux,和基于商业开发的Red Hat Enterprise Linux、SUSE、Oracle Linux等。----来自百度
Linux目录结构
linux没有像windows一样的盘符该鸟,所有文件都在根目录下存储。
-
绝对路径:以根目录为起点,完整地表示到目标文件或目录的路径。
- 比如就是/home/kali/1,表示的就是根目录下home目录下kali目录下的1文件
-
相对路径:以当前目录为起点,完整地表示到目标文件或目录的路径。比如./kali/1
/ bin :基本程序,存放着最经常使用的命令
/boot:存放linux启动时的引导文件
/ dev :设备信息
/etc:存放系统管理所需的配置文件
/home:普通用户家目录
/lib:存放最基本的动态链接共享库,类似windows里的dll文件。
/media:系统识别的一些U盘、光驱等设备挂载到这个目录下
/mnt:默认临时挂载目录
/opt:这是给主机额外安装软件所摆放的目录
/proc:进程信息
/root:root用户家目录
/run:是一个临时文件系统,存储系统启动以来的信息
/sbin:存放的是系统管理员使用的系统管理命令
/srv:存放一些服务启动之后需要提取的数据
/sys:内核文件系统
/tmp:存放临时文件,重启后清空
/usr:用户的很多应用程序和文件都放在这个目录下,类似于 windows 下的 program files 目录
/var:存放日志等不断扩充的文件目录
Linux文件命令
- linux命令遵循一定的基本格式:
Command [options] [argument] 也就是命令 [选项] [参数]
文件处理命令
-
ls:命令显示指定工作目录下的内容,如果不提
供参数,ls将在当前目录上运行。-
选项与参数:
-a:列出指定目录下的所有文件和子目录(包括以“.”开头的隐藏文件)。
-l:使用长格式显示文件或目录的详细属性信息。 -
ls -al:使用格式化列出隐藏文件
-
-
touch:更新已存在的文件的事件标签,若文件不存在则创建一个新的文本文件
-
mkdir:创建目录
- 参数:
-p:若路径中目录不存在,则创建新目录
mkdir -p dir/1/2/3/4创建多层目录
-v:查看文件创建过程
- 参数:
-
cp:将一个或多个源文件复制到指定目录
- 参数:
-r :递归处理,将指定目录下的文件及子目录一并处理
-p:拷贝的同时不修改文件属性,包括所有者,所属组,权限和时间
- 参数:
-
mv:命令用于移动或重命名目录或文件
- 参数:
-b: 若需覆盖文件,则覆盖先前备份
-f:强制的意思,如果文件已经存在,不会询问直接覆盖
- 参数:
-
rm:用于删除一个文件或目录
- 参数:
-f:强制删除文件或目录
-rf:选项-r与-f结合,删除目录中所有文件和子目录,且不一一确定
-i:在删除文件或目录对要删除的内容逐一进行确认
- 参数:
-
rmdir:删除目录
- 比如 rmdir dir
-
pwd:显示当前目录绝对路径
cd命令:改变当前工作目录
cd ~ //进入home目录,~表示home目录,每个用户的home目录不同,root用户的home目录为/root,其他用户的home目录默认为/home/用户名
cd / 回到根目录
cd … 回到上一级目录
文件查看命令
常用文件查看命令
-
cat
- 原意:concatenate and display files
- 文件功能:打印文件内容到输出设备
- 格式:cat 文件名
- 实例: cat 123.txt
- 选项和参数
-b:列出行号,仅针对非空白行号显示,空白行不标行号;
-n:打印出行号,连同空白行也会有行号,与-b的选项不同
-
more
- 查看file的内容(一页一页的显示档案内容)
- 空格键(space):代表向下翻一页
回车键(Enter):代表向下翻一行
b 键:往前查看一页;
q 键:退出。
-
head:
- 查看file的前10行
- head -n 20 fliename 查看前20行
-
tail:
- tail -n 文件名查看文件的后n行
- tail -2 filename 查看一个文件的最后两行
tail -n +100 只列出100行及以后的数据
-
grep命令可以在指定文本文件中匹配字符串,输出匹配字符串所在行的全部内容。
- 命令格式: grep [选项] 关键字 查找范围
- 常用选项
-e:指定字符串做为查找文件内容
-n: 在显示符合样式的那一行之前,标示出该行的行号
-r:以递归的方式查找符合条件的文件,并打印出该字符串所在行的内容
编辑文件
- vi编辑器
vi/vim 的介绍
是linux中最通用的文本编辑器,vim编辑器是从vi发展出来的一个性能能更强大的文本编辑器。可以主动的以字体颜色辨别语法的正确性,方便程序设计,vim与vi编辑器完全兼备
vi/vim 三种模式:命令模式/一般模式(command mode)、插入模式(input mode)、末行模式/指令命令模式(last line mode)。
插入模式:
在一般模式下按下键盘【i, I, o, O, a, A】进入插入模式,屏幕的左下方会出现【–INSERT–】的字样,表示当前模式下,用户可以编辑修改文本的内容。按下【Esc】则退出编辑模式。
末行模式/指令命令模式:
在一般模式下按下键盘【: / ?】任意一个,光标移动到最下面一行,进入末行模式。可以查找数据、替换、可保存文件、退出 vi、显示行号等操作。
- 复制粘贴:
yy 复制光标所在行
p 粘贴
dd 删除光标所在行(实际是剪切)
x 删除当前光标所在的字符
X(大写) 删除当前光标前一个字符
光标移动:
h 左移 j 下移 k 上移 l 右(四个箭头也可以上下左右移动)
H 当前屏幕第一行
M 当前屏幕中间
L 当前屏幕最后一行
命令模式
:或者/
w 保存
q 退出
wq 或 x 保存退出
q!不保存强制退出
wq!强制保存并退出,管理员才有权限
Linux的用户和组介绍
用户
- Linux用户类型分为三类:超级用户、系统用户和普通用户
- 超级用户:用户名为root或USER ID(UID)为0的账号,具有一切权限,可以操作系统中的所有资源。Root用户可以进行基础的文件操作及特殊的系统管理,可以修改系统中的任何文件。
- 系统用户 UID 为 1~999: Linux 系统为了避免因某个服务程序出现漏洞而被黑客提权至整台服务器,默认服务程序会有独立的系统用户负责运行,进而有效控制被破坏围。
- 普通用户 UID 从 1000 开始:是由管理员创建的用于日常工作的用户,能够使用Linux的大部分资源,一些特定的权限受到控制。用户只对自己的目录有写权限,读写权限受一定的限制,有效保证了系统安全性。
- 需要注意的是,UID 是不能冲突的,而且管理员创建的普通用户的 UID 默认是从 1000开始的(即使前面有闲置的号码)。
用户组
- 有时我们需要让多个用户具有相同的权限,比如查看、修改某一个文件的权限,此时最好的方式是建立一个组,让这个组具有查看、修改此文件的权限,然后将所有需要访问此文件的用户放入这个组中。那么,所有用户就具有了和组一样的权限,这就是用户组。
- 用户和用户组的对应关系有以下 4 种:
- 一对一:一个用户可以存在一个组中,是组中的唯一成员;
- 一对多:一个用户可以存在多个用户组中,此用户具有这多个组的共同权限;
- 多对一:多个用户可以存在一个组中,这些用户具有和组相同的权限
- 多对多:多个用户可以存在多个组中,也就是以上 3 种关系的扩展。
相关命令
id 查看当前用户身份信息
id user 查看user用户身份信息
whoami 查看当前登录用户名
sudo 以管理员身份执行命令,普通用户默认无法使用sudo命令,需要将用户添加到wheel组当中
su - username是用来改变当前用户的,如:su - root,就是将当前用户切换为root连同环境变量一同切换到root用户,用了su - root之后,下面所有的命令就可以不用打sudo了,因为当前用户已经是管理员root了。同时当从 root用户切换到普通用户时不需要输入密码,而从普通用户切换成 root用户需要进行验证;
- useradd 创建新的用户
- 格式:user [选项] 用户名
- 选项:-d制定用户的家目录 ; -u指定用户逇默认UID; -g制定一个初始的用户基本组
- passwd 修改用户密码、过期时间、认证信息等
- 格式:
passwd [选项] [用户名]
- 参数
- -l 锁定用户,禁止其登录
-u 解除锁定,允许用户登录
-d 使该用户可用空密码登录系统
-e 强制用户在下次登录时修改密码
- -l 锁定用户,禁止其登录
- userdel 命令用于删除用户
- 格式为“userdel [选项] 用户名”。
- -r //同时删除用户及用户家目录
- usermod用于修改用户的属性
- 格式为“usermod [选项] 用户名”。
- 参数
- -d -m 参数-m 与参数-d 连用,可重新指定用户的家目录并自动把旧的数据转移过去
-u 修改用户的 UID
-g 变更所属用户组
-G 变更附加用户组
-l 修改用户名称
- -d -m 参数-m 与参数-d 连用,可重新指定用户的家目录并自动把旧的数据转移过去
Linux权限管理
之前写过,点这里看
每个文件的权限针对三类对象进行定义:
- 它的所有者(由u表示)
- 它的所有组(由g代表),代表该组的所有成员
- 其他(由o表示,除所有者和所有组的用户)
- 以下三个命令控制与文件关联的权限:
- chmod 更改文件的权限
- chown 更改文件的所有者
- chgrp 更改所有者组
chmod 修改文件权限
选项
-R : 对目标目录下的所有文件与子目录进行相同的权限变更(以递归的方式逐个变更)
示例:
chmod o=w file 表示给其他人授予写入file这个文件的权限
chmod go-rw file 表示删除file中组群和其他人的读和写的权限
chgrp 更改文件的属组
语法格式
chgrp 选项 username filename
选项
-R:进行递归的持续变更,亦即连同次目录下的所有档案都变更
linux入门基础知识及简单命令介绍
linux入门基础知识介绍
1、计算机硬件组成介绍
计算机主要由cpu(运算器、控制器),内存,I/O,外部存储等构成。
cpu主要是用来对二进制数据进行运算操作,它从内存中取出数据,然后进行相应的运算操作。不能从硬盘中直接取数据。
内存从外部存储中取出数据供cpu运存。内存的最小单位是字节(byte)
备注:由于32的cpu逻辑寻址能力最大为32内存单元。因此32位cpu可以访问的最大内存空间为:4GB,算法如下:
2^32=2^10*2^10*2^10*2^2
=1024*1024*1024*4bits
=1024*1024*4Kbit
=1024*4Mbit
=4Gbit
32位cpu可以有4Gbit种变化,但是由于内存最小单位是字节,因此可以访问的内存空间是4GByte
2、操作系统组成及系统功能
一个完整的linux操作系统由内核(kernel)+gun开源程序组成,因此linux的完整叫法又叫GUN\linux
kernel的作用是:隐藏底层硬件,并向上一层提供驱动接口(ABI:application binary interface)。
3、linux主流发行版及开源协议
linux是一个开源协议的产物,他由很多linux开发人员共同完成。
所谓开源就是开放源代码,源代码需经过编译器编译成二进制格式才能被机器所认识。但是不是每个人都可以有能力对源码进行编译,因此有些厂商或组织将他们编译成二进制,提供给用户直接使用。这种将源码编译成二进制的厂商或组织即为liunx发行商,发布的linux产品即为发行版。
主流的发行版有:
debian 二次发行版ubuntu\knopix
redhat 二次发行版redhat enterprise(RHEL企业版),以及基于二次RHEL发行的再次发行版centos(企业版)
sls 二次发行版 slack ware ,基于slackware发行的S.U.S.E(企业版)和opensuse(个人版)。
其中redhat和sls有商业公司支持,debian是社区支持。
所有的开源产品必须有一种协定被大家所遵守并接受,因此有了开源协议。
开源协议主要有如下几种:GPL、LGPL、BSD、APACHE
gpl:所有的人都可以随便使用源代码,但是只要引用了gpl协议中的代码,就必须开放源代码。
lgpl:如只调用库文件,则不必开放源代码
BSD和apache则相对宽松,只要不以作者的名义发布软件就可以。
4、程序包管理器介绍
一个完整的程序包括如下部分:二进制可执行文件、库文件、配置文件、帮助文件。
程序包管理器的作用是管理程序包的安装、载知询、升级等作用。
linux主流发行版程序包管理器:
debian:dpkg
redhat:rpm
suse:rpm
winodws程序包格式是.exe或msi,linux程序包格式ELF,查看linux程序包命令:]# file 命令路径
如:
[[email protected] ~]# file /bin/cat
/bin/cat: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.18, stripped
[[email protected] ~]#
5、linux操作接口介绍及分类
linux操作交互窗口有两种:GUI图形界面(gnome、kde)、CLI命令行接口。
CLI接口主要有如下几种:
物理终端:console
虚拟终端:ttys 对应目录:/dev/tty# //#代表终端号码 ,在终端界面中按ctrl+alt+[f1-f7]
伪终端:pty 对应目录:/dev/pts/ , 远程桌面、图形界面的终端
6、linux哲学思想介绍
linux哲学思想有如下几点:
遵循一切皆文件,硬件设备也会被用文件的方式体现。
由众多的小程序拼凑而成
7、linux入门命令介绍:
ifconfig:查看ip地址,也可以使用ip addr list
[[email protected] ~]# ifconfig
[[email protected] ~]# ip addr list
echo:回显命|p>[[email protected] ~]# echo hello word
hello word
tty:此命令主要用显示在哪个终端上
[[email protected] ~]# tty
/dev/pts/0
startX:启动图形界面,centos7中,在哪个终端上显示
export:
pwd:输出目录所在路径
[[email protected] ~]# pwd
/root
history:显示历史命令记录
shutdwon :关机命令
shutdown [OPTION]... TIME [MESSAGE]
option:
-r:reboot重启
-h:halt 关机命令
-c:取消shutdown操作
-k:发送提示信息,并不执行e擏作
time:
now:立即执行相应操作
hh:mm :在几点几分执行操作
+m :当前时间起几分钟后执行操作
poweroff:关机或重启命令
--verbose :用于debug信息。
reboot:等同于poweroff
hwclock:显示系统硬件时间,等同于clock
[[email protected] ~]# hwclock
Mon 28 Aug 2017 04:06:55 PM CST -0.625266 seconds
[[email protected] ~]# clock
Mon 28 Aug 2017 04:07:09 PM CST -0.500248 seconds
[[email protected] ~]#
hwclock的命令选项:
-s, --hctosys;Set the System Time from the Hardware Clock.将硬件时间同步到系统时间
-w, --systohc; Set the Hardware Clock to the current System Time.将系统时间同步到硬件时间
date:显示、设置系统时间,系统启动时从硬件读取时间,启动后将不在使用硬件时间,而是使用系统时间。
[[email protected] ~]# date
Mon Aug 28 16:17:10 CST 2017
命令使用格式:
显示时间
date [OPTION]... [+FORMAT]
FORMAT
+%d:天
+%m:月
+%y:年
+%M:分钟
+%H:时
+%S:秒
设置时间
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
[[email protected] ~]# date 082816312017.30
Mon Aug 28 16:31:30 CST 2017
cd:切换目录命令
]#cd :不加参数,表示切回用户家目录
]#cd ~ :表示切回用户家目录,~表示用户家目录
]#cd - :表示在当前目录和上一次目录间来回切换。此时涉及两个变量PWD和OLDPWD
8、linux命令分类及帮助信息分类
linux命令分为内嵌命令和外部命令。
查看命令属于内嵌命令或外部命令:
]# type 命令
如 [[email protected] ~]# type cd
cd is a shell builtin //内嵌命令
[[email protected] ~]# type cat
cat is /bin/cat //外部命令
内嵌命令帮助:]#help 命令
如:[[email protected] ~]# help cd
cd: cd [-L|-P] [dir]
Change the shell working directory.
外部命令帮助:
① ]#命令 --help
如:[[email protected] pts]# ls --help
Usage: ls [OPTION]... [FILE]...
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort.
②]#man 命令
[[email protected] pts]# man # 命令 //#表示章节
man命令使用格式:
man [-acdfFhkKtwW] [--path] [-m system] [-p string] [-C config_file] [-M pathlist] [-P pager] [-B browser] [-H htmlpager] [-S section_list]
[section] name ...
man章节介绍
1 User Commands //普通用户,系统用户命令使用帮助
2 System Calls //系统调用使用帮助
3 C Library Functions //c库函数功能使用帮助
4 Devices and Special Files //设备和特殊文件使用帮助
5 File Formats and Conventions //文件格式和协议使用帮助
6 Games et. Al. //游戏帮助
7 Miscella
8 System Administration tools and Deamons //系统管理员及守护进程帮助
9、linux系统目录命名规则
可以使用除了/以外的任意字符,但是不建议使用特殊字符和空格
目录名严格区分字符大小写
目录名长度不能超过255个字符
同一目录下的目录和文件不能同名。
10、linux中字符引用介绍:
‘ ’:强引用,字符的含义发生改变
”“ :弱引用,字符的如是变量,则显示变量值,改变原来字符的值。
[[email protected] ~]# echo ‘$PWD‘
$PWD
[[email protected] ~]# echo "$PWD"
/root
以上是关于linux简单入门的主要内容,如果未能解决你的问题,请参考以下文章