Linux常用技巧
linux Tips wiki
目前的稳定版本为Debian Jessie,目前的测试版本为Debian Stretch,不稳定版本永远为Debian sid
Linux命令大全
命令行的艺术
command-line-cookbook
11个让你吃惊的 Linux 终端命令
按键绑定
- bindkey # 查看所有绑定的快捷键
- bindkey '^Z' fancy-ctrl-z # 绑定一个函数到快捷键上
- :先按下
Ctrl+V,然后按下F12
.我们就可以得到F12的字符序列 ^\[\[24~
。
【附】也可以使用showkey -a
命令查看按键对应的字符序列。
echo '{"id":1,"1":"li"}'|jq '."1"'
快速开启http服务
python -m SimpleHTTPServer 4000
ruby -run -e httpd . -p 9090
python -m SimpleHTTPServer 8000
php -S 127.0.0.1:8088 router.php
##解码base64
echo 'Qml0ZSBtZSBpZiB5b3UgY2FuISEhISEhIQo=' | base64 --decode
##多线程下载axel
axel -q -n 10 -o /tmp/ http://soft.vpser.net/lnmp/lnmp0.7-full.tar.gz
格式转换
iconv -f UTF-8 -t ISO-8859-15 name= killall emacs24 whatis 显示和word相关的命令 如果遇到想完成某个功能,但具体命令忘了的时候怎么办 showkey程序可以知道你的按键是否拥有一个keycode sudo mkdir /var/www/mysql ps h -Led -o user | sort | uniq -c | sort -n dig baidu.com echo "de974a05937e55001c6bcd9060b42583 Discuz_X3.2_SC_UTF8.zip" | md5sum -c && echo 校验成功 :w !sudo tee % Ctrl+R 执行history命令 GRUB_DISTRIBUTOR= uptime 1、shutdown -r now 关机后重启 ## 基本信息 fuser -nv tcp 80 fuser -m /dev/vdb1 e2fsck -a /dev/mapper/VolGroup00-LogVol02 lsof +L1 lsof -i root用户执行: 有的时候你的将用户设了nopasswd,但是不起作用,原因是被后面的group的设置覆盖了,需要把group的设置也改为nopasswd。 设置admin组 sudo免密码使用 sudoers 查看一下当前用户属于哪些组 将指定用户添加到admin组 vi /etc/pam.d/su groups #查看当前用户属于哪些组。 groupadd group #创建组 cat /etc/passwd |awk -F : '{print $1}' #查看所有用户 gpasswd -a user group 等于 usermod -G group user Debian groupmod -g 99 docker find / -user 1005 -exec chown -h foo {} \; sudo su ##将当前用户的环境变量带过去 chmod perm filename chmod u+s test_file #给文件增加SUID属性 du -hd1 #统计当前目录大小 fdisk tar zxvf file.tar.gz -C . #解包gz -x, --extract -P 覆盖 -C 目录 zip test.zip test.txt jar -cvfM0 game.war ./ #打包成game.war -0 只打包不压缩的意思 sudo netstat -anptu | grep ssh route -n 用户安全 /etc/profile // 用户配置文件 系统硬件信息 系统程序入口 /bin $ man hier 显示文件系统分层的描述信息 ################################################################################ ctrl+z #将前台放入后台(暂停) ctrl+p 重复上一次命令 ctrl+r: 向前查找用过的命令* ctrl+b: 光标左移一个字母 <- Alt + b :往回(左)移动一个单词 ctrl + <- ctrl+d: 退出当前 Shell。 ctrl+w: 移除光标前的一个单词 ctrl+u: 清除光标前至行首间的所有内容。 ctrl+shift+v: 安装右键从终端启动 复制文件到远程目录 如果是复制文件夹,使用 清理dns cache 查看域名解析 在终端下: 在控制台下: ctrl+s: 锁住PuTTY锁屏 screen -r //查看所有的screen,并且可以恢复detach的进程; ldd -r /usr/bin/ffmpeg #查看链接库 sudo gedit /etc/profile set|more #Show the current user environment. echo $PATH alias ls="ls --color=tty" 设置IP(设置网卡eth0的IP地址和子网掩码) vi /etc/network/interfaces iface eth0 inet static vim /etc/resolv.conf 在其中加入nameserver DNS的地址1 和 nameserver DNS的地址2 完成。 dpkg -l 查看已安装软件 apt-get update 查看当前运行的级别 runlevel 方法一: Find Grep egrep --color 'cat|dog' test cat or dog echo "--shit"|grep -- --shit Rsync 节点不够的情况下: 快速删除多级目录 快速删除大文件 同步并删除原文件(不删除原空目录) 同名目录同步覆盖方法: rsync -azv --partial --exclude "dir1" --exclude "dir2" --exclude "dir3" /source/ $HOST:/dest/ Screen (后端开启虚拟终端,退出后仍在后台) iptables -L -n #查看本机关于IPTABLES的设置情况 内建三个表:nat mangle 和filter TIME_WAIT:表示主动关闭,通过优化系统内核参数可容易解决。 ################################################################################ 映射命令:sshfs username@192.168.1.100:path local_path 为root账户修改一个密码; 在终端下输入”sudo passwd root”命令,终端会提示输入当前账户密码,正确输入后,再输 入两次你想要为root账户赋予的密码即可。 ,则依次打开”SystemàAdministrationàLogin Screen”,点击“Unlock”后,修改Login Screen Settings的某一项设置,比如Enable或者Disable一下“Log in as automatically”,然后关闭该 窗口,再查看一下/etc/gdm/目录下,custom.conf文件应该就会存在了。 s (b) 编辑/etc/gdm/custom.conf文件,修改其中的AutomaticLoginEnable,AutomaticLogin, TimedLogin三项,具体如下所示: [daemon]将命令的输出变成一个值来幅给变量
basename /usr/include/stdio.h
name=$(basename /usr/include/stdio.h)按名称杀死进程
查看某条命令具体用法
查找相关命令
apropos sort :查找和sort相关的命令
man -k who查看按键的keycode
字符串切割
name="chickensoup.tar.gz"
${NAME##*fo} 切割字符;
# (单次匹配start) # echo ${name#*.} tar.gz
## (贪婪匹配头) # echo ${name##*.} gz
% (单词匹配end) # echo ${name%.*} chickensoup.tar
%% (匹配尽量长end) # echo ${name%%.*} chickensoup
${NAME:0:3} 直接取子串 # echo ${name:0:3} chi
截取文件名
basename /usr/include/stdio.h
stdio.hbasename /usr/include/stdio.h .h
stdio获取路径
dirname /usr/include/stdio.h
/usr/include/以指定用户执行
sudo -u www-data
sudo cp -r .ssh /var/www
sudo chown -R www-data:www-data /var/www/.ssh
sudo mkdir /var/www/html
sudo chown -R www-data:www-data /var/www/html
sudo -u www-data git clone git@git.oschina.net:keyixinxi/chengzhi.git
sudo chown -R mysql:mysql /var/www/mysql
sudo -u mysql mkdir chengzhisudo cat << EOF > File doesn't work, sudo su does
sudo bash -c 'cat > /etc/nginx/sites-enabled/chengzhi.conf <<EOF
server {
listen 80;
server_name _;
location / {
proxy_pass http://127.0.0.1:8001;
proxy_set_header Host \$host;
proxy_set_header X-Real-IP \$remote_addr;
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
}
}
EOF'
查看所有用户创建的进程数,使用命令:
获取ip
添加环境变量
echo PATH="$HOME/bin:$PATH" >> ~/.bashrc
cksum
md5
shasum vim强制保存只读文件
查看操作系统ubuntu debain
lsb_release -i -s 2> /dev/null || echo Debian
十条命令在一分钟内检查 Linux 服务器性能
dmesg | tail
vmstat 1
mpstat -P ALL 1
pidstat 1
iostat -xz 1
free -m
sar -n DEV 1
sar -n TCP,ETCP 1
top
三张图看遍Linux 性能监控、测试、优化工具
2、shutdown -h now 关机后不重启
3、shutdown -r +10 10分钟后重启
4、shutdown -r 10:00 10点钟重启
5、shutdown -h +10 10分钟后关机
6、shutdown -h 10:00 10点钟关机
id
last 查看登录成功的用户记录
lastb 查看登录不成功的用户记录
lastattr
uname -r
unmae -a
cat /proc/cpuinfo
cat /proc/interrupts
cat /proc/version
cat /proc/filesystemscat /etc/*release
#查看安装版本
dmesg | less
lsmod #Show the kernel modules currently loaded.
history
hostname
##
获取进程对应的 PID
fuser -k -n tcp 80
lsof -i查看设备占用
执行 e2fsck 或 fsck 前请先 umount partition,否则有机会令档案系统毁损。
分区忙的情况,需要将所有涉及该分区的进程杀掉,有个快速的方法是执行 fuser -k /home查找未链接的文件
获取进程打开端口的信息
sudo lsof -i:80用户相关 sudo user
设置用户 sudo免密码使用sudo
echo 'ubuntu ALL=(ALL) NOPASSWD:ALL' > /etc/sudoers.d/ubuntu
普通用户执行: echo 'ubuntu ALL=(ALL) NOPASSWD:ALL' | sudo tee /etc/sudoers.d/ubuntu设置用户组 sudo免密码使用sudo
chmod 740 /etc/sudoers
vim /etc/sudoers 后把%admin ALL=(ALL) ALL
==> %admin ALL=NOPASSWD:ALL
chmod 440 /etc/sudoersgroups
gpasswd -a ${USER} admin
usermod -G admin your_user_name
auth required pam_wheel.so group=wheel
# Uncomment this if you want wheel members to be able to
# su without a password.
auth sufficient pam_wheel.so trust use_uid
groups ubuntu #查看用户所在的用户组
useradd user #创建用户
useradd -g group user #创建用户并添加到组
cut -f 1 -d : /etc/passwdusermod 用户管理 | gpasswd 组管理
sudo gpasswd -a ${USER} docker #将指定用户添加到docker组
sudo usermod -aG docker ${USER}-h DIR Home directory
-g GECOS GECOS field 注释
-s SHELL Login shell
-G GROUP Add user to existing group
-S Create a system user
-D Don't assign a password
-H Don't create home directory
-u UID User id
xfs:x:33:33:X Font Server:/etc/X11/fs:/sbin/nologin
deluser xfs && delgroup xfs
addgroup -S -g 43 xfs && adduser -S -u 43 -G xfs -g "X Font Server" -h /etc/X11/fs -H -s /sbin/nologin xfs
alpine
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
addgroup -S -g 33 www-data && adduser -S -u 33 -G www-data -g "www-data" -h /var/www -s /sbin/nologin www-data
mysql:x:27:27:MariaDB Server:/var/lib/mysql:/sbin/nologinRUN groupmod -g 11 sudo && groupadd -r -g 27 mysql && useradd -r -u 27 -g mysql -c mysql -d /var/lib/mysql -s /sbin/nologin mysql
sudo groupadd -r -g 999 mysql && sudo useradd -r -u 999 -g mysql -c mysql -d /var/lib/mysql -s /sbin/nologin mysql
sudo groupadd -r -g 33 www-data && sudo useradd -r -u 33 -g www-data -c www-data -d /data/ -s /usr/sbin/nologin www-data
sudo groupadd -r -g 1000 ubuntu && sudo useradd -r -u 1000 -g ubuntu -c ubuntu -d /home/ubuntu -s /bin/bash ubuntu
groupadd -r -g 999 mysql && useradd -r -u 999 -g mysql -c mysql -d /var/lib/mysql -s /sbin/nologin mysql
find / -group 2000 -exec chgrp -h foo {} \;ENV JENKINS_HOME /var/jenkins_home
ENV JENKINS_SLAVE_AGENT_PORT 50000
ARG user=jenkins
ARG group=jenkins
ARG uid=1000
ARG gid=1000
RUN groupadd -g ${gid} ${group} \
&& useradd -d "$JENKINS_HOME" -u ${uid} -g ${gid} -m -s /bin/bash ${user}
切换root
sudo su - #sudo -i ##切换到全新的root用户权限管理
chmod a+r junk
chown -hR new_ownername filename
chown -hR new_ownername:new_groupname filename
chgrp -hR new_groupname filename #子目录一起更改
chmod g+s test_dir #给目录增加SGID属性
chmod o+t test_dir #给目录增加Sticky属性磁盘相关
du -had1 #统计当前目录下所有文件大小
df -hT #查看磁盘分区格式
mknod /dev/fd0 b 2 0
mkfs -c -t ext2
badblocks /dev/fd01440 1440
fsck -t ext2 /dev/hda2
dd if=/dev/fd0H1440 of=floppy_image
dd if=floppy_image of=/dev/fd0H1440tar
tar zcvpf file.tar.gz #打包gz -c, --create
tar zcvf fd.tar.gz * --exclude=file1 --exclude=dir1 #tar打包排除某个目录zip
unzip test.zip -d /root/unzip discuz.zip "upload/*" -d Discuz
# 解压压缩包内的特定文件夹到指定目录war
jar -xvf game.war #解压game.war网络相关
-a, --all, --listening display all sockets (default: connected)-n, --numeric don't resolve names
-p, --programs display PID/Program name for sockets
-l, --listening display listening server sockets
ifup eth0
traceroute host_to_trace
digNetwork (网络)
$ ulimit -n // 查看最大连接数(socket描述符、文件描述符)
$ ifconfig -a // 查看IP
$ netstat -apn // 查看网络状态
$ netstat -nr // 查看默认网关
$ lsof -i:10000 // 查看端口
$ route -n // 查看默认网关
$ fuser -n tcp 8800 // 查看TCP网络状态
$ ifconfig // 查看网卡
$ ntpdate ntp.ubuntu.com // 同步时间服务器
Process (进程)
$ top // 查看进程内存CPU消耗
$ ps -aux | grep mysqld // 查找进程(管道过滤)
$ ps -ef // 进程清单
$ kill -9[2] 1102 // 强制关闭进程
$ pkill -9 -U username // 强制关闭用户进程
System (系统参数)
$ env // 查看系统环境变量
$ pwd // 查看当前目录
$ who -r // 查看服务器运行级别
$ runlevel // 查看服务器运行级别
$ whereis nodejs
$ whatis nodejs
File System (文件管理)
$ mkdir /opt/mydir // 创建目录
$ cd /opt/mydir // 进入目录
$ vi /opt/mydir/test // 创建文件
$ gedit /opt/mydir/test // 创建文件
$ cat /opt/mydir/test // 查看文件
$ head /opt/mydir/test // 查看文件,只有头部
$ tail /opt/mydir/test // 查看文件,只有尾部
$ cp /opt/mydir/test /opt/mydir/test2 -R // 复制
$ mv /opt/mydir/test /opt/mydir/test2 // 转移
$ rename /opt/mydir/test /opt/mydir/test2 // 重命名
$ rm /opt/mydir/test -rf // 删除 (递归,强制)
$ ln /home/king/test /bin/test // 创建硬连接
$ ln /home/king/test /bin/test -s // 创建软连接
$ find /usr -size +10M // 在/usr目录下找出大小超过10MB的文件
$ find /home -mtime +120 // 在/home目录下找出120天之前被修改过的文件
$ find /var \! -atime -90 // 在/var目录下找出90天之内未被访问过的文件
$ find / -name core -exec rm {} \ // 在整个目录树下查找文件“core”,
// 如发现则无需提示直接删除它们
User (用户权限)
$ adduser lili // 创建用户
--home-dir /home/king
--group root
$ chmod -R 755 /home/king/test // 修改文件,目录权限 (递归)
$ chown lili:root /home/king // 修改文件,目录用户组
Manager (管理员)
$ su // 切换管理员
$ su king // 切换用户
$ passwd // 重设密码
$ shutdown now // 关机
$ reboot now // 重启
Configuation (系统配置)
$ vi /etc/profile // 修改系统配置,针对所有用户
$ vi ~/.bashrc // 修改系统配置,针对当前用户
$ source /etc/profile // 使配置生效
export NAME=/home/king/name // 提供NAME系统变量
export PATH=${PATH}:${NAME}/bin // 提供并修改PATH系统变量
Important (重要文件)
/etc/shadow // 用户密码数据文件
/etc/passwd // 用户伪密码数据文件
/etc/group // 用户组数据文件 /proc/cpuinfo // CPU信息
/proc/meminfo // 内存信息
/proc/*info // 所有硬件信息
/usr/bin
/usr/local/bin
...Vi
i // 光标前插入字符
a // 光标后插入字符
u // ctrl+r 撤销、还原
q // 退出
x // 删除光标后字符
d // 删除当前行
q! // 强制退出
w // 保存
shell
#!/usr/bin/env node
OTHER
ctrl+alt 小键盘 控制窗口位置
Ctrl+shift+q 关闭终端窗口命令& #让命令后台运行
jobs #查看后台运行程序
bg 1 #运行后台暂停进程
fg 1 #调出后台进程
ctrl+x 同上但再按一次会从新回到原位置
ctrl+a: 光标移到行首。
ctrl+e: 光标移到行尾。
ctrl+f: 光标右移 ->
Alt + f :往后(右)移动一个单词 ctrl + ->
ctrl+d: 删除光标所在字母
注意和backspace以及ctrl+h的区别,这2个是删除光标前的字符
ctrl+h: 删除光标前一个字符,同 backspace 键相同。
Alt – d :由光标位置开始,往右删除单词。往行尾删
ctrl+k: 清除光标后至行尾的内容。
ctrl+y: 粘贴或者恢复上次的删除
ctrl+l: 清屏,相当于clear。
ctrl+t: 交换光标位置前的两个字符
ctrl+c: 杀死当前进程。sudo apt-get install nautilus-open-terminal
scp filename xiezf@192.168.248.124:/home/push
scp -r filename xiezf@192.168.248.124:/home/push
scp -P2222 -r video root@deedbeef.com:/
sudo /etc/init.d/dns-clean start
nslookup api.jpush.cn
复制命令:Ctrl + Shift + C 组合键.
粘贴命令:Ctrl + Shift + V 组合键.
复制命令:Ctrl + Insert 组合键 或 用鼠标选中即是复制。
粘贴命令:Shift + Insert 组合键 或 单击鼠标滚轮即为粘贴。
ctrl+q: 解锁
screen -S name 创建sesstion
screen -la 查看sesstion
screen -rd name 恢复sesstion
screen -d //并且可以恢复detach的进程;
C-a ? -> 显示所有键绑定信息
C-a c -> 创建一个新的运行shell的窗口并切换到该窗口
C-a n -> Next,切换到下一个 window
C-a p -> Previous,切换到前一个 window其他
添加修改动态库路径
vim /etc/ld.so.conf
sudo ldconfig #生效环境变量
sudo gedit /etc/environment
export
export -psudo mount -t ntfs-3g /dev/sdb2 /media/ubuntu/software/
/dev/sdb2 on /media/ubuntu/software type fuseblk (rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096,uhelper=udisks2)网络配置
sudo ifconfig eth0 192.168.2.1 netmask 255.255.255.0
设置网关
sudo route add default gw 192.168.2.254
auto eth0
iface eth0 inet dhcp
address 192.168.2.1
gateway 192.168.2.254
netmask 255.255.255.0
#network 192.168.2.0
#broadcast 192.168.2.255设置DNS
//重启网络服务
sudo /etc/init.d/networking restartapt-
apt-get upgrade
sudo apt-cache search nfs-
apt-get purge #apt-get --purge remove
sudo update-alternatives --config javasudo apt-get install software-properties-common
sudo apt-get install python-software-properties
sudo add-apt-repository ppa:webupd8team/java #添加PPA
sudo add-apt-repository -r ppa:webupd8team/java #删除PPA
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 6AF0E1940624A220 #导入密钥3.配置自启动服务
sysv-rc-conf chkconfig的替代 图形化
sysv-rc-conf --list | grep ssh
sysv-rc-conf ssh on //系统自动启动SSH服务
sysv-rc-conf ssh off // 关闭系统自动启动SSH服务
sysv-rc-conf --level 35 apache on
方法二:
update-rc.d ssh enable //系统自动启动SSH服务
update-rc.d ssh disable // 关闭系统自动启动SSH服务
update-rc.d -f ssh remove // 移除自动启动SSH服务
方法三:
systemctl list-unit-files --type=service |grep enabled
sudo systemctl stop bluetooth.service # 终止一个服务
sudo systemctl disable bluetooth.service # 禁止开机启动
find /usr /home /tmp -iname ".jar" (1.多个目录 2.不区分大小写)
find /usr/bin -type l -name "z" -ls (1.类型 2.执行操作,-ls同 -exec ls -l {} \; 还有-delete)
find / -name ".txt" -mount 只在本文件系统查找(-mount or -xdev )
find . -name "flick.png" |xargs tar czf flick.rar
find ~ -name ‘*.log’ -print0 | xargs -0 rm -f 太长的分段(-print0 与 -0 匹配,以NULL代替回车换行)
find . -type f -atime +10 -print0 | xargs -0 -l1 -t rm -f (-l1 表示 一次处理一行,-t表示看到)
grep -c/-o/-n/-i/-l/-w/-v/-h count/only-match/num/ignore/list-name/word/invert-match /不显示文件名
grep -B/A/C n (before/after/context)显示匹配行周围行 (posix 未说明)
grep -E --color 'cat|dog' test (同上一行)
grep -l -e 'string.h' -e 'stdlib.h' /usr/include/*.h
#查看日志的错误信息
grep -irwE 'error|failed|failure' /var/log |less
echo '--shit' | grep -e '--shit'
rsync -e "ssh -p 31415" suse@mreald.com:/home/suse/extensions/ /srv/www/htdocs/extensions/ -avz
(-p 表示端口,rsync 不会覆盖第二个内容 要是都有的话)
rsync -r -u -v --delete-before -e 'ssh -p 31415' /home/uploader/logistics_system/ test@mreald.com:/share/www/vhosts/make_up/
mkdir blank
rsync --delete-before -a -H -v --progress --stats blank/ aa/
touch mreald.txt
rsync --delete-before -a -H -v --progress --stats mreald.txt /aniya/usr.tar.gz
rsync IP:/home/*.jpg /share/www/ -avz --remove-sent-files
1.cp -rp dir1/* dir2/
同名不覆盖不提示:
yes no| cp -rp dir1/* dir2/
同名覆盖不提示:
\cp -rp dir1/* dir2/
2.rsync -avz dir1/ dir2/
or rsync -avz dir1/* dir2/
screen -S name (开启一个名为name 的后台)
^a + c/^a/n/p/0-9/d 常用快捷键
screen -ls (列出打开的虚拟后台 )
screen -r nameiptables
sudo vim /etc/sysconfig/iptables#portmapper
-A INPUT -m state --state NEW -m tcp -p tcp --dport 111 -j CCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 111 -j ACCEPT
filter 预设规则表,有INPUT、FORWARD 和OUTPUT 三个规则链
INPUT 进入
FORWARD 转发
OUTPUT 出去
ACCEPT 将封包放行
REJECT 拦阻该封包
DROP 丢弃封包不予处理
-A 在所选择的链(INPUT 等)末添加一条或更多规则
-D 删除一条
-E 修改
-p tcp、udp、icmp 0 相当于所有all !取反
-P 设置缺省策略(与所有链都不匹配强制使用此策略)
-s IP/掩码(IP/24) 主机名、网络名和清楚的IP 地址!取反
-j 目标跳转,立即决定包的命运的专用内建目标
-i 进入的(网络)接口[名称] eth0
-o 输出接口[名称]
-m 模块
--sport 源端口
--dport 目标端口
CLOSE_WAIT:表示被动关闭,需要从程序本身出发。就是在对方连接关闭之后,程序里没有检测到,或者程序压根就忘记了这个时候需要关闭连接,于是这个资源就一直被程序占着.
ESTABLISHED:表示正在通信常用alias
以下bash中别名设置我还并没有完全使用,也是个人觉得非常有用的(多了记起来也麻烦),所以收集在一起,习惯就好。
/etc/profile.d/alias.sh:
1
alias wl='ll | wc -l'
alias l='ls -l'
alias lh='ls -lh'
alias grep='grep -i --color' #用颜色标识,更醒目;忽略大小写
alias vi=vim
alias c='clear' # 快速清屏
alias p='pwd'
# 进入目录并列出文件,如 cdl ../conf.d/
cdl() { cd "$@" && pwd ; ls -alF; }
alias ..="cdl .."
alias ...="cd ../.." # 快速进入上上层目录
alias .3="cd ../../.."
alias cd..='cdl ..'
# alias cp="cp -iv" # interactive, verbose
alias rm="rm -i" # interactive
# alias mv="mv -iv" # interactive, verbose
alias psg='\ps aux | grep -v grep | grep --color' # 查看进程信息
alias hg='history|grep'
alias netp='netstat -tulanp' # 查看服务器端口连接信息
alias lvim="vim -c \"normal '0\"" # 编辑vim最近打开的文件
alias tf='tail -f ' # 快速查看文件末尾输出
# 自动在文件末尾加上 .bak-日期 来备份文件,如 bu nginx.conf
bak() { cp "$@" "$@.bak"-`date +%y%m%d`; echo "`date +%Y-%m-%d` backed up $PWD/$@"; }
# 级联创建目录并进入,如 mcd a/b/c
mcd() { mkdir -p $1 && cd $1 && pwd ; }
# 查看去掉#注释和空行的配置文件,如 nocomm /etc/squid/squid.conf
alias nocomm='grep -Ev '\''^(#|$)'\'''
# 快速根据进程号pid杀死进程,如 psid tomcat, 然后 kill9 两个tab键提示要kill的进程号
alias kill9='kill -9';
psid() {
[[ ! -n ${1} ]] && return; # bail if no argument
pro="[${1:0:1}]${1:1}"; # process-name –> [p]rocess-name (makes grep better)
ps axo pid,user,command | grep -v grep |grep -i --color ${pro}; # show matching processes
pids="$(ps axo pid,user,command | grep -v grep | grep -i ${pro} | awk '{print $1}')"; # get pids
complete -W "${pids}" kill9 # make a completion list for kk
}
# 解压所有归档文件工具
function extract {
if [ -z "$1" ]; then
# display usage if no parameters given
echo "Usage: extract <path/file_name>.<zip|rar|bz2|gz|tar|tbz2|tgz|Z|7z|xz|ex|tar.bz2|tar.gz|tar.xz>"
else
if [ -f $1 ] ; then
# NAME=${1%.*}
# mkdir $NAME && cd $NAME
case $1 in
*.tar.bz2) tar xvjf $1 ;;
*.tar.gz) tar xvzf $1 ;;
*.tar.xz) tar xvJf $1 ;;
*.lzma) unlzma $1 ;;
*.bz2) bunzip2 $1 ;;
*.rar) unrar x -ad $1 ;;
*.gz) gunzip $1 ;;
*.tar) tar xvf $1 ;;
*.tbz2) tar xvjf $1 ;;
*.tgz) tar xvzf $1 ;;
*.zip) unzip $1 ;;
*.Z) uncompress $1 ;;
*.7z) 7z x $1 ;;
*.xz) unxz $1 ;;
*.exe) cabextract $1 ;;
*) echo "extract: '$1' - unknown archive method" ;;
esac
else
echo "$1 - file does not exist"
fi
fi
}
# 其它你自己的命令
alias nginxreload='sudo /usr/local/nginx/sbin/nginx -s reload'
要去掉别名,请用unalias aliasname,或者临时执行不用别名,执行原始命令\alias 。
但是需要将ssh服务器上的代码映射到本地进行编辑。所以需要安装sshfs
username:ssh服务器的用户名
192.168.1.100:ssh服务器地址
path: android 源码地址
local_path:本地地址
(a) 查看/etc/gdm/目录下是否存在custom.conf文件,如果存在,则直接跳到下一步,如果不存在
AutomaticLoginEnable=true 这个修改为true
AutomaticLogin=root 这个修改为root
TimedLoginEnable=false
TimedLogin=root 这个修改为root
TimedLoginDelay=10
DefaultSession=gnome