Linux 技巧

Linux Handbook

For RedHat Enterprise Linux

System

System

# clean old kernel packages
package-cleanup --oldkernels --count=1

# get boot method
systemctl get-default

# set boot level to command lines
systemctl set-default multi-user.target

# set boot level to GUI
systemctl set-default graphical.target

  • install/uninstall
# list groups of package
yum group list

# list packages of a group
yum group info "Minimal Install"
yum group info "core"

# install packages
sudo yum install <package name>

Services

# check service status
systemctl status docker

# configure a service start on boot
systemctl enable docker

# start a service
systemctl start docker
systemctl restart docker
systemctl stop docker

Storage

Linux Storage:
Physical Disks:/dev/sda, /dev/sdb, etc
Physical Volumes: /dev/sda1, /dev/sda2, etc,也可以是/dev/sdb
Logical Volume Groups: rehl, centos
Logical Volumes: /dev/rehl/root
File System: xfs

# enlarge disk size for rehl

# check disk size
df -lh

# list physical disks. If there is no /dev/sdb, try reboot.
fdisk -l | grep "Disk /"

# find volume group name
vgdisplay | grep "VG Name"

# find physical volume name
pvdisplay | grep "PV Name"

# extend a physical volume to a logical volume group
vgextend rhel /dev/sdb

# add spaces to a logical volume
lvextend -l +100%FREE /dev/rhel/root

# XFS file system
xfs_growfs /dev/rhel/root

# check disk size
df -lh

# ----- enlarge disk size for centos -------
df -lh
fdisk -l | grep "Disk /"
vgdisplay | grep Name
pvdisplay | grep Name
vgextend centos /dev/sdb
lvextend -l +100%FREE /dev/centos/root
xfs_growfs /dev/centos/root
df -lh

# ----- physical disk partitions --------
# list disk partitions
fdisk -l

# ----- LVM : logical volume management --------
# active volume group
lvm vgchange -ay

# ----- LVM : merge /home to / --------
# copy /home
mkdir backup
mv /home/* ./backup

# umount /home
umount /home

# remove volume /home
lvremove /dev/centos/home

# extend root size
lvextend -l +100%FREE /dev/centos/root

# get the configuration work
xfs_growfs /dev/centos/root

# clear backup folder
rm -rf ./backup

FTP

wget -r -nH --cut-dirs=3 ftp://username:password@ftp_hostname//dir1/dir2

#	Install FTP
yum install ftp
#	FTP commands
# connect to  a server
ftp IP/hostname
# Or
ftp
ftp> open IP/hostname

# transfer mode. Use binary mode in most cases.
ftp> binary
ftp> ascii

# get: download a specific file
# mget: download multiple files
# put|mput
# cd|pwd: directory operations on FTP server
# lcd: change local direcoty
# close: close connection
# quit: quit ftp

Zip

# install 32bit zip package
sudo yum -y install bzip2-libs*686

# zip
zip -u package.zip file1 file2

Locale

# show system locale
locale

# show system support locale
locale -a

# using utf-8 as system locale
# export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8

# support Asia fonts
sudo yum groupinstall Fonts

# list installed fonts
fc-list

Network

# check network status
/sbin/service network status

# check ip address
ip address
# check the listening ports and applications on Linux
sudo lsof -i -P -n | grep LISTEN
sudo netstat -tulpn | grep LISTEN
sudo nmap -sTU -O IP-address-Here

工具

Docker

  • Install docker
# create docker group
grep "^docker" /etc/group
if [ $? -ne 0 ]; then
/usr/sbin/groupadd docker
fi
id root | grep docker
if [ $? -ne 0 ];then
/usr/sbin/usermod -a -G docker root
/usr/sbin/usermod -g docker root
fi

# install docker
curl -fsSL https://get.docker.com/ | sh

# support HTTP response via HTTPS
tee /etc/docker/daemon.json <<-EOF
{
    "insecure-registries": ["<private host name>:5000"]
}
EOF

# check docker version
docker --version

# restart docker
systemctl stop docker
systemctl daemon-reload
systemctl start docker

# install docker-compose, make sure the path is in the /usr/local/sbin PATH variable
curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m`" > /usr/local/sbin/docker-compose
chmod +x /usr/local/sbin/docker-compose

# check docker-compose version
docker-compose --version
  • docker commands
# restart docker services
sudo systemctl stop docker
sudo systemctl daemon-reload
sudo systemctl start docker

# start docker, need to wait few minutes
sudo systemctl restart docker
docker-compose start

# stop docker
docker-compose stop

# stop and clear changes
docker-compose down
docker system prune -f

# start with images
docker-compose up -d

# Re-Install
## cd <compose configure path>
docker-compose down
docker system prune -f
# docker rm -fv $(docker ps -qa)
docker rmi $(docker images -q)
docker-compose pull
docker-compose up -d

# Login docker with root
docker exec -u 0 -it <container id> bash

# Enable docker ssh
docker exec <container id> /usr/sbin/sshd

tmux

What is tmux

tmux 是一个多通道终端。
最大的好处是:

  • 可以避免终端中断带来的session中断

当运行tmux时,实际上会运行一个tmux service,保持session的运行。

tmux的提出的概念是 tmux / sessions * / windows + / panes +
tmux可以管理多个sessions。
一个session有多个windows。
一个windows有多个panes。
每个pane是一个终端。

Install

sudo yum -y install tmux

tmux prefix

prefix is a key concept in tmux, it is a tmux shortcut key, default is [ctrl + b].
for example, the detach command is

tmux -detach

If you use [ctrl + b, d], also works.

configuration file

~/.tmux.conf

tmux idiot

# install tmux
sudo yum -y install tmux

# create a session here
tmux new-session -s here

# detach the session
prefix + d

# attach the session
tmux a
tmux a -t here

tmux commands

  • Help
# list command
tmux list-command

# list shortcut keys
tmux list-keys
  • Sessions
command shortcut key meaning
tmux new-session -s [session name] create an session
tmux attach-session -t [session name] attach to an (or the only) session
tmux detach-session prefix + d detach with the current session
tmux list-sessions list all sessions
tmux kill-session -t [session name] kill a session
  • Windows
command shortcut key meaning
tmux list-windows list all windows
tmux kill-window -t [window name] prefix + & kill a window
  • Panes
command shortcut key meaning
tmux split-window prefix + % new a horizontal pane
tmux split-window -v prefix + " new a horizontal pane
tmux split-window -h prefix + % new a vertical pane
tmux rotate-window prefix + C-o rotate panes
tmux select-pane -U prefix + Up select the up pane
tmux select-pane -D prefix + Down select the down pane
tmux select-pane -L prefix + Left select the left pane
tmux select-pane -R prefix + Right select the right pane
tmux resize-pane -U prefix + A-Up resize the up side
tmux resize-pane -D prefix + A-Down resize the down side
tmux resize-pane -L prefix + A-Left resize the left side
tmux resize-pane -R prefix + A-Right resize the right side
tmux list-panes list all panes
tmux kill-pane -t [pane name] prefix + x kill a pane
  • Save sessions
    Installation with Tmux Plugin Manager (recommended)
    Add plugin to the list of TPM plugins in ~/.tmux.conf:
set -g @plugin 'tmux-plugins/tmux-resurrect'

Hit prefix + I to fetch the plugin and source it. You should now be able to use the plugin.

Key bindings
prefix + Ctrl-s - save
prefix + Ctrl-r - restore

posted @ 2018-09-15 10:02  SNYang  阅读(315)  评论(0编辑  收藏  举报