Common shell commands

Jun 29, 2019 am 10:09 AM

Common shell commands

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

前言

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

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

echo >/dev/tcp/8.8.8.8/53 && echo "open"
Copy after login

让进程转入后台:

Ctrl + z
Copy after login

将进程转到前台:

fg
Copy after login

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

openssl rand -hex n
Copy after login

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

source /home/user/file.name
Copy after login

截取前5个字符:

${variable:0:5}
Copy after login

SSH debug 模式:

ssh -vvv user@ip_address
Copy after login

SSH with pem key:

ssh user@ip_address -i key.pem
Copy after login

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

wget -r --no-parent --reject "index.html*" http://hostname/ -P /home/user/dirs
Copy after login

一次创建多个目录:

mkdir -p /home/user/{test,test1,test2}
Copy after login

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

ps axwef
Copy after login

创建 war 文件:

jar -cvf name.war file
Copy after login

测试硬盘写入速度:

dd if=/dev/zero of=/tmp/output.img bs=8k count=256k; rm -rf /tmp/output.img
Copy after login

测试硬盘读取速度:

hdparm -Tt /dev/sda
Copy after login

获取文本的md5 hash:

echo -n "text" | md5sum
Copy after login

检查xml格式:

xmllint --noout file.xml
Copy after login

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

tar zxvf package.tar.gz -C new_dir
Copy after login

使用curl获取HTTP头信息:

curl -I http://www.example.com
Copy after login

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

touch -t 0712250000 file
Copy after login

用wget命令执行ftp下载:

wget -m ftp://username:password@hostname
Copy after login

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

LANG=c < /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-16};echo;
Copy after login

快速备份一个文件:

cp some_file_name{,.bkp}
Copy after login

访问Windows共享目录:

smbclient -U "DOMAIN\user" //dc.domain.com/share/test/dir
Copy after login

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

!100
Copy after login

解压:

unzip package_name.zip -d dir_name
Copy after login

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

cat > test.txt
Copy after login

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

\> test.txt
Copy after login

与Ubuntu NTP server同步时间:

ntpdate ntp.ubuntu.com
Copy after login

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

netstat -lnt4 | awk &#39;{print $4}&#39; | cut -f2 -d: | grep -o &#39;[0-9]*&#39;
Copy after login

qcow2镜像文件转换:

qemu-img convert -f qcow2 -O raw precise-server-cloudimg-amd64-disk1.img \precise-server-cloudimg-amd64-disk1.raw
Copy after login

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

watch ps -ef
Copy after login


所有用户列表:

getent passwd
Copy after login

Mount root in read/write mode:

mount -o remount,rw /
Copy after login

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

mount --bind /source /destination
Copy after login

动态更新DNS server:

nsupdate < <EOF update add $HOST 86400 A $IP send EOF
Copy after login

递归grep所有目录:

grep -r "some_text" /path/to/dir
Copy after login

列出前10个最大的文件:

lsof / | awk &#39;{ if($7 > 1048576) print $7/1048576 "MB "$9 }&#39; | sort -n -u | tail
Copy after login

显示剩余内存(MB):

free -m | grep cache | awk &#39;/[0-9]/{ print $4" MB" }&#39;
Copy after login

打开Vim并跳到文件末:

vim + some_file_name
Copy after login

Git 克隆指定分支(master):

git clone git@github.com:name/app.git -b master
Copy after login

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

git checkout develop
Copy after login

Git 删除分支(myfeature):

git branch -d myfeature
Copy after login

Git 删除远程分支

git push origin :branchName
Copy after login

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

git push -u origin mynewfeature
Copy after login

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

!cat:p
Copy after login

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

!cat
Copy after login

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

find /home/user -maxdepth 1 -type d -empty
Copy after login

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

< test.txt sed -n &#39;50,60p&#39;
Copy after login

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

sudo !!
Copy after login

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

mount -t tmpfs tmpfs /tmpram -o size=512m
Copy after login

Grep whole words:

grep -w "name" test.txt
Copy after login

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

echo "some text" | sudo tee -a /path/file
Copy after login

列出所有kill signal参数:

kill -l
Copy after login

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

kill -9 $$
Copy after login

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

nmap -p 8081 172.20.0.0/16
Copy after login

设置git email:

git config --global user.email "me@example.com"
Copy after login

To sync with master if you have unpublished commits:

git pull --rebase origin master
Copy after login

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

find -iname "*txt*" -exec mv -v {} /home/user \;
Copy after login

将文件按行并列显示:

paste test.txt test1.txt
Copy after login

shell里的进度条:

pv data.log
Copy after login

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

echo "hosts.sampleHost 10 `date +%s`" | nc 192.168.200.2 3000
Copy after login

将tabs转换成空格:

expand test.txt > test1.txt
Copy after login

Skip bash history:

< space >cmd
Copy after login

去之前的工作目录:

cd -
Copy after login

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

split –b 100m /path/to/large/archive /path/to/output/files cat files* > archive
Copy after login

使用curl获取HTTP status code:

curl -sL -w "%{http_code}\\n" www.example.com -o /dev/null
Copy after login

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

/usr/bin/mysql_secure_installation
Copy after login

当Ctrl + c不好使时:

Ctrl + \
Copy after login

获取文件owner:

stat -c %U file.txt
Copy after login

block设备列表:

lsblk -f
Copy after login

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

find . -type f -exec egrep -l " +$" {} \;
Copy after login

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

find . -type f -exec egrep -l $&#39;\t&#39; {} \;
Copy after login

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

printf &#39;%100s\n&#39; | tr &#39; &#39; =
Copy after login

The above is the detailed content of Common shell commands. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: How To Unlock Everything In MyRise
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How do I use regular expressions (regex) in Linux for pattern matching? How do I use regular expressions (regex) in Linux for pattern matching? Mar 17, 2025 pm 05:25 PM

The article explains how to use regular expressions (regex) in Linux for pattern matching, file searching, and text manipulation, detailing syntax, commands, and tools like grep, sed, and awk.

How do I monitor system performance in Linux using tools like top, htop, and vmstat? How do I monitor system performance in Linux using tools like top, htop, and vmstat? Mar 17, 2025 pm 05:28 PM

The article discusses using top, htop, and vmstat for monitoring Linux system performance, detailing their unique features and customization options for effective system management.

How do I implement two-factor authentication (2FA) for SSH in Linux? How do I implement two-factor authentication (2FA) for SSH in Linux? Mar 17, 2025 pm 05:31 PM

The article provides a guide on setting up two-factor authentication (2FA) for SSH on Linux using Google Authenticator, detailing installation, configuration, and troubleshooting steps. It highlights the security benefits of 2FA, such as enhanced sec

How do I manage software packages in Linux using package managers (apt, yum, dnf)? How do I manage software packages in Linux using package managers (apt, yum, dnf)? Mar 17, 2025 pm 05:26 PM

Article discusses managing software packages in Linux using apt, yum, and dnf, covering installation, updates, and removals. It compares their functionalities and suitability for different distributions.

How do I use sudo to grant elevated privileges to users in Linux? How do I use sudo to grant elevated privileges to users in Linux? Mar 17, 2025 pm 05:32 PM

The article explains how to manage sudo privileges in Linux, including granting, revoking, and best practices for security. Key focus is on editing /etc/sudoers safely and limiting access.Character count: 159

How do I build and customize a Linux distribution? How do I build and customize a Linux distribution? Mar 14, 2025 pm 04:45 PM

The article details the process of building and customizing a Linux distribution, covering choosing a base system, using build tools like LFS and Debian-based systems, customizing packages, and modifying the kernel. It also discusses managing softwar

How do I configure networking in Linux (static IP, DHCP, DNS)? How do I configure networking in Linux (static IP, DHCP, DNS)? Mar 14, 2025 pm 04:55 PM

The article provides a guide on configuring Linux networking, focusing on setting up static IP, DHCP, and DNS configurations. It details steps for editing configuration files and restarting network services to apply changes.

What are the most popular Linux distributions (Ubuntu, Debian, Fedora, CentOS)? What are the most popular Linux distributions (Ubuntu, Debian, Fedora, CentOS)? Mar 14, 2025 pm 04:50 PM

The article discusses popular Linux distributions: Ubuntu, Debian, Fedora, and CentOS, focusing on their unique features and suitability for different users. It compares Ubuntu and Debian's release cycles, software availability, and support, and high

See all articles