Gängige Shell-Befehle

藏色散人
Freigeben: 2019-07-29 14:08:47
Original
12985 Leute haben es durchsucht

Gängige Shell-Befehle

下面为大家总结Linux shell的常用命令

前言

使用Linux shell是一些程序员每天的基本工作,但我们经常会忘记一些有用的shell命令和技巧。当然,命令我能记住,但我不敢说能记得如何用它执行某个特定任务。需要注意一点的是,有些用法需要在你的Linux系统里安装额外的软件。下面话不多说了,来看看详细的内容吧。

检查远程端口是否对bash开放:

echo >/dev/tcp/8.8.8.8/53 && echo "open"
Nach dem Login kopieren

让进程转入后台:

Ctrl + z
Nach dem Login kopieren

将进程转到前台:

fg
Nach dem Login kopieren

产生随机的十六进制数,其中n是字符数:

openssl rand -hex n
Nach dem Login kopieren

在当前shell里执行一个文件里的命令:

source /home/user/file.name
Nach dem Login kopieren

截取前5个字符:

${variable:0:5}
Nach dem Login kopieren

SSH debug 模式:

ssh -vvv user@ip_address
Nach dem Login kopieren

SSH with pem key:

ssh user@ip_address -i key.pem
Nach dem Login kopieren

用wget抓取完整的网站目录结构,存放到本地目录中:

wget -r --no-parent --reject "index.html*" http://hostname/ -P /home/user/dirs
Nach dem Login kopieren

一次创建多个目录:

mkdir -p /home/user/{test,test1,test2}
Nach dem Login kopieren

列出包括子进程的进程树:

ps axwef
Nach dem Login kopieren

创建 war 文件:

jar -cvf name.war file
Nach dem Login kopieren

测试硬盘写入速度:

dd if=/dev/zero of=/tmp/output.img bs=8k count=256k; rm -rf /tmp/output.img
Nach dem Login kopieren

测试硬盘读取速度:

hdparm -Tt /dev/sda
Nach dem Login kopieren

获取文本的md5 hash:

echo -n "text" | md5sum
Nach dem Login kopieren

检查xml格式:

xmllint --noout file.xml
Nach dem Login kopieren

将tar.gz提取到新目录里:

tar zxvf package.tar.gz -C new_dir
Nach dem Login kopieren

使用curl获取HTTP头信息:

curl -I http://www.example.com
Nach dem Login kopieren

修改文件或目录的时间戳(YYMMDDhhmm):

touch -t 0712250000 file
Nach dem Login kopieren

用wget命令执行ftp下载:

wget -m ftp://username:password@hostname
Nach dem Login kopieren

生成随机密码(例子里是16个字符长):

LANG=c < /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-16};echo;
Nach dem Login kopieren

快速备份一个文件:

cp some_file_name{,.bkp}
Nach dem Login kopieren

访问Windows共享目录:

smbclient -U "DOMAIN\user" //dc.domain.com/share/test/dir
Nach dem Login kopieren

执行历史记录里的命令(这里是第100行):

!100
Nach dem Login kopieren

解压:

unzip package_name.zip -d dir_name
Nach dem Login kopieren

输入多行文字(CTRL + d 退出):

cat > test.txt
Nach dem Login kopieren

创建空文件或清空一个现有文件:

\> test.txt
Nach dem Login kopieren

与Ubuntu NTP server同步时间:

ntpdate ntp.ubuntu.com
Nach dem Login kopieren

用netstat显示所有tcp4监听端口:

netstat -lnt4 | awk &#39;{print $4}&#39; | cut -f2 -d: | grep -o &#39;[0-9]*&#39;
Nach dem Login kopieren

qcow2镜像文件转换:

qemu-img convert -f qcow2 -O raw precise-server-cloudimg-amd64-disk1.img \precise-server-cloudimg-amd64-disk1.raw
Nach dem Login kopieren

重复运行文件,显示其输出(缺省是2秒一次):

watch ps -ef
Nach dem Login kopieren


所有用户列表:

getent passwd
Nach dem Login kopieren

Mount root in read/write mode:

mount -o remount,rw /
Nach dem Login kopieren

挂载一个目录(这是不能使用链接的情况):

mount --bind /source /destination
Nach dem Login kopieren

动态更新DNS server:

nsupdate < <EOF update add $HOST 86400 A $IP send EOF
Nach dem Login kopieren

递归grep所有目录:

grep -r "some_text" /path/to/dir
Nach dem Login kopieren

列出前10个最大的文件:

lsof / | awk &#39;{ if($7 > 1048576) print $7/1048576 "MB "$9 }&#39; | sort -n -u | tail
Nach dem Login kopieren

显示剩余内存(MB):

free -m | grep cache | awk &#39;/[0-9]/{ print $4" MB" }&#39;
Nach dem Login kopieren

打开Vim并跳到文件末:

vim + some_file_name
Nach dem Login kopieren

Git 克隆指定分支(master):

git clone git@github.com:name/app.git -b master
Nach dem Login kopieren

Git 切换到其它分支(develop):

git checkout develop
Nach dem Login kopieren

Git 删除分支(myfeature):

git branch -d myfeature
Nach dem Login kopieren

Git 删除远程分支

git push origin :branchName
Nach dem Login kopieren

Git 将新分支推送到远程服务器:

git push -u origin mynewfeature
Nach dem Login kopieren

打印历史记录中最后一次cat命令:

!cat:p
Nach dem Login kopieren

运行历史记录里最后一次cat命令:

!cat
Nach dem Login kopieren

找出/home/user下所有空子目录:

find /home/user -maxdepth 1 -type d -empty
Nach dem Login kopieren

获取test.txt文件中第50-60行内容:

< test.txt sed -n &#39;50,60p&#39;
Nach dem Login kopieren

运行最后一个命令(如果最后一个命令是mkdir /root/test, 下面将会运行: sudo mkdir /root/test):

sudo !!
Nach dem Login kopieren

创建临时RAM文件系统 – ramdisk (先创建/tmpram目录):

mount -t tmpfs tmpfs /tmpram -o size=512m
Nach dem Login kopieren

Grep whole words:

grep -w "name" test.txt
Nach dem Login kopieren

在需要提升权限的情况下往一个文件里追加文本:

echo "some text" | sudo tee -a /path/file
Nach dem Login kopieren

列出所有kill signal参数:

kill -l
Nach dem Login kopieren

在bash历史记录里禁止记录最后一次会话:

kill -9 $$
Nach dem Login kopieren

扫描网络寻找开放的端口:

nmap -p 8081 172.20.0.0/16
Nach dem Login kopieren

设置git email:

git config --global user.email "me@example.com"
Nach dem Login kopieren

To sync with master if you have unpublished commits:

git pull --rebase origin master
Nach dem Login kopieren

将所有文件名中含有”txt”的文件移入/home/user目录:

find -iname "*txt*" -exec mv -v {} /home/user \;
Nach dem Login kopieren

将文件按行并列显示:

paste test.txt test1.txt
Nach dem Login kopieren

shell里的进度条:

pv data.log
Nach dem Login kopieren

使用netcat将数据发送到Graphite server:

echo "hosts.sampleHost 10 `date +%s`" | nc 192.168.200.2 3000
Nach dem Login kopieren

将tabs转换成空格:

expand test.txt > test1.txt
Nach dem Login kopieren

Skip bash history:

< space >cmd
Nach dem Login kopieren

去之前的工作目录:

cd -
Nach dem Login kopieren

拆分大体积的tar.gz文件(每个100MB),然后合并回去:

split –b 100m /path/to/large/archive /path/to/output/files cat files* > archive
Nach dem Login kopieren

使用curl获取HTTP status code:

curl -sL -w "%{http_code}\\n" www.example.com -o /dev/null
Nach dem Login kopieren

设置root密码,强化MySQL安全安装:

/usr/bin/mysql_secure_installation
Nach dem Login kopieren

当Ctrl + c不好使时:

Ctrl + \
Nach dem Login kopieren

获取文件owner:

stat -c %U file.txt
Nach dem Login kopieren

block设备列表:

lsblk -f
Nach dem Login kopieren

找出文件名结尾有空格的文件:

find . -type f -exec egrep -l " +$" {} \;
Nach dem Login kopieren

找出文件名有tab缩进符的文件

find . -type f -exec egrep -l $&#39;\t&#39; {} \;
Nach dem Login kopieren

用”=”打印出横线:全选复制放进笔记

printf &#39;%100s\n&#39; | tr &#39; &#39; =
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonGängige Shell-Befehle. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage