Linux学习

资料

  • 从 Windows 切换到 Linux 就象从骑摩托车切换到开汽车。
  • 一个有经验的 Windows 用户,而不是有经验的 Linux 用户。他应该意识到,他是个新手。
  • Linux 有自己的文化,Linux 用户则更多的是处于一个社团当中,他们和个人打交道,而不是公司。Windows 用户他们花钱买软件,而得到技术支持等。你并没有付给那些软件开发者任何钱。他们并不欠你任何东西。
  • 核心极客们(Linux维护者)假设所有使用 Linux 的用户们都是极客或在向这方面发展。
  • Linux“始于极客,馈于极客”。
  • 你到底是为什么要买乐高?积木组装一辆车,这才是乐高的真谛。Linux是开源的、可定制的软件集,这才是真谛。
  • Linux软件开发者多是个人包办了从UI设计到后台的所有代码。使用时有不人性地方是正常的。很多时候这个软件是给自己开发的。
  • “用户友好”的软件实际上意味着“该软件对那些以前从未使用这个软件的用户们来说也不是那么难上手”。
  • “用户友好”就像在自行车上装辅助轮一样。如果你今天得到这样的一辆自行车,我敢打赌你要做的第一件事就是除去这不必要的阻碍。
  • 大量的 Linux 软件是设计成不带“辅助轮”的。
  • Linux 已经从命令行时代进入了图形界面时代,这明显是在学 Windows。
  • 私有软件最终用户数量的增加可以直接变为制作公司的直接经济效益。对于 FOSS(自由和开源)来说,并不是这样,使用人数的增加并不会产生直接的收益。非直接收益当然是有的:个人的自豪,更多发现 Bug(错误)的机会,更多可能得吸引新的开发者,可能有机会得到个好的工作,等等。
  • Linux 对市场份额不感兴趣。Linux 也没有客户。Linux 没有股东,也没有盈利的责任。Linux 不是为了赚钱而创造的。Linux 的目标不是成为地球上最流行和最普及的操作系统。Linux 社区想要的是一种真正品质优良、充满特色、自由的操作系统。
  • 开源的一切都是向最终用户开放,用于创造价值的——生产工具,所以几乎只有电子游戏,音乐,电影等才能作为最终产品销售————它们可以开源,但不需要开源。
  • 英文好对学习LINUX的意义重大。
  • Linux,除去中文窗口,基本上我们看到的都是英文。如果你是一个Linux运维人员,你每天打交道的linux很少能够看到中文。所以英文是学习Linux一大障碍。
  • 命令都是英文的缩写,理解起来也方便。而且大多数软件的文档(最起码所有的安装文档)就是英文的。linux中常见中英文单词对照表
  • 命令
  • 尚学堂_白鹤翔_06_linux基础,视频中老师说:Java程序员掌握常用linux命令会就够了,其他的知识现用现百度即可。对于Shell能够看懂别人所写的代码,然后自己偶尔能写些简单shell就够了,只有那些专职运维人员要求shell能力要强。
  • 对待Linux命令的实用技巧:把常用的Linux命令放到txt中,用哪个能找到它就行了,关键是在工作中你反复用它就会自然熟悉。
  • Linux系统,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,一切皆文件。Linux系统管理的命令是它正常运行的核心。linux命令在系统中有两种类型:内置Shell命令和Linux命令
  • Linux的命令(包括文件名等等)对大小写是敏感。
  • 学习 Linux 常常遇到最大的问题是,需要记忆大量的命令,但是记忆力很差,很多命令用过就忘记了。可在线查询Linux常用命令的用法。
  • Linux命令快速上手巧记
  • history,那些你曾经用过的命令。
  • apropos,(意即“关于”)帮你找出合适的命令(类似Ctrl+F)。假设你需要知道哪个命令可以列出目录的内容,你可以运行下面命令:apropos "list directory",apropos "match" -a "pattern"("-a"意思是“and”,即多个关键字都存在,但是不需要正好是连在一起的字符串。)
  • #help提供内部命令的帮助。#maninfo提供外部命令的帮助。英文足够好,只要你会用man(manual(手册)),不靠任何人就精通linux
  • “速记表”图片设置为你的桌面墙纸。
  • 网友建议:很多熟练的人貌似都记不太多很多命令吧。记住常用的以及掌握工具命令或“指令大全”本书,需要再查就可以了啊。如果你漫无目的的看指令,事实上很多指令根本用不到,这样太浪费时间了。
  • Midnight Commander,一个以文本形成的可视文件管理器,用它可处理不同位置的文件和目录。
  • 更多见“Linux命令”百科。
  • 本工具是JavaScript函数库termlib.js完整实现了XTerm。XTerm是一个X Window System上的终端模拟器,用来提供多个独立的SHELL输入输出。
  • CentOS(Community Enterprise Operating System,社区企业OS)是Linux发布版之一,它是来自于Red Hat Enterprise Linux依照开放源代码规定发布的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定性的服务器以CentOS替代商业版的Red Hat Enterprise Linux使用。两者的不同,在于CentOS并不包含封闭源代码软件。CentOS 完全遵守 Red Hat 的再发行政策,并且致力与上游产品在功能上完全兼容。CentOS 对组件的修改主要是去除 Red Hat 的商标及美工图。
  • 实验楼在线虚拟机实战学Linux
  • 明确目的:你是要用 Linux 来干什么,搭建服务器、做程序开发、日常办公,还是娱乐游戏;

  • 面对现实:Linux 大都在命令行下操作,能否接受不用或少用图形界面;

  • 是学习 Linux 操作系统本身还是某一个 Linux 发行版(Ubuntu,CentOS,Fedora,OpenSUSE,Debian,Mint 等等),如果你对发行版的概念或者它们之间的关系不明确的话可以参看 Linux 发行版。

  • 路线图
    在这里插入图片描述

  • linux中,最最重要的就是命令,这就包含了2个过程,输入和输出。输出时如果执行失败会告诉你哪里错了,如果执行成功那么会没有输出,因为linux的哲学就是:没有结果就是最好的结果。

  • 命令+Tab键可进行命令补全。可“补全目录、补全命令参数”。

  • 失误的命令,用Ctrl+c来将其强行终止。

  • 常用命令:
    ls *.txt——列出所有后缀是txt的文件。(通配符,主要有*(类似sql中*)和?(代表一个未知字符),用来对字符串进行模糊匹配)
    man 1 ls——列出帮助手册第一册(“一般命令”)(可见man 手册是分了册的)
    ls /bin ——列出系统提供的所有命令
    ls --help——ls命令参数介绍
    ls -al——以明细展示方式列出所有文件

  • 文件明细有7部分组成“1 文件的rwx,2 硬链接数,3 所有者 ,4 所属组,5 文件大小(不精确),6 创建时间或修改时间,7 文件名称”

  • 文件明细格式解释:drwxr-xr-x—— 第一个字母d,表示文件夹,若是‘l’则是软连接文件,若是‘-’则是二进制文件;rwx,所有者有读写执行的权限;r-x,所属组有读和执行权限(没写权限则用‘-’表示省略);r-x,其他人有r-x权限。
    在这里插入图片描述
    在这里插入图片描述

  • 明细中“文件类型和权限”解释:
    ls -AsSh——显示所有文件大小
    touch test——创建空白文本文件
    mkdir mydir——创建mydir文件夹。mkdir -p 文件夹1/文件夹2(一次创建多个层次的文件夹)
    cp test 文件夹1/文件夹2——copy文件“test”到“文件夹2”里
    cp -r 文件夹1 新文件夹——copy文件夹“文件夹1”(含子文件夹和文件)到“新文件夹”里
    rm test——"remove files"即删除test文件
    rm -r family——删除family文件夹
    mv test family——“move”移动文件(剪切)到family文件夹test
    mv 123 test——把文件名“123”修改为“test”
    cat test——查看“test”文件内容
    file test——查看文件的类型,Linux不是根据后缀来判断的文件类型的。
    declare tmp=aj——为temp变量赋值
    echo $tmp——输出temp变量值(echo,输出字符串)
    echo $PATH——查看 PATH 环境变量的内容(类似Windows,:作为分割符),你在shell中的命令通过这些path找程序执行的。
    whereiswhich(小而精),find(最强) 和 locate(快而全)——与搜索相关。whereis openssl只能在数据库中搜索二进制文件(-b),man帮助文件(-m)和源代码文件(-s)
    which ls——ls命令的path环境变量值
    zip -r -q -o shiyanlou.zip /home/shiyanlou/Desktop——使用 zip 打包“/home/shiyanlou/Desktop”文件夹成“shiyanlou.zip”
    du -h shiyanlou.zip ——查看压缩包“shiyanlou.zip”的大小
    unzip shiyanlou.zip——解压到当前目录
    df -h——列出磁盘的使用情况
    du -s——估计文件空间使用
    ifconfig——与windows的ipconfig一样

  • type ls——查看命令种类(内建命令(属于shell,天赋技能)与外建命令(属于某程序,后天得来))

xxx is a shell builtin  #见此,说明是内建命令
xxx is /usr/bin/xxx  #见此,说明是外部命令,
xxx is an alias for xx --xxx  #该指令为命令别名所设定的名称

ls --help——得到ls命令简单扼要的帮助
man ls——得到的帮助比用help更详细
info ls——man返回的帮助都还不够,那试试这个命令

  • 当你的计算机停止响应时,不要总想着去按“电源”键关机!在你强行关掉电源前试试以下几种简单的方法:
    Ctrl+Alt+F1,停掉无响应的程序。
    Ctrl + Alt + backspace,重启图形界面。
    Ctrl + Alt + Delete,运行关机脚本,安全重启。
    Ctrl+ Alt+ PrtScrn/SysRq + 别放开,依次输REISUB,系统会卸掉所有本地文件系统,安全关机。
  • 关机流程为:sync > shutdown > reboot(重启) > halt(关闭系统)。不管是重启系统还是关闭系统,首先要运行 sync 命令,把内存中的数据写到磁盘中。关机的命令有shutdown –h now halt poweroffinit 0 , 重启系统的命令有 shutdown –r now reboot init 6

  • Linux大部分目录结构是规定好了的(FHS 标准),当你掌握后,你在里面的一切操作都会变得井然有序。

  • FHS(Filesystem Hierarchy Standard 文件系统层次结构标准),定义了系统中每个区域的用途、所需要的最小构成的文件和目录同时还给出了例外处理与矛盾处理。
  • 具体各目录用途见资料
  • Linux 特殊的用户管理权限机制,不同用户不可以轻易地查看、修改彼此的文件。
  • root 账户拥有整个系统至高无上的权利,比如 新建/添加 用户,也可任何文件(包括系统文件)执行所有增、删、改、查的操作。比win系统的Administrator 权限高。
  • 一般登录系统时都是以普通账户,sudo命令可升级到root 权限。
  • Linux 下以 . 开头的文件为隐藏文件

_

.可分享不可分享
不可变动/usr(软件放置处)/etc(配置文件)
不可变动/opt(第三方软件)/boot(开机及内核文件)
可变动/var/mail(用户邮箱)/var/run(程序相关)
可变动/var/news(新闻组)/var/lock(文件锁相关)
  • 日志一般存放在 /var/log 中,根据服务对象粗略的将日志分为两类:系统日志,应用日志。内核之类的日志信息如alternatives.log 、btmp 等

  • 较新的 Ubuntu、Fedora 等等都是默认使用 rsyslog 作为系统的日志收集工具

  • logrotate或newsyslog 程序是一个日志文件管理工具。用来把旧的日志文件删除,并创建新的日志文件。我们可以根据日志文件的大小,也可以根据其天数来切割日志、管理日志,这个过程又叫做“转储”。

  • FreeBSD是Unix的一个分支,FreeBSD不是Linux的一种。FreeBSD的标志是一个拿着叉子的小恶魔,苹果OS与FreeBSD关系亲密。
    在这里插入图片描述 (<FreeBSD) 在这里插入图片描述(<Linux)

  • Shell 教程

  • Shell(壳),类似于windows的cmd.exe 。不特别注明,shell是指命令行式的shell。Shell编程跟java编程一样。它是用户使用 Linux 的桥梁。有壳就有核,这里的核就是指 UNIX/Linux 内核,
  • shell,是linux的一个外壳,linux内核是引擎,各种应用程序就是各种配件,而shell就是给你一个完整的驾驶室,提供操纵所有这些功能的界面。学好shell,是做好网络管理员的基本功。
  • 所有的 Unix Like 系统都会内建 vi文本编辑器。但是vim目前使用比较多。vim 是一个程序开发工具而不是文字处理软件。
  • Linux系统默认yum源速度慢,改为国内的yum源,国内阿里、网易、中国科技大学等都是非常不错的。
  • crontab 命令,时间间隔的单位可以是分钟、小时、日、月、周的任意组合。cron 服务监测时间最小单位是分钟。
  • 怎么实现“一次输入多条命令,然后去执行”?
  • 简单的顺序执行可以在多条间用;隔开然后回车。但是如果后面的命令依赖前面命令正确执行
  • 管道是一种通信机制,通常用于进程间的通信(也可通过socket进行网络通信),它表现出来的形式就是将前面每一个进程的输出(stdout)直接作为下一个进程的输入(stdin)。
    管道分匿名管道和具名管道(有名字)
  • 在 Linux 中有一个被称为“黑洞”的设备文件,所有导入它的数据都将被“吞噬”。在类 UNIX 系统中,/dev/null,或称空设备,它通常被用于丢弃不需要的输出流,或作为用于输入流的空文件,这些操作通常由重定向完成。读取它则会立即得到一个EOF。我们可以利用设个/dev/null屏蔽命令的输出:cat Documents/test.c nefile 1>/dev/null 2>&1此操作将使你得不到任何输出结果。

  • 怎么装软件?一个命令加回车,等待一下,软件就安装好了。通常 Linux 上的软件安装主要有四种方式:

  • 在线安装
  • 从磁盘安装deb软件包
  • 从二进制软件包安装,安装比较简单,将从网络上下载的二进制包解压后放到合适的目录,然后将包含可执行的主程序文件的目录添加进PATH环境变量即可
  • 从源代码编译安装
  • 实验楼网站的网页版的Linux操作系统是怎么实现的?
  • 其实你看到的是一个vnc远程桌面。linux系统是服务器上跑的docker。Linux采用Xfce。(Xfce的设计目的,它的创始人Olivier Fourdan描述为:“快速加载并用来执行程序,且占用系统资源少"。官网其安装包大小在14MB)
  • Capabilities将root权限分割成了权利更小的权限。小权限被称作capability。如果使用capabilities,那么攻击者最多只能得到小权限,无法得到root权限。这样,风险就被降低了。

尚学堂:

  • 视频教程内容目录:
  • 常用命名
  • vi/vim文本编辑器
  • 用户管理
  • 进程管理
  • 系统文件构成
  • 软件包管理
  • shell编程
  • linux 读音“李牛克斯”,对电脑硬件要求不高:CPU是i5+就够了,RAM越大越好,硬盘20GB即可,网卡一个,其他没做要求。

  • XshellXftpPortable.rar——是Xshell+Xftp整合版,是网络管理、安全传输工具,是Windows上远程管理 Linux、VPS 的利器(对个人和学校免费)。Xshell 是一个免费的安全终端仿真器,可以作为 SSH、TELNET 或 RLOGIN 的终端模拟,能够从 Windows 平台安全连接 Linux 服务器,Xftp 则是安全传输客户端,支持 FTP 和 SFTP 协议,两者都支持标签化的会话。技巧:“新建文件传输”(绿色图标)类似我常用的TC工具,可以实现windows和Linux服务器里(左边)之间文件互传。

  • windows服务器用“远程桌面连接”连接,而Linux则用xshell(putty、secureCRT)。

  • OCP:Oracle认证专家,是Oracle公司的DBA认证课程,通过这个考试,说明此人可以管理大型数据库, 或者能够开发可以部署到整个企业的强大应用。要成为OCP需要先获得OCA (数据库认证助理)的认证。

  • vi/vim是一个全屏幕文本编辑器,没有菜单,只能靠命令来操作。视频

vi a.txtvim a.txt,进入a.txt文本文件。

  • vi命令参数:(刚进入vi时是命令模式,按i或a键就进入编辑模式,输完后按ESC键转命令模式,就可以输下面命令,按“:w”保存变动部分,或按“:wq”保存退出,或按“:q!”不保存退出)
i	插入内容
a	append追加
x	删除字符起到Delete键作用
dd	删除行
:w 	保存(write)
:q		退出vi编辑器(quit)
  • 为什么vim会使用这么奇葩的方向键h,j,k,l及那么别扭反人类的Esc作为退出插入模式的键?
    1976年当 Bill Joy 创建Vi时,用的机器机器是 ADM-3A 终端机,这机器就是把 HJKL 键作为方向键。——为什么 Vim 使用 HJKL 键作为方向键
  • 文件操作命令
pwd 查看当前目录路径
ls 	栅格方式显示文件(dir -a)
ll 		list清单方式显示文件
touch a.txt	新建文件
cat a.txt	阅读文件
vi a.txt	vi编辑器打开(vim a.txt)

head a.txt	看文件头部
tail a.txt	看文件尾部
file a.txt	看文件类型
mv a.txt b.txt		改文件名称和后缀
cp b.txt /usr		copy到usr文件夹里
  • linux里#进行注释,后缀.swp是临时文件,可以删除。
  • Linux分前台进程,后台进程
  • 前台进程,当一个命令执行的过程中,不允许另外命令执行,常用命令基本都是前台进程。
  • 后台进程,允许多个进程一起同步执行,只需要在最后加上“ &”即表示为后台进程(注意:后台进程不能交互执行的)
  • who 查看用户信息(cpu情况,运行的程序),简写‘w’
  • ps 所有用户的进程 可跟上-a -l -al -el -aux(极像window的任务管理器)
  • pstree——以树形式展示“子父进程”,可加的参数-up(列出每个进程所属账户名称和pid)
  • ps -fxo user,ppid,pid,pgid,command——按指定列显示进程
  • ps -ef|grep sshd 看某程序进程 (|是管道符号,把前面的输出作为后面的输入)
  • kill 进程号——杀掉进程 (进程的管理命令kill,nice,renice)。nice:进程开始前调整优先级
    renice:进程进行中调整优先级 。
  • nohup——用户退出(电脑不关),进程一直运行如tomcat等
  • top——实时监控系统性能:进程状态显示和进程控制,每5s自动刷新一次。
    在这里插入图片描述
  • 系统常用目录:

在这里插入图片描述

  • 除了‘/’之外,所有字符都合法,尽量不要用空格、制表符、@、#等特殊符号,另外linux对大小写敏感,表示不同的文件。
  • 命令手写格式: 命令 -选项 参数ls -al /usr,多个选项时可写在一起。
  • Linux系统中安装软件的几种方式
  • Linux有很多种发行版本,各种发行版本之间安装软件方式和命令不一样,同一个版本之间也有不同的方法。大体有两大派系,一个是红帽派系,包含Redhat、Centos等。Debian派系,包含Ubuntu等。
  • 二进制软件包管理(rpm、yum,属于红帽派系的安装命令)。yum提供了查找、安装、删除某一个、一组甚至全部软件包的命令,而且命令简洁而又好记。
  • yum好处:自动解决软件包依赖关系;方便的软件包升级。YUM的工作流程
  • yum search 软件包名称 ——查找软件
  • yum info 软件名称——软件信息
  • yum install 软件名称——安软件
  • yum remove 软件名称——软件卸载
  • yum update 软件名称——升级
  • yum check-update 软件名称——检查升级
  • yum list | grep 软件名称——软件查询
  • yum -help 、man yum——帮助
  • GNU,认为任何软件都应当以自由软件发布。自由软件不受限制(你可以随意支配包括买卖)是自由软件最重要的本质。
  • Linux包涵了Linux内核与其他自由软件项目中的GNU组件和软件,可以被称为GNU/Linux。想了解Linux都有哪些发行版可见“CentOS”百度百科最下面“Linux发行版 (列表)”
Shell编程
  • shell学习1个小时就能满足日常工作了。shell文件以sh为后缀。
  • 执行shell文件命令:先进入到文件所在文件夹,然后sh 文件名.sh
  • 定时任务演示:crontab -e 0 9 * * 1-5 /bin /sh /test/myShell.sh,每周一到周五,9点钟执行myShell.sh中的shell任务。
  • ll等价于ls -al命令——以明细方式列出当前文件夹里所有文件。
  • 屏幕画笔大师,可以出现画笔然后在屏幕上涂画,可写字,画箭头,方框等。
  • shell有两类变量:临时变量(shell程序内定义的,使用范围在程序内部,包括:自定义变量、位置变量),永久变量(是环境变量,不随脚本执行结束而消失,如echo $PATH,echo $LANG)。
  • 变量使用语法:
  • $开头;
  • 以大写字母表示(但是小写也不抛异常);
  • 以字母开头;
  • 赋值号=两边一定是没空格,两边有空格则会抛异常。
  • set命令查看系统中所有可用的变量,unset 变量名,删除变量
  • 单引号里是啥输出就是啥,双引号里内容会计算输出。
num=10 #声明变量并赋值(没$哟)
echo $num #输出变量结果到页面(写上$哟)
unset num #删除num变量(没$哟)
echo "变量num值是$num" #输出:变量num值是10 (双引号)
echo '变量num值是$num' #输出:变量num值是$num(单引号)
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值