Linux - soup1997/Study-Alone GitHub Wiki

WIFI ์ž๋™ ์—ฐ๊ฒฐ

sudo cat /etc/wpa_supplicant/wpa_supplicant.conf
wpa_passphrase ์™€์ดํŒŒ์ด์ด๋ฆ„ '๋น„๋ฐ€๋ฒˆํ˜ธ'
# ์œ„ ๋ช…๋ น์–ด ์ž…๋ ฅ ์‹œ ์•„๋ž˜ ์ฒ˜๋Ÿผ ์ถœ๋ ฅ๋จ
network={
   ssid="์™€์ดํŒŒ์ด์ด๋ฆ„"
   #psk="๋น„๋ฐ€๋ฒˆํ˜ธ"
   psk = ~~~
}
network={
   ssid="์™€์ดํŒŒ์ด์ด๋ฆ„"
   #psk="๋น„๋ฐ€๋ฒˆํ˜ธ"
   psk=53d92a34f43d2dcda92866d8d99f70b895dd6bc247831a5310deea525d47eab1
}
# ์œ„์˜ ๋‚ด์šฉ์„ ๋ณต์‚ฌํ•ด์„œ wpa_supplicant.conf์— ๋ถ™์—ฌ๋„ฃ๊ธฐ
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
sudo reboot

IP ๊ณ ์ • ํ• ๋‹น

sudo nano /etc/dhcpcd.conf

interface wlan0
static ip_address=172.16.1.~
static routers=172.16.255.255
static netmask=255.255.0.0

sudo wpa_cli -i wlan0 reconfigure

์žฅ์น˜ ์ด๋ฆ„, ๊ถŒํ•œ ๊ณ ์ •

๐Ÿ”น ์žฅ์น˜ ์ด๋ฆ„ ๊ณ ์ • ๋ฐ ๊ถŒํ•œ ๊ณ ์ •

Difference between 'purge' and 'remove'

sudo apt remove package_name   
sudo apt purge package_name   

Both apt-remove and apt-purge do the same thing and that is to uninstall a package. The apt-purge removes the package and purges any configuration files associated with it. Thatโ€™s the only difference between the two.

ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์„ค์ •

๐Ÿ”น ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์ผ์‹œ ์ ์šฉ

export ํ™˜๊ฒฝ๋ณ€์ˆ˜๋ช… = ๊ฐ’

๐Ÿ”น ์˜ˆ๋ฅผ๋“ค์–ด JAVA_HOME ํ™˜๊ฒฝ ๋ณ€์ˆ˜์— jdk์˜ ๊ฒฝ๋กœ๋ฅผ ๋„ฃ์–ด์ฃผ๊ณ  ์‹ถ๋‹ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ์‚ฌ์šฉ

export JAVA_HOME=/usr/java/jdk1.6.0_45

๐Ÿ”น ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์˜๊ตฌ ์ ์šฉ

sudo sh -c "echo 'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-11.0/lib64' >>/etc/profile"

๋˜๋Š” /etc/bash.bashrc ํŒŒ์ผ์„ ์—ด์–ด์„œ ๋งจ ๋งˆ์ง€๋ง‰ ์ค„์— ์ ์šฉํ•˜๊ณ ์ž ํ•˜๋Š” ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ export ๋ช…๋ น์–ด๋กœ ์„ค์ •ํ•œ๋‹ค.

GCC/G++ ์‚ฌ์šฉ๋ฒ•

๐Ÿ”น GCC, c์–ธ์–ด ์ปดํŒŒ์ผ๋Ÿฌ

# ์„ค์น˜ ๋ฐฉ๋ฒ•
sudo apt get install gcc 
# ์ฝ”๋“œ ์ปดํŒŒ์ผ
gcc [ํŒŒ์ผ๋ช…].c -o [์ถœ๋ ฅํ•  ํŒŒ์ผ๋ช…]

๐Ÿ”น G++, c++ ์ปดํŒŒ์ผ๋Ÿฌ

# ์„ค์น˜ ๋ฐฉ๋ฒ•
sudo apt get install g++
# ์ฝ”๋“œ ์ปดํŒŒ์ผ
g++ [ํŒŒ์ผ๋ช…].cpp -o [์ถœ๋ ฅํ•  ํŒŒ์ผ๋ช…]

์ง€์ •ํ•œ ํŒŒ์ผ๋ช…์˜ ์‹คํ–‰ํŒŒ์ผ์ด ์ƒ์„ฑ๋˜๋ฉด ํ•ด๋‹น ํŒŒ์ผ์„ ์‹คํ–‰

./[์ถœ๋ ฅ๋œ ํŒŒ์ผ๋ช…]

Terminator

terminator
  • ์ˆ˜ํ‰ ๋ถ„ํ•  : Ctrl + Shift + O

  • ์ˆ˜์ง ๋ถ„ํ•  : : Ctrl + Shift + E

  • ๋‹ค์Œ ์ฐฝ ํ™œ์„ฑํ™” : Ctrl + Tab or Ctrl + Shift + N

  • ์ด์ „ ์ฐฝ ํ™œ์„ฑํ™” : Ctrl + Shift + Tab or Ctrl + Shift + P

  • ํ˜„์žฌ ํ™œ์„ฑํ™” ๋œ ์ฐฝ ๋‹ซ๊ธฐ : Ctrl + Shift + W

  • ํ„ฐ๋ฏธ๋„ค์ดํ„ฐ ์‹คํ–‰ : Ctrl + Alt + T

  • ํ„ฐ๋ฏธ๋„ค์ดํ„ฐ ์ข…๋ฃŒ : Ctrl + Shift + Q

  • ์ „์ฒดํ™”๋ฉด : F11

WSL

๐Ÿ”น Windows 10 WSL2 ์„ค์น˜ ๋ฐ ์‚ฌ์šฉ๋ฒ•
๐Ÿ”น Linux์šฉ Windows ํ•˜์œ„ ์‹œ์Šคํ…œ Linux GUI ์•ฑ ์‹คํ–‰

๋ช…๋ น์–ด ์ถ•์•ฝ: Alias

bashrc์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ถ”๊ฐ€

alias chrome='/usr/bin/google-chrome-stable'

๋””๋ ‰ํ† ๋ฆฌ ์‚ญ์ œ

๋นˆ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์‚ญ์ œํ•˜๋ ค๋ฉด -d(--dir) ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๊ณ  ๋น„์–ด ์žˆ์ง€ ์•Š์€ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์‚ญ์ œํ•˜๋ฉฐ ๋ชจ๋“  ๋‚ด์šฉ์€ -r(--recursive ๋˜๋Š” -R) ์˜ต์…˜์„ ์‚ฌ์šฉ

rm -r directory_name

๊ถŒํ•œ ๋ณ€๊ฒฝ

๋””๋ ‰ํ† ๋ฆฌ ๋‚ด๋ถ€์— ์กด์žฌํ•˜๋Š” ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ์™€ ํŒŒ์ผ์˜ ๊ถŒํ•œ์„ ๋ชจ๋‘ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด -R ์˜ต์…˜์„ ์‚ฌ์šฉ

  • read(4), write(2), execute(1)
  • ์ง€์ •ํ•˜๋Š” ๊ถŒํ•œ์€ ์ˆœ์„œ๋Œ€๋กœ User, Group, Other
sudo chmod XXX -R directory_name

Requirements.txt

requirements.txt ์ƒ์„ฑ

pip freeze requirements.txt

requirements.txt ์„ค์น˜

pip install -r requirements.txt 

CMake

1. CMake ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ

ํ”„๋กœ์ ํŠธ ํŒŒ์ผ๋“ค์„ ์œ„์น˜์‹œํ‚ฌ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

mkdir project
cd project
code .

2. CMakeLists.txt ์ƒ์„ฑ

CMakeLists.txt ํŒŒ์ผ์€ ํ”„๋กœ์ ํŠธ ๊ฒฝ๋กœ๋งˆ๋‹ค ์œ„์น˜์‹œ์ผœ์•ผ ํ•œ๋‹ค. ๋ฌธ๋ฒ•์— ๋Œ€ํ•œ ์‚ฌํ•ญ์€ ๋งํฌ ์ฐธ๊ณ 

cmake_minimum_required(VERSION 3.0.0)

# create project
project(pcl_tutorial VERSION 0.1.0)
add_executable(pcl_tutorial main.cpp)

# find packages
find_package(PCL 1.10 REQUIRED)


if(PCL_FOUND)
  # [C/C++]>[General]>[Additional Include Directories]
  include_directories( ${PCL_INCLUDE_DIRS} )

  # [C/C++]>[Preprocessor]>[Preprocessor Definitions]
  add_definitions( ${PCL_DEFINITIONS} )

  # For Use Not PreCompiled Features 
  #add_definitions( -DPCL_NO_PRECOMPILE )

  # [Linker]>[General]>[Additional Library Directories]
  link_directories( ${PCL_LIBRARY_DIRS} )

  # [Linker]>[Input]>[Additional Dependencies]
  target_link_libraries( pcl_tutorial ${PCL_LIBRARIES} )
endif()

3. Build

  1. ๋‹จ์ถ•ํ‚ค (Ctrl + Shift + P) ๋ˆ„๋ฅธ ํ›„์— CMake: Build ์‹คํ–‰
  2. ๋˜๋Š” buildํด๋”๋กœ ๋””๋ ‰ํ† ๋ฆฌ ๋ณ€๊ฒฝ ํ›„
make

make ์™„๋ฃŒ ํ›„ build/projectName ํŒŒ์ผ์ด ์ƒ์„ฑ๋œ๋‹ค. ํ•ด๋‹น ํŒŒ์ผ์ด ์‹คํ–‰ํŒŒ์ผ์ด๋ฉฐ ์ฝ”๋“œ์˜ ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

cd ./build
./projectName

ํฌํŠธ/๋ฐฉํ™”๋ฒฝ ํ™•์ธ ๋ฐ ํฌํŠธ ์—ด๊ธฐ

ํฌํŠธ ์ƒํƒœ ํ™•์ธ

netstat -nap | grep LISTEN ํฌํŠธ๋ฒˆํ˜ธ
  • n: host๋ช…์œผ๋กœ ํ‘œ์‹œ ์•ˆํ•จ
  • a: ๋ชจ๋“ ์†Œ์ผ“ ํ‘œ์‹œ
  • p: ํ”„๋กœ์„ธ์ŠคID์™€ ํ”„๋กœ๊ทธ๋žจ๋ช… ํ‘œ์‹œ

ํฌํŠธ ์—ด๊ธฐ

์™ธ๋ถ€์—์„œ ๋“ค์–ด์˜ค๋Š” inbound TCP/UDP ํฌํŠธ 12345์˜ ์—ฐ๊ฒฐ์„ ๋ฐ›์•„๋“ค์ธ๋‹ค๋Š” ๊ทœ์น™์„ 1๋ฒˆ ๋ฐฉํ™”๋ฒฝ ๊ทœ์น™์œผ๋กœ ์ถ”๊ฐ€

iptables -I INPUT 1 -p tcp --dport 12345 -j ACCEPT
iptables -I INPUT 1 -p udp --dport 12345 -j ACCEPT

Ubuntu Server 20.04 LTS netplan, interfaces ๊ณ ์ • IP ์„ค์ •

IP ๊ณ ์ •