Linux笔记详细版本(1)

Linux下载:Linux1810版本

1.shell:命令行解释器,它用于用户交互和编写 shell 脚本。类似于 cmd.exe

2.快捷键使用

  1. Tab键:命令补全,当忘记命令的全称时可以采用来获取提示
  2. Ctrl+c键:强行终止当前程序
  3. Ctrl+d键:退出终端
  4. Ctrl+s键:暂停当前程序,暂停后按下任意键恢复运行
  5. ,恢复你之前输入过的命令

Linux

1.为什么要学linux?

因为它也属于一种操作系统,和window比起来更小,更便宜,更好修改。

而且足够好用。

 Linux的前身Unix因为过大而且只能运行在大型主机上,无法推广开来。Richard Stallman世界顶级黑客,他发起了GNU计划,倡导允许用户自由地观看修改软件源代码。受此鼓舞的Linus,也就是之后的linux之父,开始并编写出了第一个版本的Linux内核。Linux经过更改,开始可以运行在Windows x86上,因此饱受好评。

2.Linux安装过程略过不谈。

在开始学习linux之前,我们需要一台干净的机器,来安装linux。但大部分情况下我们的电脑已经安装了Windows,这两个操作系统会产生冲突。此时我们不希望将Windows卸载,那么久需要先安装虚拟机,模拟出一台新机器(virtual machine),再安装linux。

3.网络连接的三种方式:

当网段相同,即192.168.0.20的前三个数字相同时,我们就处于同一个网络下。

桥接模式:我们的网段相同,系统可以相互通讯。它的问题在于,最后一位,即20这里,最大值为255,也就是这个网段下最多255台系统。

NAT模式(网络地址转换模式):当大家的网段为192.168.0,我持有一台主机192.168.0.50,此时我想再创建一台虚拟系统在大家的网段下,但没有足够ip地址了。解决方法为我赋予虚拟系统为192.168.100.88此时我的主机会自动与虚拟系统创建一个内网192.168.100.xx,这时我的虚拟系统就可以通过192.168.0.50访问192.168.0下的其他IP地址了。

主机模式:独立的系统

NAT模式是最常用的。

4.虚拟机的克隆,分为硬链接和软链接两种。选中已创建的虚拟机,右键选择管理——>克隆。

5.虚拟机快照,当要进行某些不确定的操作时,我们会担心操作可能会造成系统异常,这时如果能回到未进行操作之前的系统状态,就不用担心了。VM提供了快照功能来实现。

选中虚拟机,右键à快照—>拍摄快照(记录当前虚拟机状态)—>操作—>选中虚拟机,右键à快照à快照管理器—>选择快照à点击转到。

6.安装vmtools。有时我们需要使用主机Windows上的文件,vmtools可以做到这一点。

Vmtools安装略

启用共享:在设置中,选择选项,共享文件夹,总是启用,添加文件夹,确定。之后就可以在主文件夹中其他位置,计算机中的mnt,hgfs中找到共享的文件夹。

需要注意的是,在实际开发中,文件的上传下载是需要使用远程方式完成。(之后再学)

7.linux目录结构

树状文件目录,根目录为“/”,在这个目录下创建其他的目录。

Linux中,一切文件皆目录。

根下的目录名称也是定死的,每个特定名称的目录有其特定作用,不像Windows一样可以改哪个盘的名称。

Eg:/bin,存放最经常使用的命令。

/home,存放普通用户的主目录,在Linux中每一个用户都有一个自己的目录,一般以用户的账户号命名。

/root,该目录为系统管理员的用户主目录

/lib,系统开机所要用到的最基本的动态连接库。几乎所有的应用程序都需要它。

/etc,所有系统管理所需要的配置文件和子目录。

/usr,用户的很多应用程序和文件放在下面,类似于windows内的program_files

/boot,放置Linux启动的核心文件。

 /proc,用来获取系统的一些信息,不可以更改。

/srv与/sys,不可以更改。

/dev,类似于Windows的设备管理器,把所有硬件用文件形式存储。

/media,Linux会把一些设备自动识别,当识别后,Linux会把这些设备挂载到这个设备下。

/mnt,让用户临时挂载别的文件系统,我们将外部比如主机上的文件与/mnt下的新建目录建立一个链接,我们就可以查看外部文件内容了。

/opt,存放安装文件,比如mysqlstting.exe。

/usr/local,安装器(mysqlstting.exe)目标安装的目录,比如这个在这个目录下放mysql。一般是通过编译源码方式安装的程序。

/var,存放不断扩张的东西,比如日志文件。

8.Linux远程登录

公司的项目实际运行在公网上,并不在公司或者自己的电脑上,当想要对项目进行管理,就需要远程登录。

远程登录与修改xshell

文件上传与下载xftp

Xshell的使用,首先需要目标主机的IP地址,假设我们的目标主机就是之前建立的虚拟机,就可以用虚拟机的终端输入ifconfig来查询IP地址。如果想看两台机器能否互相连接,可以使用在cmd中输入ping ip地址的方式检测。

准备就绪后打开xshell,新建连接,输入IP地址,创建即可。我们可以通过终端输入指令来控制远程Linux。

Eg:输入reboot,Linux自动重启。

Xftp的创建连接过程和Xshell相同。

9.vi与vim

vi类似于Windows内的文本编辑器,vim则是vi的加强版本。

vim使用的一些例子如下,更多需要查看官方文档。

  1. 创建一个java文件:vim xxx.java
  2. 按i进入编辑模式。
  3. 输入:进入命令模式。输入wq代表保存并退出,输入q代表退出。q!代表不保存退出
  4. 拷贝当前行yy,拷贝光标以下5行为5yy
  5. 撤销u
  6. 删除当前行 dd
  7. 光标移动到最头部 gg 光标移动到最尾部 G
  8. 光标移动到指定位置 输入20+shift g
  9. 查找指定文字 在命令行下 /xxx,按enter开始查找,按n查找下一个
  10. 显示行号 :set nu
  11. 不显示行号 :set nonu

10.关机与重启

shutdown -h now 立即关机

shutdown -h 2 两分钟以后关机

shutdown -r now 立即重启

halt 立即关机

reboot 立即重启

sync 将内存数据同步到磁盘

11切换用户与注销账户

切换 su – 用户名  当高权限向低权限切换,不需要输入密码,当低权限向高权限切换,需要输入密码。

注销账户 logout,必须在运行级别3下才有效,在图形界面无效。(运行级别见后文)

11.用户管理

添加用户 useradd 用户名,该用户的默认家目录在/home/用户名下。

useradd -d 指定目录 用户名,创建用户在指定目录下。

passwd 用户名 为指定用户设置密码

pwd 显示当前用户所在的目录

userdel 用户名 删除用户,但保留文件主目录。一般情况下使用这个。

userdel -r 用户名 删除用户,不保留其文件目录

id 用户名 查看用户信息

12.用户组

对于有共性/权限的用户,我们可以将他们划到一个组里进行管理。

groupadd 组名  新增一个组

groupdel 组名  删除一个组

useradd -g 用户组 用户名

usermod -g 用户组二 用户名  把一个用户从组一放到组二(组二需要先存在)

whoami 查询当前登录的用户是谁

/etc/passwd 在这个文件里存放了用户user的配置文件,记录用户的各种信息。

每行的含义 用户名:口令:用户标识号:组标识号:注释性描述:主目录:登录Shell

Ps:shell有很多种,她相当于一种命令解释器,当我们输入ls时,shell会对其进行翻译,生成能让Linux明白的的指令。

/etc/shadow 口令的配置文件

/etc/group 组的配置文件,记录Linux包含的关于组的信息

13.指定运行级别

运行级别:

0 关机

1 单用户(在这个状态下可以找回丢失密码)

2 多用户无网络服务(已经不常用了)

3 多用户有网络服务(最常用,因为没有图形用户界面可以节省很多资源)

4 系统未使用保留给用户(可以忽略)

5 图形界面(也是多用户)

6 系统重启

init 数字 切换不同用户级别

systemctl get-default 查询默认用户级别

systemctl set-default xxx.target 指定默认用户级别,比如graphical.target代表级别5。multi-user.target代表级别3

14找回root密码

在centOS启动时,按e,进入编辑页面,使用键盘上下移动光标,找到以“Linux16”开头内容所在行,在最后面输入 init=/bin/sh

再按住ctrl+x进入单用户模式

再输入mount -o remount,rw /

再输入passwd 输入密码

最后输入 touch /.autorelabel 与exec /sbin/init

14.帮助指令

man[命令或配置文件] 获得帮助信息

help 命令 获得shell内置命令的帮助信息(有时百度查也很可靠)

15文件目录指令

pwd 显示文件绝对路径

ls -lh 以人性化和列的形式显示当前目录内容

cd [参数] 切换到指定目录

eg:cd ~ 回到自己的家目录

cd .. 回到当前目录的上一级目录

mkdir [选项] 要创建的目录 。选项常用 -p 创建多级目录

eg:mkdir -p /home/animal/tiger

rmdir 指定目录 删除空目录,如果目录不为空,无法删除

rm -rf 指定目录 删除指定目录

touch 创建一个空文件 eg:touch hello.txt

cp [选项] 欲拷贝的文件 拷贝目标地址 将目标文件拷贝到目标地之下。当写为 \cp时,表示强制覆盖(即目标文件夹下已有文件,但覆盖写入)。

eg: cp -r /home/bbb /opt  将home下的bbb文件夹复制到opt目录下

mv oldnamefile new namefile 重命名

mv /temp/movefile /targetfolder 移动文件

cat [选项](-n 显示行号) 要查看的文件 浏览文件,但不能修改文件

less 要查看的文件  也是查看文件,但是是根据显示的内容进行加载,对大文件高效。它的操作键有(q 退出。空格 向下翻动。/目标字符 向下查询目标字符{按n一个个往下})

echo [选项] 输出内容 eg:echo $HOSTNAME 输出主机名

head -n 5 文件 输出文件头5行内容

tail -n 5 文件 输出文件尾部5行内容

tail -f 文件 实时追踪该文档的更新

> 重定向 eg:echo “hello world” > /home/hello2.txt 代表在home文件夹下的hello2.txt内覆盖写入hello world

>> 添加写入

ln -s [原文件或目录] [软链接名] 类似于Windows内的软链接方式,存放链接其他文件的路径。这条语句作用为:为原文件创建一个软链接

eg: ln -s /root /home/myroot  (在/home目录下创建一个软连接myroot,连接到/root目录)

history 10 查看最近的十条指令。查看已执行过的历史命令,也可以执行历史命令

16时间日期类

date 显示当前时间

date +%Y 显示当前年份

date +%m 显示当前年份

date +%d 显示当前是哪一天

date “+%Y-%m-%d %H:%M:%S” 显示年月日时分秒

date -s 字符串时间 eg:date -s “2020-11-03 20:02:10”

cal [选项] 查看日历指令

17搜索查找类

find [搜索范围] [选项] 按照树形目录向下查找目标,当查找成功则会显示路径,不成功则无反馈

选项 -name 按照指定的文件名查找模式查找文件

-user 查找属于指定用户名所有文件

-size 查找指定文件大小的文件

locate [目标文件] 快速定位文件路径,它无需遍历整个文件系统,它会创立一个数据库保存文件路径,管理员定期对这个数据库进行更新。

在使用locate之前,要先执行updatedb

which [指令名] 查看指令存放位置

grep 过滤查找 -n 显示行号 -i 忽略字母大小写

eg:cat /root/hello.java | grep -n “hello” 或者  grep -n “hello” /root/hello.java  查看/root/hello.java文件并查询其内是否有hello字段  

18.压缩与解压缩

gzip 文件 压缩文件,只能将文件压缩为*.gz

gunzip 文件.gz 解压缩文件

zip [选项] xxx.zip 目标文件 压缩文件或目录 -r递归压缩,即压缩目录

unzip -d <目录> 解压文件 将解压文件放到指定目录下、

tar [选项] xxx.tar.gz 打包内容

-c 产生.tar打包文件

-v 显示详细信息

-f 指定压缩后的文件名

-z打包同时压缩

-x解包.tar文件

经常将它们组合使用eg: tar -zcvf pc.tar.gz /home/pig.txt /home/cat.txt

tar -zxvf /home/pc.tar.gz -C /opt/temp 将前面的文件解压到后边目录

19组管理和权限管理

在Linux中每个用户必须属于一个组,不可以在组外。Linux中每个文件都有所有者、所在组、其他组的概念

所有者:一般为文件的创建者

ls -ahl 查看文件所有者

chown 用户名 文件名 (修改文件的所有者

chown 用户名:组名 文件名 (修改文件所有者和所在组

chown -R 用户名 目录名 (修改目录以及它下面所有文件的所有者

所在组,假设文件b由a创键,那么b所在组就是a所在的组

chgrp 组名 文件/目录 修改文件/目录所在组

文件权限:-rwxrw-r—

第一位代表文件类型,-:普通。l:链接文件。d:目录。c:字符设备(鼠标,键盘)。b:块设备(硬盘)

第一到三位:所有者权限

第四到六为:所属组(同用户组的)权限

第七到九:其他用户拥有该文件的权限。

r:read,只读

w:write,可以进行修改,但不能删除。删除一个文件的前提条件是对改文件所在目录有w权限

x:execute可执行

对一个目录的rwx具体为:1.对目录拥有r权限=可以将目录的内容列举出来=执行ls指令

2.对目录拥有x权限等于=可以进入该目录,执行cd命令,修改目录下文件的内容。

3. 对目录拥有w权限等于=可以在该目录新建、删除文件

chmod指令,修改文件或目录权限

u:所有者。 g:所在组。o:其他人  a:所有人

chmod u=rwx,g=rx,o=x 目标文件(给目标文件的所有者赋予读写执行。给所在组赋予读执行权限,给其他组读执行权限)

chmod o+w (给其他组赋予写权限)

chmod a-x (除去所有人的执行权限)

20.定时与任务调度

任务调度:令系统在特定时间执行指令或程序

crontab [选项]

选项有:-e 编辑crontab定时任务

-l 查询crontab任务

-r 删除当前用户所有crontab任务

可以直接写指令。eg:*/1 * * * * ls -l /etc/ > /tmp/to.txt (每分钟都列出etc目录的内容并输入到tmp目录下的to.txt中)

其中五个*意思分别为:一小时中第几分钟。一天当中第几小时。一个月中的第几号。一年中的第几月。一周中的星期几。

也可以写一个脚本shell,再让crontab执行。注意需要让shell有x权限。

at定时任务

at命令是一次性定时任务,使用at命令前,需要保证atd进程的启动,可以用 ps -ef | grep atd 查看是否启动。

atd会每隔60秒检查一次job队列,再检查job运行时间,如果时间与当前时间匹配,则执行job。

at [选项] [时间]

-m 当指定的任务被完成后,将给用户发送邮件,即使没有标准输出

-I  atq的别名

-d  atrm的别名

-v 显示任务将被执行的时间

-C  打印任务的内容到标准输出

-V 显示版本信息

-q<队列>  使用指定的队列

-f<文件>  从指定文件读入任务而不是从标准输入读入

-t<时间参数> 以时间参数的形式提交要运行的任务

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值