-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlinux.html
More file actions
173 lines (167 loc) · 54.2 KB
/
linux.html
File metadata and controls
173 lines (167 loc) · 54.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
<!doctype html>
<html lang="zh-Hans" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-linux" data-has-hydrated="false">
<head>
<meta charset="UTF-8">
<meta name="generator" content="Docusaurus v3.8.1">
<title data-rh="true">Linux | 缪斯</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://wooyee.cc/linux"><meta data-rh="true" property="og:locale" content="zh_Hans"><meta data-rh="true" name="docusaurus_locale" content="zh-Hans"><meta data-rh="true" name="docsearch:language" content="zh-Hans"><meta data-rh="true" name="docusaurus_version" content="current"><meta data-rh="true" name="docusaurus_tag" content="docs-default-current"><meta data-rh="true" name="docsearch:version" content="current"><meta data-rh="true" name="docsearch:docusaurus_tag" content="docs-default-current"><meta data-rh="true" property="og:title" content="Linux | 缪斯"><meta data-rh="true" name="description" content="完善中"><meta data-rh="true" property="og:description" content="完善中"><link data-rh="true" rel="icon" href="/img/favicon.ico"><link data-rh="true" rel="canonical" href="https://wooyee.cc/linux"><link data-rh="true" rel="alternate" href="https://wooyee.cc/linux" hreflang="zh-Hans"><link data-rh="true" rel="alternate" href="https://wooyee.cc/linux" hreflang="x-default"><script data-rh="true" type="application/ld+json">{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Linux","item":"https://wooyee.cc/linux"}]}</script><link rel="alternate" type="application/rss+xml" href="/about/rss.xml" title="缪斯 RSS Feed">
<link rel="alternate" type="application/atom+xml" href="/about/atom.xml" title="缪斯 Atom Feed">
<meta name="referrer" content="no-referrer"><link rel="stylesheet" href="/assets/css/styles.edfb6952.css">
<script src="/assets/js/runtime~main.8a790f23.js" defer="defer"></script>
<script src="/assets/js/main.d79500d5.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;"><defs>
<symbol id="theme-svg-external-link" viewBox="0 0 24 24"><path fill="currentColor" d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
</defs></svg>
<script>!function(){var t="light";var e=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",e||t),document.documentElement.setAttribute("data-theme-choice",e||t)}(),function(){try{const n=new URLSearchParams(window.location.search).entries();for(var[t,e]of n)if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id="__docusaurus"><div role="region" aria-label="跳到主要内容"><a class="skipToContent_fXgn" href="#__docusaurus_skipToContent_fallback">跳到主要内容</a></div><div class="theme-announcement-bar announcementBar_mb4j" style="background-color:#fafbfc;color:#091E42" role="banner"><div class="announcementBarPlaceholder_vyr4"></div><div class="content_knG7 announcementBarContent_xLdY">⭐️ 如果这个网站能帮助到你,欢迎给一个 star 支持我!<a target="_blank" rel="noopener noreferrer" href="https://github.com/miusing/blog">GitHub</a></div><button type="button" aria-label="关闭" class="clean-btn close closeButton_CVFx announcementBarClose_gvF7"><svg viewBox="0 0 15 15" width="14" height="14"><g stroke="currentColor" stroke-width="3.1"><path d="M.75.75l13.5 13.5M14.25.75L.75 14.25"></path></g></svg></button></div><nav aria-label="主导航" class="theme-layout-navbar navbar navbar--fixed-top navbarHideable_m1mJ"><div class="navbar__inner"><div class="theme-layout-navbar-left navbar__items"><button aria-label="切换导航栏" aria-expanded="false" class="navbar__toggle clean-btn" type="button"><svg width="30" height="30" viewBox="0 0 30 30" aria-hidden="true"><path stroke="currentColor" stroke-linecap="round" stroke-miterlimit="10" stroke-width="2" d="M4 7h22M4 15h22M4 23h22"></path></svg></button><a class="navbar__brand" href="/"><b class="navbar__title text--truncate">亲爱的缪斯</b></a></div><div class="theme-layout-navbar-right navbar__items navbar__items--right"><div class="navbarSearchContainer_Bca1"><div class="navbar__search searchBarContainer_NW3z" dir="ltr"><input placeholder="搜索" aria-label="Search" class="navbar__search-input searchInput_YFbd" value=""><div class="loadingRing_RJI3 searchBarLoadingRing_YnHq"><div></div><div></div><div></div><div></div></div></div></div><a aria-current="page" class="navbar__item navbar__link navbar__link--active" href="/intro">技术文档</a><a class="navbar__item navbar__link" href="/about">关于我</a><a href="https://github.com/miusing/blog" target="_blank" rel="noopener noreferrer" class="navbar__item navbar__link">GitHub<svg width="13.5" height="13.5" aria-hidden="true" class="iconExternalLink_nPIU"><use href="#theme-svg-external-link"></use></svg></a><div class="toggle_vylO colorModeToggle_DEke"><button class="clean-btn toggleButton_gllP toggleButtonDisabled_aARS" type="button" disabled="" title="system mode" aria-label="切换浅色/暗黑模式(当前为system mode)"><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP lightToggleIcon_pyhR"><path fill="currentColor" d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP darkToggleIcon_wfgR"><path fill="currentColor" d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"></path></svg><svg viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" class="toggleIcon_g3eP systemToggleIcon_QzmC"><path fill="currentColor" d="m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"></path></svg></button></div></div></div><div role="presentation" class="navbar-sidebar__backdrop"></div></nav><div id="__docusaurus_skipToContent_fallback" class="theme-layout-main main-wrapper mainWrapper_z2l0"><div class="docsWrapper_hBAB"><button aria-label="回到顶部" class="clean-btn theme-back-to-top-button backToTopButton_sjWU" type="button"></button><div class="docRoot_UBD9"><aside class="theme-doc-sidebar-container docSidebarContainer_YfHR"><div class="sidebarViewport_aRkj"><div class="sidebar_njMd sidebarWithHideableNavbar_wUlq"><a tabindex="-1" class="sidebarLogo_isFc" href="/"><b>亲爱的缪斯</b></a><nav aria-label="文档侧边栏" class="menu thin-scrollbar menu_SIkG menuWithAnnouncementBar_GW3s"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/intro">欢迎来到缪斯的技术博客</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/browser">浏览器底层原理</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/HTML">HTML</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/css">CSS</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/javascript/basic">JavaScript</a><button aria-label="展开侧边栏分类 'JavaScript'" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/typescript/config">Typescript</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/node/module">Node</a></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/vue">Vue</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/react">React</a><button aria-label="展开侧边栏分类 'React'" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist" href="/infra/前端工程化">前端工程化</a><button aria-label="展开侧边栏分类 '前端工程化'" aria-expanded="false" type="button" class="clean-btn menu__caret"></button></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/binary">二进制与编码</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/canvas">Canvas</a></div></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/canvas/webgl">WebGL</a></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/git">Git</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/音视频学习">音视频学习</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/计算机网络">计算机网络</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/前端安全">前端安全</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/异常处理">异常处理</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/编译原理">编译原理</a></li><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class="menu__list-item-collapsible"><a class="menu__link menu__link--sublist menu__link--sublist-caret" role="button" aria-expanded="false" href="/rust/setup">Rust</a></div></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/网站优化">性能优化</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/数据结构">数据结构</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/排序">排序算法</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/编程题">编程题</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/mongodb">MongoDB</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/mysql">Mysql</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link menu__link--active" aria-current="page" href="/linux">Linux</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/docker">Docker</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/设计模式">设计模式</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/websocket">WebSocket</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/webgl">Three.js</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/php">php</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/写在前面">写在前面</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/其它">其它</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/代码段记录">代码段记录</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/第三方库">第三方库</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/面试题">面试题</a></li><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-1 menu__list-item"><a class="menu__link" href="/akara的考验">akara的考验</a></li></ul></nav><button type="button" title="收起侧边栏" aria-label="收起侧边栏" class="button button--secondary button--outline collapseSidebarButton_PEFL"><svg width="20" height="20" aria-hidden="true" class="collapseSidebarButtonIcon_kv0_"><g fill="#7a7a7a"><path d="M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828.454H1c-.55 0-1-.453-1-1 0-.2.059-.403.168-.551l4.629-6.942L.168 3.078A.939.939 0 010 2.528c0-.548.45-.997 1-.997h2.996c.352 0 .649.18.828.45L9.82 9.472c.11.148.172.347.172.55zm0 0"></path><path d="M19.98 10.023c0 .2-.058.399-.168.547l-4.996 7.492a.987.987 0 01-.828.454h-3c-.547 0-.996-.453-.996-1 0-.2.059-.403.168-.551l4.625-6.942-4.625-6.945a.939.939 0 01-.168-.55 1 1 0 01.996-.997h3c.348 0 .649.18.828.45l4.996 7.492c.11.148.168.347.168.55zm0 0"></path></g></svg></button></div></div></aside><main class="docMainContainer_TBSr"><div class="container padding-top--md padding-bottom--lg"><div class="row"><div class="col docItemCol_VOVn"><div class="docItemContainer_Djhp"><article><nav class="theme-doc-breadcrumbs breadcrumbsContainer_Z_bl" aria-label="页面路径"><ul class="breadcrumbs"><li class="breadcrumbs__item"><a aria-label="主页面" class="breadcrumbs__link" href="/"><svg viewBox="0 0 24 24" class="breadcrumbHomeIcon_YNFT"><path d="M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z" fill="currentColor"></path></svg></a></li><li class="breadcrumbs__item breadcrumbs__item--active"><span class="breadcrumbs__link">Linux</span></li></ul></nav><div class="tocCollapsible_ETCw theme-doc-toc-mobile tocMobile_ITEo"><button type="button" class="clean-btn tocCollapsibleButton_TO0P">本页总览</button></div><div class="theme-doc-markdown markdown"><header><h1>Linux</h1></header>
<blockquote>
<p>完善中</p>
</blockquote>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="快捷键">快捷键<a href="#快捷键" class="hash-link" aria-label="快捷键的直接链接" title="快捷键的直接链接"></a></h2>
<ol>
<li>
<p>光标回到开头:<code>ctrl + a</code></p>
</li>
<li>
<p>光标回到末尾:<code>ctrl + e</code></p>
</li>
</ol>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="vim快捷键">VIM快捷键<a href="#vim快捷键" class="hash-link" aria-label="VIM快捷键的直接链接" title="VIM快捷键的直接链接"></a></h2>
<ol>
<li>undo:<code>u</code></li>
<li>redo:<code>ctrl + r</code></li>
<li>删除当前字符:<code>x</code></li>
<li>删除当前行:<code>dd</code></li>
<li>pageup:<code>fn + up </code></li>
<li>pagedown:<code>fn + down </code></li>
<li>搜索单词:<code>/word</code>回车,然后按n不停搜</li>
<li>行首:<code>^</code></li>
<li>行尾:<code>$</code></li>
<li>下个单词:<code>w</code></li>
<li>上个单词:<code>b</code></li>
<li>删除包括本行在内的后续行:<code>:,$d</code></li>
<li>多选字符:<code>v</code></li>
<li>块模式多选字符:<code>ctrl + v</code>,多选完按d或x删除,也可以按c替换</li>
<li>缩进:<code><<</code>和<code>>></code></li>
</ol>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="shell">Shell<a href="#shell" class="hash-link" aria-label="Shell的直接链接" title="Shell的直接链接"></a></h2>
<ol>
<li>脚本以<code>#!/bin/bash</code>开头</li>
<li>可通过<code>chmod +x ./index.sh</code>使其可执行</li>
</ol>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="变量">变量<a href="#变量" class="hash-link" aria-label="变量的直接链接" title="变量的直接链接"></a></h3>
<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">name="akara" # 声明变量 等号前后要粘着</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">echo $name # 使用变量</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">echo ${name} # 使用变量 *推荐</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">readonly name # 使变量只读</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">unset name # 删除变量,不能删除只读变量</span><br></span></code></pre></div></div>
<p><code>Shell</code>变量可分为当前脚本下的局部变量,以及环境变量。</p>
<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain"># 字符串(单引号)</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">name='akara'</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># 字符串(双引号)</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">name="akara"</span><br></span></code></pre></div></div>
<p>单引号字符串内部字符会原样输出,即内部不能有变量和转义符号。</p>
<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain"># 单引号</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">name='akara'</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">echo 'i am ${name}' # i am ${name}</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># 双引号</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">name='akara'</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">echo "i am ${name}"" # i am akara</span><br></span></code></pre></div></div>
<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">arr=("a" "b" "c") # 数组</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">echo ${arr[0]} # "a"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">echo ${arr[@]} # 输出数组所有项 "a" "b" "c"</span><br></span></code></pre></div></div>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="传递参数">传递参数<a href="#传递参数" class="hash-link" aria-label="传递参数的直接链接" title="传递参数的直接链接"></a></h3>
<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">echo "$1 $2 $3"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">./index.sh a b c # a b c</span><br></span></code></pre></div></div>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="运算符">运算符<a href="#运算符" class="hash-link" aria-label="运算符的直接链接" title="运算符的直接链接"></a></h3>
<p><code>shell</code>中进行运算通常使用反引号配合<code>expr</code>来实现</p>
<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">a=10</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">b=20</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">echo `expr $a + $b`</span><br></span></code></pre></div></div>
<p><strong>条件判断:</strong></p>
<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">if [ $name == 'akara' ] # 注意,一定要留出空格</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">then</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> echo "相等"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">fi</span><br></span></code></pre></div></div>
<p>补充:判断相等时可以用<code>==</code>,也可以直接用<code>=</code></p>
<p><strong>逻辑运算:</strong></p>
<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">name="akara"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">age=22</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain" style="display:inline-block"></span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">if [[ $name == 'akara' && $age == 20 ]]</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">then</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> echo "相等"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">else </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> echo "不相等"</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">fi</span><br></span></code></pre></div></div>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="输出重定向">输出重定向<a href="#输出重定向" class="hash-link" aria-label="输出重定向的直接链接" title="输出重定向的直接链接"></a></h3>
<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">echo "hello" > index.js # 覆盖</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">echo "hello" >> index.js # 不覆盖,添加到文件尾部</span><br></span></code></pre></div></div>
<p>可以通过重定向,让我们在执行某些脚本时屏蔽输出</p>
<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">./index.sh > /dev/null</span><br></span></code></pre></div></div>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="常用命令">常用命令<a href="#常用命令" class="hash-link" aria-label="常用命令的直接链接" title="常用命令的直接链接"></a></h2>
<p>很简单的命令就不写了。</p>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="ls">ls<a href="#ls" class="hash-link" aria-label="ls的直接链接" title="ls的直接链接"></a></h3>
<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">ls </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">ls -a # 隐藏文件 </span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">ls -l # 显示完整信息,包括读写执行的权限等</span><br></span></code></pre></div></div>
<p>通过<code>ls -l</code>可以看到完整的文件信息,如下:</p>
<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">-rwxr-xr-x 1 root root 27776 Apr 17 2012 test.txt</span><br></span></code></pre></div></div>
<p>其中<code>- rwx r-x r-x</code>由四部分组成:文件类型、拥有者权限、拥有者所属用户组权限、其他用户权限。</p>
<p>文件类型中,<code>-</code>表示普通文件,<code>d</code>表示目录,<code>l</code>表示软链接(硬链接无特殊标记)</p>
<p>权限包括<code>rwx</code>,即读、写、执行。可以使用数字来代表权限,读:4、写:2、执行:1。因此<code>r-x</code>对应着<code>5</code>。</p>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="chmod">chmod<a href="#chmod" class="hash-link" aria-label="chmod的直接链接" title="chmod的直接链接"></a></h3>
<p>通过<code>ls</code>可以看到一个文件的操作权限,而通过<code>chmod</code>可以修改文件的权限。</p>
<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">chmod 777 text.txt</span><br></span></code></pre></div></div>
<p>或者</p>
<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">chmod +x test.txt # 使其可执行</span><br></span></code></pre></div></div>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="alias">alias<a href="#alias" class="hash-link" aria-label="alias的直接链接" title="alias的直接链接"></a></h3>
<p>用于起命令的别名</p>
<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">alias ..='cd ..'</span><br></span></code></pre></div></div>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="grep">grep<a href="#grep" class="hash-link" aria-label="grep的直 接链接" title="grep的直接链接"></a></h3>
<p>用于字符串查找</p>
<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">grep 'content' test.txt</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">-e # 正则查找 </span><br></span></code></pre></div></div>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="管道">管道<a href="#管道" class="hash-link" aria-label="管道的直接链接" title="管道的直接链接"></a></h3>
<p>管道用来实现进程之间的通信,具体来说就是把一个程序的输出作为另一个程序的输入</p>
<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">cat test.txt | wc # 通过cat得到test.txt内容,把该内容作为wc命令的输入</span><br></span></code></pre></div></div>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="sudo">sudo<a href="#sudo" class="hash-link" aria-label="sudo的直接链接" title="sudo的直接链接"></a></h3>
<p>让普通用户临时具备<code>root</code>用户的权限</p>
<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">sudo ls</span><br></span></code></pre></div></div>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="ssh">ssh<a href="#ssh" class="hash-link" aria-label="ssh的直接链接" title="ssh的直接链接"></a></h3>
<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">ssh user@host</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">-p # 指定端口号,默认是ssh的22端口号</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">ssh host # 以root用户登录</span><br></span></code></pre></div></div>
<p>另外,<code>~/.ssh/config</code>用于存储服务器相关的配置,如:</p>
<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain"># ssh config</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">#</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">#</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">host myserver</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> hostName 111.111.111.111</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> User root</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"> port 2045</span><br></span></code></pre></div></div>
<p>我们只需要使用<code>ssh myserver</code>即可快速连接服务器</p>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="ssh-keygen">ssh-keygen<a href="#ssh-keygen" class="hash-link" aria-label="ssh-keygen的直接链接" title="ssh-keygen的直接链接"></a></h3>
<p>用来创建密钥,生成的密钥存放于<code>~/.ssh/</code>下</p>
<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">ssh-keygen</span><br></span></code></pre></div></div>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="whoami">whoami<a href="#whoami" class="hash-link" aria-label="whoami的直接链接" title="whoami的直接链接"></a></h3>
<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">whoami # 输出我的名字</span><br></span></code></pre></div></div>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="who">who<a href="#who" class="hash-link" aria-label="who的直接链接" title="who的直接链接"></a></h3>
<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">who # 输出当前主机所有登录用户的信息</span><br></span></code></pre></div></div>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="useradd">useradd<a href="#useradd" class="hash-link" aria-label="useradd的直接链接" title="useradd的直接链接"></a></h3>
<p>添加用户,<code>adduser</code>命令也行,但是二者略有差异</p>
<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">useradd akara</span><br></span></code></pre></div></div>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="passwd">passwd<a href="#passwd" class="hash-link" aria-label="passwd的直接链接" title="passwd的直接链接"></a></h3>
<p>修改用户密码</p>
<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">passwd akara</span><br></span></code></pre></div></div>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="export">export<a href="#export" class="hash-link" aria-label="export的直接链接" title="export的直接链接"></a></h3>
<p>用于我们在配置文件<code>/etc/profile</code>或<code>~/.bashrc</code>中使用<code>export</code>来设置环境变量。</p>
<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain"># /etc/profile</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">export name="aka"</span><br></span></code></pre></div></div>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="wc">wc<a href="#wc" class="hash-link" aria-label="wc的直接链接" title="wc的直接链接"></a></h3>
<p>用于计算文件的字数、行数等信息</p>
<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">wc -l test.txt # 输出行数</span><br></span></code></pre></div></div>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="man">man<a href="#man" class="hash-link" aria-label="man的直接链接" title="man的直接链接"></a></h3>
<p>用于查询一个命令的使用方法</p>
<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">man ls</span><br></span></code></pre></div></div>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="whereis">whereis<a href="#whereis" class="hash-link" aria-label="whereis的直接链接" title="whereis的直接链接"></a></h3>
<p>用于查找文件,通常可以拿来查配置文件或可执行文件的位置</p>
<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">whereis profile</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># profile: /etc/profile.d /etc/profile</span><br></span></code></pre></div></div>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="which">which<a href="#which" class="hash-link" aria-label="which的直接链接" title="which的直接链接"></a></h3>
<p>也是用于查找文件,通常用来查可执行文件。</p>
<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">which bash</span><br></span></code></pre></div></div>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="ln">ln<a href="#ln" class="hash-link" aria-label="ln的直接链接" title="ln的直接链接"></a></h3>
<p>用于创建链接,链接分为软链接(符号链接)和硬链接</p>
<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">ln /bin/bash sh # 默认创建硬链接</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">ln -s /bin/bash sh # 软链接</span><br></span></code></pre></div></div>
<p>软链接可以理解成windows中的快捷方式;硬链接可以看成一个文件拥有不同的路径。</p>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="tar">tar<a href="#tar" class="hash-link" aria-label="tar的直接链接" title="tar的直接链接"></a></h3>
<p>用于打包压缩文件。</p>
<p>我们会经常看到这样的文件:<code>*.tar.gz</code>、<code>*.tar.bz2</code>、<code>*.tar.xz</code>。这些都是通过<code>tar</code>打包而成的,后缀的不同是因为其所采用的压缩算法不同。</p>
<p>压缩比:<code>gz</code> < <code>bz2</code> < <code>xz</code></p>
<p>压缩速度:<code>gz</code> > <code>bz2</code> > <code>xz</code></p>
<p><strong>压缩文件:</strong></p>
<div class="language-bash codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-bash codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain"># 多种方式</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">tar -zcvf filename.tar.gz FILES # z表示gz</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">tar -jcvf filename.tar.bz2 FILES # j表示bz2</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">tar -Jcvf filename.tar.xz FILES # J表示xz</span><br></span></code></pre></div></div>
<p><strong>解压缩文件:</strong></p>
<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">tar -vx -f filename</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain"># or</span><br></span><span class="token-line" style="color:#393A34"><span class="token plain">tar -vxf filename</span><br></span></code></pre></div></div>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="crontab">crontab<a href="#crontab" class="hash-link" aria-label="crontab的直接链接" title="crontab的直接链接"></a></h3>
<p>定时任务。</p>
<div class="language-shell codeBlockContainer_Ckt0 theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_QJqH"><pre tabindex="0" class="prism-code language-shell codeBlock_bY9V thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_e6Vv"><span class="token-line" style="color:#393A34"><span class="token plain">crontab -l # 查看定时任务</span><br></span></code></pre></div></div>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="clear">clear<a href="#clear" class="hash-link" aria-label="clear的直接链接" title="clear的直接链接"></a></h3>
<p>清空输出</p>
<h2 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="常见配置文件">常见配置文件<a href="#常见配置文件" class="hash-link" aria-label="常见配置文件的直接链接" title="常见配置文件的直接链接"></a></h2>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="核心配置">核心配置<a href="#核心配置" class="hash-link" aria-label="核心配置的直接链接" title="核心配置的直接链接"></a></h3>
<p><code>/etc/profile</code>: 系统级配置</p>
<p><code>~/.bashrc</code>:用户级配置</p>
<p>当我们更改配置后,通过<code>source ~/.bashrc</code>使其生效</p>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="用户信息">用户信息<a href="#用户信息" class="hash-link" aria-label="用户信息的直接链接" title="用户信息的直接链接"></a></h3>
<p><code>/etc/passwd</code>:用户信息(用户ID,组ID等)</p>
<p><code>/etc/group</code>: 用户组信息</p>
<p><code>/etc/shadow</code>: 用户密码(密文报错)</p>
<p><code>/etc/sudoers</code>:用户的<code>sudo</code>权限</p>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="ssh-1">ssh<a href="#ssh-1" class="hash-link" aria-label="ssh的直接链接" title="ssh的直接链接"></a></h3>
<p>个人的<code>ssh</code>相关文件在<code>~/.ssh</code>下,包括个人的私钥、公钥、SSH配置文件<code>config</code>、<code>authorized_keys</code>、<code>known_hosts</code>。</p>
<p>通常我们在服务器的<code>authorized_keys</code>存放我们自己电脑的公钥,之后就无需使用密码来连接服务器了。</p>
<p>在我们成功连接服务器后,我们电脑的<code>known_hosts</code>文件也会记录下服务器的公钥。</p>
<h3 class="anchor anchorWithHideOnScrollNavbar_WYt5" id="其他">其他<a href="#其他" class="hash-link" aria-label="其他的直接链接" title="其他的直接链接"></a></h3>
<p><code>~/.bash_history</code>:记录历史命令行</p></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="row margin-top--sm theme-doc-footer-edit-meta-row"><div class="col"><a href="https://github.com/miusing/blog/tree/master/docs/linux.md" target="_blank" rel="noopener noreferrer" class="theme-edit-this-page"><svg fill="currentColor" height="20" width="20" viewBox="0 0 40 40" class="iconEdit_Z9Sw" aria-hidden="true"><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"></path></g></svg>编辑此页</a></div><div class="col lastUpdated_JAkA"></div></div></footer></article><nav class="docusaurus-mt-lg pagination-nav" aria-label="文件选项卡"><a class="pagination-nav__link pagination-nav__link--prev" href="/mysql"><div class="pagination-nav__sublabel">上一页</div><div class="pagination-nav__label">Mysql</div></a><a class="pagination-nav__link pagination-nav__link--next" href="/docker"><div class="pagination-nav__sublabel">下一页</div><div class="pagination-nav__label">Docker</div></a></nav></div></div><div class="col col--3"><div class="tableOfContents_bqdL thin-scrollbar theme-doc-toc-desktop"><ul class="table-of-contents table-of-contents__left-border"><li><a href="#快捷键" class="table-of-contents__link toc-highlight">快捷键</a></li><li><a href="#vim快捷键" class="table-of-contents__link toc-highlight">VIM快捷键</a></li><li><a href="#shell" class="table-of-contents__link toc-highlight">Shell</a><ul><li><a href="#变量" class="table-of-contents__link toc-highlight">变量</a></li><li><a href="#传递参数" class="table-of-contents__link toc-highlight">传递参数</a></li><li><a href="#运算符" class="table-of-contents__link toc-highlight">运算符</a></li><li><a href="#输出重定向" class="table-of-contents__link toc-highlight">输出重定向</a></li></ul></li><li><a href="#常用命令" class="table-of-contents__link toc-highlight">常用命令</a><ul><li><a href="#ls" class="table-of-contents__link toc-highlight">ls</a></li><li><a href="#chmod" class="table-of-contents__link toc-highlight">chmod</a></li><li><a href="#alias" class="table-of-contents__link toc-highlight">alias</a></li><li><a href="#grep" class="table-of-contents__link toc-highlight">grep</a></li><li><a href="#管道" class="table-of-contents__link toc-highlight">管道</a></li><li><a href="#sudo" class="table-of-contents__link toc-highlight">sudo</a></li><li><a href="#ssh" class="table-of-contents__link toc-highlight">ssh</a></li><li><a href="#ssh-keygen" class="table-of-contents__link toc-highlight">ssh-keygen</a></li><li><a href="#whoami" class="table-of-contents__link toc-highlight">whoami</a></li><li><a href="#who" class="table-of-contents__link toc-highlight">who</a></li><li><a href="#useradd" class="table-of-contents__link toc-highlight">useradd</a></li><li><a href="#passwd" class="table-of-contents__link toc-highlight">passwd</a></li><li><a href="#export" class="table-of-contents__link toc-highlight">export</a></li><li><a href="#wc" class="table-of-contents__link toc-highlight">wc</a></li><li><a href="#man" class="table-of-contents__link toc-highlight">man</a></li><li><a href="#whereis" class="table-of-contents__link toc-highlight">whereis</a></li><li><a href="#which" class="table-of-contents__link toc-highlight">which</a></li><li><a href="#ln" class="table-of-contents__link toc-highlight">ln</a></li><li><a href="#tar" class="table-of-contents__link toc-highlight">tar</a></li><li><a href="#crontab" class="table-of-contents__link toc-highlight">crontab</a></li><li><a href="#clear" class="table-of-contents__link toc-highlight">clear</a></li></ul></li><li><a href="#常见配置文件" class="table-of-contents__link toc-highlight">常见配置文件</a><ul><li><a href="#核心配置" class="table-of-contents__link toc-highlight">核心配置</a></li><li><a href="#用户信息" class="table-of-contents__link toc-highlight">用户信息</a></li><li><a href="#ssh-1" class="table-of-contents__link toc-highlight">ssh</a></li><li><a href="#其他" class="table-of-contents__link toc-highlight">其他</a></li></ul></li></ul></div></div></div></div></main></div></div></div></div>
</body>
</html>