命令"/>
LINUX(一) 基础命令
一.linux介绍
1.什么是linux
linux是一款支持多用户、多线程的操作系统
2.linux应用
Linux以免费、开源、开源、稳定、可靠的特点广泛应用公司的服务器中,因此,Linux
也是程序员必了解一项技能
二.linux系统特点及部分网络知识
1.linux系统特点
这里我们以对比的方式去描述Linux系统的特点:
目录结构:在Windows下,我们都是通过文件资源管理器----各个盘---文件夹--路径去存放或者查找文件.
我们可以选择性的在install时为该应用指定路径安装。即用户具有选择性
但是在linux系统中,每个目录都是被提前安排好了他们的 '工作'
如图1所示:
图1
例如:linux中的普通在创建后会被保存在home下,同时为他们创建一个同名的文件夹.
又比如在 /etc目录下 仿制的都是Linux系统的'硬件'
即大部分根目录下文件夹都只能存放相应的文件,是"被约束的目录"
同时,Linux的系统是树状结构,以根目录为开始节点,向下延申.
Linux皆文件:与windows不同,在Linux系统,所有的硬件都被映射成了文件保存在/etc下
2.绝对路径和相对路径
绝对路径:顾名思义,绝对即唯一,是特指,指当前目录已经精确到了某个文件夹下,特指当前文件的路径
相对路径:相对路径没有特指某一个唯一指向某个路径 而是一个笼统的范围路径
举例: 我要找Tom用户下的文件(Tom用户下有三个文件:A、B、C)
如果指定了某个文件就是: /home/Tom/指定文件
如果只是泛指就是:/home/Tom
3.三种网络连接方式
在了解网络连接方式前,应知晓:ip地址一共分为5类:ABCDE
ip地址=网络地址(net-id)+主机地址(host-id)
它们的分类依据是根据其net-id所占字节长度及网络号的前面几位
其中A类是政府机关使用,B类地址是大中型企业使用,C类地址是个人使用,D类地址是用于通信广播,E为保留类,保留位以后使用,此外应该清楚除网络号前几位外的所有网络字段范围的最大容纳范围是0-255.
三种连接方式:
NAT模式:NAT模式是指在用户的虚拟IP系统的IP下,主机生成一个同字段的ip以便于主机和虚拟机交互,同时虚拟机又可以通过使用主机的真实ip做代理访问与外部设备交互,这样就不会因为网段冲突,但外部无法进入
桥接模式:指虚拟系统可以和外界通讯,但由于网段的限制,数量有限,容易造成ip冲突
仅主机模式:独立系统,意识就是自己玩单机
4.内网与外网
相对概念,内网=局域网,外网=广域网,相当于java里的外部类.
二.linux基础命令
1.用户管理指令
用户创建:useradd user_name
用户密码设置:passwd user_name
在创建普通用户后可以为其分配权限,同时会在home下产生一个同名的文件夹,在切换到该用户后会自动切换到这个目录下,也可以在创建时在指定该用户被创建在哪个目录下.、
删除用户:删除用户分为,同时删除用户和家目录,只删除用户两种
当然普通用户没有删除其他用户的权限:可以看到到报错:-bash:/usr/sbin/userdel:权限不够
这里-bash所指的是我们所用的shell版本:Bourne again shell 而sbin代表的是super user,即超级用户.
这时候就需要切换用户: su - root 值得一提的是,当从低级权限用户向高级用户切换时,需要输入用户密码,使用logout或者exit即可登出
删除用户指令:当保留家目录时: userdel username 不保留家目录时:userdel -r username
其中-r表示递归操作选项:recursion
查询用户信息指令: id username 即可查看它的userid和组id以及他所在组
查看当前用户信息:who am i即可,值得一提的是 who am i 查询的是第一次登陆的用户,在终端切换用户后再使用 who am i 仍然会返回第一次登陆终端的用户信息
什么是用户组:类似于角色,系统中可以对多个有共性/权限的用户进行统一管理
方便为这些用户同时赋予权限,直接对组赋权,则组内的所有成员都会获得这个权限
新增组:groupadd group_name
删除组:groupdel group_name
当创建用户不对其分组时,系统会默认生成一个同名的组,并将该用户分配的该组中
在创建用户时为其分组:useradd -g group_name user_name
修改用户的组:usermod -g group_name user-name
s
用户的配置文件被保存在 /etc/passwd下,用户的配置文件中记录用户的各种信息,其中每行的含义分别是:
用户名:密码(加密后的):uid:gid:解释信息(一般省略):家目录路径:解释器版本
这里犯了个低级错误,保存用户信息的应该是个文件,而不是目录,直接用cat或者more查看就行
用户id、组id、组名
其中登录shell表示在Linux内核中不同的shell版本对指令进行翻译,并交给Linux内核处理,这里有点像编程工具的工作思路
由于Linux内核不认识这些指令,需要不同版本的shell工具去进行解释后运行
用户的组信息在/etc/shadow文件夹下,可以查看其相应信息,分别表示:
在影子文件中,字段分别表示以下含义:用户名:加密密码:最后一次修改时间:最小修改时间间隔:密码有效期:密码需要变更前警告天数:密码过期后的宽限时间:账号失效时间:保留字段
这里的影子文件本身存在于/etc/passwd下由于这个目录是开放的后来被单独提取出来保证密码的安全性.
2.运行级别
运行级别分类:
0 表示关机 1表示单用户(可以找回丢失密码) 2是没有网络的多用户模式 3是有网的多用户模式(小黑板模式)4系统未使用 5是3的升级版 (图形界面) 6 是系统重启
常用的运行级别是3和5两种级别
更改模式:init(0-6)
在/etc/inittab文件中 multi-user.target 代表3级别 而graphical.target代表5级别
ps: graphical代表图形化的即第5级别
查看当前运行级别:systemctl get-default 查看当前运行级别
设置默认运行级别:set-dafault TRGET.target(TARGET是参数)
3.帮助指令
man 【命令或者文件】
help
4.文件目录指令
创建目录:mkdir 一般用于创建一级目录 mkdir dir_name(在当前目录下创建)
当需要联级创建时 使用 mkdir -p 路径 其中没有的都会一次性创建
删除目录:rmdir 用于删除非空目录,如果不是非空则不能删除,-p选项可以联级删除,仍然需要删除子目录后非空
rm -p dir_name1/dir_name2,当子目录被删除后如果非空,则可以实现联级删除
如果要删除非空目录(即联级删除)需要使用rm命令 rm -rf来删除
rf表示强制递归删除且不提示 f表示force 强迫
touch指令创建空文件,指在当前目录下创建空文件
touch file_name或者touch /路径/file_name
cp指令将文件拷贝到指定目录下
cp【选项】文件源 拷贝的位置(文件源如果是在当前路径下,可以直接写文件名,否则写绝对路径) 其中-r表示递归的拷贝整个文件夹
也可以备份文件 cp 源文件 目标文件
\cp会强制覆盖 不提示
拷贝整个文件夹 -r 参数
mv:当文件在同一个目录,就是重命名否则是移动操作
mv指令表示移动文件与目录或重命名
基本语法: mv old_name new_name
mv file_name new_directory:将文件名为file_name的文件移动至new_directory下
也可以同时重命名和移动
移动整个目录: mv old_dir new_dir
cat指令可以查看文件内容,cat查看文件更加安全,因为不能需修改
cat【选项】文件名 选项:-n 显示行号(set nu 行号:number)
管道命令:将前面指令操作的将结果交给下一个指令
more指令:more指令是一个文本过滤器,以全屏幕的方式按页进行显示文本内容,more指令中内置了若干快捷键,可以帮助用户更好的实用工具
space 代表向下翻一页 enter代表向下翻一行
这样的文本阅读方式可以更好的让用户一点点的捕捉需要的信息
less:less指令也是用来查看文件内容,它的功能和more类似,但是比more更加强大,less的加载是动态加载,面对大文件时,less的动态加载效率更高
less file_name
echo指令非常重要 可以输出内容至控制台
echo【选项】【输出内容】
echo不仅可以输出自定义变量也可以输出环境变量,字符串或者是输出指令执行后的结果
head指令用于显示文件开头部分
head 文件 head -n number 文件 如果不输入参数number则默认查看前10行
tail和head类似,用于输出文件的后number行
tail -n number 文件 当参数编程-f时 tail命令变为实时监控某个文件 取消监控:crtl+c
输出重定向:>和>> 前者是覆盖式输出 后者是追加式
ln指令:软连接也称符号连接,类似于windows里的快捷方式,主要是存放了链接其他文件的路径
ln -s【源目录】【软链接名】
删除软链接:rm 软链接名
history指令:查看之前执行的指令,可以通过添加参数来只查看最近n条被执行的指令
5.时间日期类指令
date可显示当前时间,如果只希望看到年/月/日 :date + %Y/m/d
如果想查看指定的日期:date "+%Y-%m-%d %H:%M:%S"
在这里的格式要注意 date +命令 (date和加号有空格但是和命令没有)
--------------------------------------------------------------------------------------------------------------------------------
date设置日期:date -s "字符串时间"
查看日历: cal
查看某个年的完整日历:cal 年份
6.查找指令:find指令将从指定目录向下递归地遍历各个子目录,将满足条件的文件或者目录显示在终端
find 【搜索范围】 【选项】
选项:-name <文件名> -user <用户名> -size <+,->
搜索范围越详细越好,否则耗费的时间太大,上述是按照什么方式去搜索
locate指令可以快速定位文件路径,locate指令利用实现建立系统的所有文件名所有文件名称及名称及路径的locate数据库实现快速定位给定的文件
locate无需遍历整个文件系统,直接查询速度快
ps:在第一次使用locate之前,需要先用updatedb指令创建locate数据库
优化后进行搜索,即在locate数据库中进行检索,故速度较快,但同时也需要管理员定时对数据库进行更新
grep指令进而管道符号,grep过滤查找,|表示将前一个命令的处理结果传递给后面的命令处理
grep 【选项】 查找内容 源文件
常用参数 -n 显示匹配的行号 -i忽略字母大小写
7.解压和压缩指令
zip和unzip分别用于对文件夹进行压缩和解压
zip 压缩后文件 源文件
zip -r 压缩后文件名 路径/*:将该路径下所有内容压缩为xxx
unzip -l 压缩包名:查看压缩包内内容
unzip 压缩包 -d 压缩至的路径
tar指令即可以解压也可以压缩,通过选项指定。
tar [选项] 压缩后文件名.targz 打包的内容(打包目录时.tar.gz)。
-c 产生.tar打包文件 c:create
-x 解包.tar文件
-z 打包同时压缩 拉链:zip
-v 显示详细信息
-f 指定压缩后的文件名
产生两个选项: -zvf 和 -xvf
tar -cvf 压缩后文件名 要压缩的文件
tar -xvf 压缩包名称
tar -zcvf 压缩后的文件名.tar.gz 源文件
tar -zxvf 压缩包名称
更多推荐
LINUX(一) 基础命令
发布评论