unzip z.zip
์์ถํ์ผ z.zip์ ์์ถํด์ ํ๋ค.
zip -r a.zip ./d
๊ฒฝ๋ก d์ ์๋ ํ์ผ๋ค์ ์์ถํด์ a.zip์ด๋ผ๊ณ ํ๋ค.
alias
ํ์ฌ ๊ฐ๋ช
๋ค์ ๋ชฉ๋ก์ ์ถ๋ ฅํ๋ค.
alias ls='ls -a'
ls -a๋ผ๋ ๋ช
๋ น์ด๋ฅผ ls๋ผ๋ ๊ฐ๋ช
์ผ๋ก ํ๋ค
unalias ls
ls๋ผ๋ ๊ฐ๋ช
์ ์ญ์ ํ๋ค.
apt-get install dnsutils
- nslookup www.naver.com
www.naver.com์ด๋ผ๋ ๋๋ฉ์ธ์ IP์ฃผ์๋ฅผ ์ถ๋ ฅํ๋ค.
apt-get install iputils-ping
- ping www.github.com
www.github.com์ด๋ผ๋ ๋๋ฉ์ธ์ ํ์ ๊ณ์ ๋ณด๋ธ๋ค. ctrl + c๋ก ์ค์งํ ์ ์๋ค.
๋ค์ด๋ฒ๋ ๊ณต๊ฒฉ์ ๋๋นํด ๋ง์๋์๋ค.
apt-get install traceroute
- traceroute www.github.com
www.github.com์ด๋ผ๋ ๋๋ฉ์ธ๊น์ง ๊ฐ๋ ๊ฒฝ๋ก๋ฅผ ์ถ๋ ฅํ๋ค.
*๋ ์จ๊น์ฒ๋ฆฌ์ด๋ค.
curl -o index.html www.paullab.com
www.paullab.com์ด๋ผ๋ ๋๋ฉ์ธ์์ ๋ฐ์์จ ๋ฐ์ดํฐ๋ฅผ index.html๋ผ๋ ํ์ผ๋ก ์ ์ฅํ๋ค.
chmod 700 text.txt
chmod(Change Mode), ํ์ผ์ ์ฌ์ฉ์ ๊ถํ์ ๋ณ๊ฒฝํ๋ค.
ll
๋ก ํด๋ ๋ด๋ถ์ ํ์ผ๋ค์ ์์ธํ ์ ๋ณด๋ฅผ ์ถ๋ ฅํ๋ฉด, ์๋์ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๋ณผ ์ ์๋ค.
๋นจ๊ฐ ์ค๋ก ํ์ํ ๋ถ๋ถ์ ๋ค์์ ์๋ฏธํ๋ค.
ํ์ผ์ ์ข
๋ฅ / ์์ ์ ๊ถํ / ๊ทธ๋ฃน ์ฌ์ฉ์ ๊ถํ / ๊ธฐํ ์ฌ์ฉ์ ๊ถํ
๊ถํ์ r, w, x๊ฐ ์์ผ๋ฉฐ ๊ฐ๊ฐ ์ฝ๊ธฐ(4), ์ฐ๊ธฐ(2), ์คํ(1)์ ๋ปํ๋ค.
๊ดํธ ์์ ์ซ์๋ ์ ์์ธ๋ฐ ์ฌ์ฉ์๊ฐ ๊ฐ๋ ๊ถํ๋ค์ ํด๋นํ๋ ์ซ์๋ฅผ ๋ํด์ ๋ํ๋ธ๋ค.
1(์คํ), 2(์ฐ๊ธฐ), 3(์ฐ๊ธฐ+์คํ), 4(์ฝ๊ธฐ), 5(์ฝ๊ธฐ+์คํ), 6(์ฝ๊ธฐ+์ฐ๊ธฐ), 7(์ฝ๊ธฐ+์ฐ๊ธฐ+์คํ)
์๋ฅผ ๋ค์ด, 700์ ๊ฒฝ์ฐ, ์์ ์(7), ๊ทธ๋ฃน ์ฌ์ฉ์(0), ๊ธฐํ ์ฌ์ฉ์(0)์ผ๋ก ์์ ์๋ rwx๋ฅผ ์ ๋ถ ๊ฐ์ง๊ณ ์๊ณ ๊ทธ๋ฃน ์ฌ์ฉ์์ ๊ธฐํ ์ฌ์ฉ์๋ ์๋ฌด ๊ถํ๋ ๋ชป ๊ฐ๋ ๊ฒ์ด๋ค.
์๋์ ์ด๋ฏธ์ง์์ ์๋ text.txt๋ -rw-rw-r--
์ธ๋ฐ chmod 700 test.txt
์ดํ์
-rwx------
์ผ๋ก ๋ณ๊ฒฝ๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
Syntactically Awesome Style Sheet๋ CSS์ preprocessor(์ ์ฒ๋ฆฌ๊ธฐ)์ด๋ค.
ํ๋ก์ ํธ์ ๊ท๋ชจ๊ฐ ์ปค์ง๋ฉด์ ์คํ์ผ์ํธ์ ์ ์ง๋ณด์๊ฐ ํ๋ค์ด์ง๋ ๊ฑธ ๋ณด์ํ๊ธฐ ์ํด ๋์๋ค.
์ปดํฌ๋ํธ, ์ฉ๋ ๋ณ๋ก ํ์ผ๋ค์ ๋ถ๋ฆฌํ๊ณ ์ด๋ฆ ์์ _๋ฅผ ๋ถ์ด๋ฉด ๊ฐ์ ์ปดํ์ผ๋์ด ๋ค๋ฅธ ํ์ผ๋ก ๋ถ๋ฆฌ๋๋ ๊ฑธ ๋ฐฉ์งํ๊ณ import ํ๊ณ ์๋ ํ๋์ ํ์ผ๋ก ๋ณํฉํ ์ ์๋ค.
_header.scss
, _main.scss
, _footer.scss
, _variables.scss
, _mixin.scss
style.scss
@import "header";
@import "main";
@import "footer";
@import "variables";
@import "mixin";
์ ํ์ผ๋ค์ ์ปดํ์ผ์ ๊ฑฐ์น๋ฉด style.css๋ผ๋ ํ๋์ ํ์ผ๋ก ์ปดํ์ผ ๋๋ค.
scss ํ์ผ์์ // ํ ์ค ์ฃผ์์ด๋ /**/ ์ฌ๋ฌ์ค ์ฃผ์ ๋ชจ๋ ์ฌ์ฉ๊ฐ๋ฅํ์ง๋ง css ํ์ผ๋ก ์ปดํ์ผํ๋ฉด ์ฌ๋ฌ์ค ์ฃผ์๋ง ๋จ๋๋ค.
// ํ ์ค ์ฃผ์
/* ์ฌ๋ฌ์ค ์ฃผ์ */
/* ์ฌ๋ฌ์ค ์ฃผ์ */
scss๋ HTML์ฒ๋ผ ์์๊ฐ ๊ณ์ธต ๊ด๊ณ๋ฅผ ์๊ฐ์ ์ผ๋ก ๋ณด์ฌ์ฃผ๋ ๋ฐฉ์์ผ๋ก ์์ฑํ ์ ์์ด์ ๊ฐ๋ ์ฑ์ด ์ข๋ค.
ul {
list-style: none;
li {
color: red;
font-size: 20px;
}
}
ul {
list-style: none;
}
ul li {
color: red;
font-size: 20px;
}
์ ํ์ ๋ฟ๋ง ์๋๋ผ ์์ฑ๋ ์ค์ฒฉ์ด ๊ฐ๋ฅํ๋ค.
.add-icon {
background : {
image: url("./assets/arrow-right-solid.svg");
position: center center;
repeat: no-repeat;
size: 14px 14px;
}
}
.add-icon {
background-image: url("./assets/arrow-right-solid.svg");
background-position: center center;
background-repeat: no-repeat;
background-size: 14px 14px;
}
&๋ ๋ถ๋ชจ์์๋ฅผ ๋ปํ๋ค. ๊ธฐ์กด CSS์์ ๊ฐ์์์๋ ๊ฐ์ํด๋์ค ๋ฑ์ ๋ถ์ผ ๋ ๊ผญ ๋ถ๋ชจ์์๋ฅผ ๋ช ์ํด์ค์ผ ํ๋ ๊ฒ๊ณผ ๋ค๋ฅด๊ฒ & ํ๋๋ง ์์ฑํ ์ ์์ด์ ๊ฐํธํ๋ค.
.box {
width: 100px;
height: 100px;
background-color: green;
transition: all 1s;
&:hover {
background-color: pink;
}
}
.box {
&:focus{}
&:hover{}
&:active{}
&:first-child{}
&:nth-child(2){}
&::after{}
&::before{}
}
.box {
width: 100px;
height: 100px;
background-color: green;
-webkit-transition: all 1s;
transition: all 1s;
}
.box:hover {
background-color: pink;
}
.box:focus{}
.box:hover{}
.box:active{}
.box:frist-child{}
.box:nth-child(2){}
.box::after{}
.box::before{}
๊ณ์ ์ค์ฒฉ๋์ด ๋ค์ด๊ฐ๋ค๊ฐ ์ค์ฒฉ์์ ๋ฒ์ด๋๊ณ ์ถ์ ์์ ์์ ๋ถ์ด๋ฉด ์ค์ฒฉ์์ ๋ฒ์ด๋๋ค.
.article {
display: flex;
justify-content: space-between;
align-items: center;
margin-top: 10px;
.article-content {
font-size: 14px;
opacity: 0.7;
@at-root i {
opacity: 0.5;
}
}
}
.article {
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-pack: justify;
-ms-flex-pack: justify;
justify-content: space-between;
-webkit-box-align: center;
-ms-flex-align: center;
align-items: center;
margin-top: 10px;
}
.article .article-content {
font-size: 14px;
opacity: 0.7;
}
i {
opacity: 0.5;
}
CSS์์ var()์ ๋น์ทํ ๊ธฐ๋ฅ์ด๋ค.
๋ ๋ฒ ์ด์ ๋ฐ๋ณต๋๋ ๋์ผํ ์์ฑ๊ฐ์ ๋ณ์๋ก ๋ง๋ค๋ฉด, ์์ ํ ์ผ์ด ์๊ฒผ์ ๋ ํ๋ํ๋ ์์ ํ ํ์๊ฐ ์๊ฒ ๋๋ค.
์์, ํฐํธ, ์ด๋ฏธ์ง url๋ฑ CSS ์ ์ฒด์ ๊ฑธ์ณ ๋ฐ๋ณต๋๋ ์์ฑ๊ฐ๋ค์ ์ ์ํด๋๋ ๊ฒ ํธํ๋ค.
$bg-color: #3e5e9e;
$font-p: 13px;
$base-font: "Noto Sans KR", sans-serif;
body {
background-color: $bg-color;
font-size: $font-p;
font-family: $base-font;
}
body {
background-color: #3e5e9e;
font-size: 13px;
font-family: "Noto Sans KR", sans-serif;
}
์ผ๋ฐ์ ์ธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋ณ์์ ์๋ฃํ์ด ์๋ฏ์ด SCSS์ ๋ณ์์๋ ์๋ฃํ์ด ์๋ค.
1. numbers : 1, .82, 20px, 2em ๋ฑ
2. strings : "./images/a.png", bold, left, uppercase ๋ฑ
3. colors : green, #FFF, rgba(255,0,0,.5) ๋ฑ
4. booleans : true, false
5. null
6. lists
$font-size : 10px 12px 16px; //ํฐํธ์ฌ์ด์ฆ ๋ฆฌ์คํธ
$image-file : photo_01, photo_02, photo_03 //์ด๋ฏธ์ง ํ์ผ๋ช
๋ฆฌ์คํธ
//์๋์ ๊ฐ์ ํํ๋ก ์ฌ์ฉ(์ํ๋ ๊ฐ๋ฅ) - ruby sass
nth(10px 12px 16px, 2); // 12px
nth([line1, line2, line3], -1); // line3
lists ๊ด๋ จ ๋ด์ฅํจ์
- append(list,value,[separator])
: lists์ ๊ฐ์ ์ถ๊ฐํ๋ ํจ์
- index(list,value)
: lists์ ๊ฐ์ ๋ํ ์ธ๋ฑ์ค๋ฅผ ๋ฆฌํดํ๋ ํจ์
- nth(list, n)
: lists์ ์ธ๋ฑ์ค์ ํด๋นํ๋ ๊ฐ์ ๋ฆฌํดํ๋ ํจ์
$font-size: 10px 12px 16px; //ํฐํธ์ฌ์ด์ฆ ๋ฆฌ์คํธ
.one {
font-size: nth($font-size, 2);
}
.two {
font-size: nth($font-size, -1);
}
.one {
font-size: 12px;
}
.two {
font-size: 16px;
}
7. maps
$font-weights: ("regular": 400, "medium": 500, "bold": 700); //๊ธ์ ๊ตต๊ธฐ ๋ฆฌ์คํธ
//์๋์ ๊ฐ์ ํํ๋ก ์ฌ์ฉ - ruby sass
map-get($font-weights, "medium"); // 500
map-get($font-weights, "extra-bold"); // null
map๊ด๋ จ ๋ด์ฅํจ์
- map-get(map,key)
: ํค์ ํด๋นํ๋ ๊ฐ์ ๊ฐ์ ๋ฆฌํดํ๋ ํจ์
- map-keys(map)
: map์ ๋ค์ด์๋ ํค(key) ์ ๋ถ๋ฅผ ๋ฆฌํดํ๋ ํจ์
- map-values(map)
: map์ ๋ค์ด์๋ ๊ฐ(value) ์ ๋ถ๋ฅผ ๋ฆฌํดํ๋ ํจ์
$font-weights: (
"regular": 400,
"medium": 500,
"bold": 700,
);
div {
font-weight: map-get($font-weights, "medium");
}
div {
font-weight: 500;
}
๋ณ์๋ต๊ฒ ์ค์ฝํ๋ ์กด์ฌํ๋ค. ์ ์ญ๋ณ์๋ ์ด๋ค ์ ํ์์์๋ ์ฌ์ฉ๊ฐ๋ฅํ๊ณ , ์ง์ญ๋ณ์๋ ๋ค๋ฅธ ์ ํ์ ๋ด์์ ์ฌ์ฉํ์ง ๋ชปํ๋ค.
$font-p : 15px; // ์ ์ญ๋ณ์ ์ ์ธ
.info {
$line-normal: 1.34; // ์ง์ญ๋ณ์ ์ ์ธ
font-size: $font-p; // ์ ์ญ๋ณ์ ์ฌ์ฉ๊ฐ๋ฅ
line-height: $line-normal;
text-align: right;
span {
line-height: $line-normal;
}
}
div {
color: red;
line-height: $line-normal; // ์ง์ญ๋ณ์ ์ฌ์ฉ๋ถ๊ฐ
}
์ง์ญ๋ณ์๋ฅผ ์ ์ญ๋ณ์๋ก ๊ฐ์ ํ๋ ๋ฐฉ๋ฒ์ด ์๋ค.
.info {
$line-normal: 1.34 !global; // ์ง์ญ๋ณ์๋ฅผ ์ ์ญ์ผ๋ก ๊ฐ์ ํจ
font-size: 15px;
line-height: $line-normal;
text-align: right;
span {
line-height: $line-normal;
}
}
div {
color: red;
line-height: $line-normal; // ์ฌ์ฉ๊ฐ๋ฅํด์ง
}
์ ํ์๋ค ์ฌ์ด์์ ๋ฐ๋ณต๋๋ ์์ฑ๋ค์ mixin์ผ๋ก ๋ฌถ์ด์ ๋ฐ๋ณต์ ์ค์ธ๋ค.
์ค๋ณต๋๋ ์์ฑ์ mixin์ผ๋ก ๋ง๋ค์ด ๋๊ณ ์ํ๋ ์ ํ์ ๋ธ๋ญ์ ํด๋น mixin์ includeํ๋ฉด ๋๋ค.
์๋์ CSS ์ฝ๋์์ .card์ .aside๋ background ์์ฑ๋ง ์ ์ธํ๊ณ ๊ฐ์ ์์ฑ์ ๊ฐ๊ณ ์๋ค.
.card {
display: flex;
justify-content: center;
align-items: center;
background: gray;
}
.aside {
display: flex;
justify-content: center;
align-items: center;
background: white;
}
์๋์ฒ๋ผ @mixin์ ์ด๋ฆ์ ์ ํด์ฃผ๊ณ { } ์์ ๊ณตํต๋ ์์ฑ์ ์์ฑํ ๋ค,
@include๋ก mixin์ ๋ถ๋ฌ์ ์ฌ์ฉํ๋ฉด ๋๋ค.
@mixin center-xy{
display: flex;
justify-content : center;
align-items : center;
}
.card{
@include center-xy;
}
.aside{
@include center-xy;
}