[컴] 알아두면 좋을 linux commands

linux commands / linux / 리눅스 커맨드 / command / linux command

알아두면 좋을 linux commands

dpkg -l

  • 설치된 package 들 확인방법
  • Cent OS/ RedHat
    • dnf list installed
  • Debian / Ubuntu
    • dpkg -l
    • apt list --installed

dpkg-query -L python3

  • 설치된 package 의 file 들이 어디에 있는지 알 수 있다.

apt-cache search python3

  • apt 에 의해 설치가능한 default Ubuntu repository 들에 있는 package 이름들을 찾아준다.

whereis python3

  • binary, source, manual page files 들을 찾아준다.

locate python3

  • python3 가 들어가 있는 모든 파일의 path 를 보여준다.

  • 사용하기 위해서는 sudo updatedb 가 필요하다.(참고: UPDATEDB - Linux StepByStep)

  • vi /etc/updatedb.conf 에서 PRUNEPATHS 로 원하지 않는부분에 대한 index 를 만들지 않을 수 있다.(updatedb.conf(5) - Linux man page)

  • {.code} PRUNE_BIND_MOUNTS="yes" PRUNENAMES=".git .bzr .hg .svn" PRUNEPATHS="/tmp /var/spool /media" PRUNEFS="NFS nfs nfs4 rpc_pipefs afs binfmt_misc proc smbfs autofs iso9660 ncpfs coda devpts ftpfs devfs mfs shfs sysfs cifs lustre_lite tmpfs usbfs udf fuse.glusterfs fuse.sshfs ecryptfs fusesmb devtmpfs"

which python3

  • 현재 상태에서 실행하고 있는 python3 가 어떤 path 에 있는 python3 인지 알려준다.

iptables

netstat -lntu

  • -l : listening port
  • -n : port number
  • -t : tcp port
  • -u : udp port

아래 ss 를 확인하자.

cat /etc/passwd

  • 등록된 모든 유저 리스트

sudo useradd -m new_user

  • 등록된 모든 유저 리스트
  • -m : home directory 를 함께 만들어 준다.

passwd new_user

  • 암호 설정

sudo userdel -r new_user

  • user 계정 삭제
  • -r : home directory 포함 삭제

usermod -d /path/to/dir username

  • user 계정, 기본 접속 directory 변경
  • home directory 은 /etc/passwd 에서 확인이 된다.

alias function alias

# python activate
function ac() { source ~/env/$1/bin/activate; }

# history 내 특정 내용 찾기
function hs() { history | grep $1; }

# wsl 등에서 사용할 때 유용, windows path 를 wsl path 로 변경
function cdw() {
  result=$(echo "$1" | sed -e 's.\\./.g' -e 's/\/wsl\$\/Ubuntu//')
  cd $result
}

# 특정 owner 를 변경 할 때
alias chuser='sudo chown user:user $1 -R'

lsb_release -a / grep . /etc/*-release

  • linux standard base 정보
  • uname -r : 배포판 커널 버전을 알 수 있다.

chown

  • chown -R userid directory
  • chown userid:usergroup file

groups

  • 어느 그룹에 속해있는지 알려준다.
  • groups userid
  • chgrp userid file.txt

usermod -a -G groupname username

원하는 그룹에 특정 user 를 추가할 때 사용한다.

usermod -a -G group1,group2 username 이런 식으로 사용할 수도 있다.

group 을 추가하는 것은 groupadd mynewgroup을 사용하면 된다. 

삭제 1

  • gpasswd -d username group1 : group1 을 지운다.

삭제 2

  • groups username : 현재 속해있는 group 을 확인
  • usermod -G group1,group2 username : -a 없이 사용하면 username 가 group1,group2 에만 속하게 된다.

/etc/group 을 수정하는 방법도 있다.

user

find . -name '*filname*'

  • 현재폴더에서 recursive 하게 filename 을 찾아준다.

  • function fs() { key=$(echo “$1”) find . -name $key }

lsof <file_name>

특정한 파일 및 디렉토리를 사용하고 있는 process를 보여준다. 어떤 process 가 이 파일에 lock 을 걸고 있는지등의 파악에 사용할 수 있다.

ss -tulnp

socket 정보를 보여준다. 열려있는 port 를 확인할 때 사용할 수 있다.(참고: 3 ways to check open ports in Linux - SSLHOW)

update-alternatives

여러가지 버전이 설치된 경우 아래처럼 사용해서 현재 사용될 version 을 지정해 줄 수 있다.

sudo update-alternatives --config java
sudo update-alternatives --config javac

my functions in .bashrc

function ac() { source ~/a/env/$1/bin/activate; }
function hs() { history | grep $1; }
function cdw() {
  # \\wsl$\Ubuntu\home\namh --> /home/namh
  result=$(echo "$1" | sed -e 's.\\./.g' -e 's/\/wsl\$\/Ubuntu//')
  # d:\a\prog\docker\superset\superset --> /mnt/d/a/prog/docker/superset/superset
  unixpath=$(echo "$1" | sed -e 's.\\./.g' | sed 's/^\([a-zA-Z]\):/\/mnt\/\L\1/')
  
  cd $unixpath
}
function fs() { 
  key=$(echo "*$1*")
  find . -name $key
}
alias chnamh='sudo chown na:na $1 -R'

See Also

  1. 쿠...sal: [컴][리눅스] systemd 사용법
  2. GitHub - ibraheemdev/modern-unix: A collection of modern/faster/saner alternatives to common unix commands. : 리눅스에서 쓸만한 새로운 명령어들
  3. explainshell.com - ls -lAGh1vX –group-directories-first –color=auto : 리눅스 명령어를 넣으면, 어떤 명렁어이고, 옵션의 의미는 무엇인지를 알려준다.
  4. 쿠…sal: [컴][리눅스] disk 사용량 관련 리눅스 명령어 정리
  5. How to use HAProxy stats socket – sleeplessbeastie’s notes : haproxy 를 모니터링 할 때 쓸 command

댓글 없음:

댓글 쓰기