首页 运维 linux运维 shell常用命令

shell常用命令

Jun 29, 2019 am 10:09 AM

shell常用命令

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

前言

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

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

echo >/dev/tcp/8.8.8.8/53 && echo "open"
登录后复制

让进程转入后台:

Ctrl + z
登录后复制

将进程转到前台:

fg
登录后复制

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

openssl rand -hex n
登录后复制

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

source /home/user/file.name
登录后复制

截取前5个字符:

${variable:0:5}
登录后复制

SSH debug 模式:

ssh -vvv user@ip_address
登录后复制

SSH with pem key:

ssh user@ip_address -i key.pem
登录后复制

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

wget -r --no-parent --reject "index.html*" http://hostname/ -P /home/user/dirs
登录后复制

一次创建多个目录:

mkdir -p /home/user/{test,test1,test2}
登录后复制

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

ps axwef
登录后复制

创建 war 文件:

jar -cvf name.war file
登录后复制

测试硬盘写入速度:

dd if=/dev/zero of=/tmp/output.img bs=8k count=256k; rm -rf /tmp/output.img
登录后复制

测试硬盘读取速度:

hdparm -Tt /dev/sda
登录后复制

获取文本的md5 hash:

echo -n "text" | md5sum
登录后复制

检查xml格式:

xmllint --noout file.xml
登录后复制

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

tar zxvf package.tar.gz -C new_dir
登录后复制

使用curl获取HTTP头信息:

curl -I http://www.example.com
登录后复制

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

touch -t 0712250000 file
登录后复制

用wget命令执行ftp下载:

wget -m ftp://username:password@hostname
登录后复制

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

LANG=c < /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-16};echo;
登录后复制

快速备份一个文件:

cp some_file_name{,.bkp}
登录后复制

访问Windows共享目录:

smbclient -U "DOMAIN\user" //dc.domain.com/share/test/dir
登录后复制

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

!100
登录后复制

解压:

unzip package_name.zip -d dir_name
登录后复制

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

cat > test.txt
登录后复制

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

\> test.txt
登录后复制

与Ubuntu NTP server同步时间:

ntpdate ntp.ubuntu.com
登录后复制

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

netstat -lnt4 | awk &#39;{print $4}&#39; | cut -f2 -d: | grep -o &#39;[0-9]*&#39;
登录后复制

qcow2镜像文件转换:

qemu-img convert -f qcow2 -O raw precise-server-cloudimg-amd64-disk1.img \precise-server-cloudimg-amd64-disk1.raw
登录后复制

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

watch ps -ef
登录后复制


所有用户列表:

getent passwd
登录后复制

Mount root in read/write mode:

mount -o remount,rw /
登录后复制

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

mount --bind /source /destination
登录后复制

动态更新DNS server:

nsupdate < <EOF update add $HOST 86400 A $IP send EOF
登录后复制

递归grep所有目录:

grep -r "some_text" /path/to/dir
登录后复制

列出前10个最大的文件:

lsof / | awk &#39;{ if($7 > 1048576) print $7/1048576 "MB "$9 }&#39; | sort -n -u | tail
登录后复制

显示剩余内存(MB):

free -m | grep cache | awk &#39;/[0-9]/{ print $4" MB" }&#39;
登录后复制

打开Vim并跳到文件末:

vim + some_file_name
登录后复制

Git 克隆指定分支(master):

git clone git@github.com:name/app.git -b master
登录后复制

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

git checkout develop
登录后复制

Git 删除分支(myfeature):

git branch -d myfeature
登录后复制

Git 删除远程分支

git push origin :branchName
登录后复制

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

git push -u origin mynewfeature
登录后复制

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

!cat:p
登录后复制

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

!cat
登录后复制

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

find /home/user -maxdepth 1 -type d -empty
登录后复制

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

< test.txt sed -n &#39;50,60p&#39;
登录后复制

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

sudo !!
登录后复制

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

mount -t tmpfs tmpfs /tmpram -o size=512m
登录后复制

Grep whole words:

grep -w "name" test.txt
登录后复制

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

echo "some text" | sudo tee -a /path/file
登录后复制

列出所有kill signal参数:

kill -l
登录后复制

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

kill -9 $$
登录后复制

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

nmap -p 8081 172.20.0.0/16
登录后复制

设置git email:

git config --global user.email "me@example.com"
登录后复制

To sync with master if you have unpublished commits:

git pull --rebase origin master
登录后复制

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

find -iname "*txt*" -exec mv -v {} /home/user \;
登录后复制

将文件按行并列显示:

paste test.txt test1.txt
登录后复制

shell里的进度条:

pv data.log
登录后复制

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

echo "hosts.sampleHost 10 `date +%s`" | nc 192.168.200.2 3000
登录后复制

将tabs转换成空格:

expand test.txt > test1.txt
登录后复制

Skip bash history:

< space >cmd
登录后复制

去之前的工作目录:

cd -
登录后复制

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

split –b 100m /path/to/large/archive /path/to/output/files cat files* > archive
登录后复制

使用curl获取HTTP status code:

curl -sL -w "%{http_code}\\n" www.example.com -o /dev/null
登录后复制

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

/usr/bin/mysql_secure_installation
登录后复制

当Ctrl + c不好使时:

Ctrl + \
登录后复制

获取文件owner:

stat -c %U file.txt
登录后复制

block设备列表:

lsblk -f
登录后复制

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

find . -type f -exec egrep -l " +$" {} \;
登录后复制

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

find . -type f -exec egrep -l $&#39;\t&#39; {} \;
登录后复制

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

printf &#39;%100s\n&#39; | tr &#39; &#39; =
登录后复制

以上是shell常用命令的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1663
14
CakePHP 教程
1420
52
Laravel 教程
1313
25
PHP教程
1266
29
C# 教程
1238
24
Debian上Tigervnc的日志在哪查看 Debian上Tigervnc的日志在哪查看 Apr 13, 2025 am 07:24 AM

在Debian系统中,Tigervnc服务器的日志文件通常存储在用户的home目录下的.vnc文件夹内。如果您以特定用户身份运行Tigervnc,那么日志文件名通常类似于xf:1.log,其中xf:1代表用户名。要查看这些日志,您可以使用以下命令:cat~/.vnc/xf:1.log或者,您可以使用文本编辑器打开日志文件:nano~/.vnc/xf:1.log请注意,访问和查看日志文件可能需要root权限,这取决于系统的安全设置。

debian readdir如何与其他工具集成 debian readdir如何与其他工具集成 Apr 13, 2025 am 09:42 AM

Debian系统中的readdir函数是用于读取目录内容的系统调用,常用于C语言编程。本文将介绍如何将readdir与其他工具集成,以增强其功能。方法一:C语言程序与管道结合首先,编写一个C程序调用readdir函数并输出结果:#include#include#includeintmain(intargc,char*argv[]){DIR*dir;structdirent*entry;if(argc!=2){

Linux体系结构:揭示5个基本组件 Linux体系结构:揭示5个基本组件 Apr 20, 2025 am 12:04 AM

Linux系统的五个基本组件是:1.内核,2.系统库,3.系统实用程序,4.图形用户界面,5.应用程序。内核管理硬件资源,系统库提供预编译函数,系统实用程序用于系统管理,GUI提供可视化交互,应用程序利用这些组件实现功能。

如何解读Debian Sniffer的输出结果 如何解读Debian Sniffer的输出结果 Apr 12, 2025 pm 11:00 PM

DebianSniffer是一个网络嗅探工具,用于捕获和分析网络数据包时间戳(Timestamp):显示数据包捕获的时间,通常以秒为单位。源IP地址(SourceIP):发送数据包的设备的网络地址。目标IP地址(DestinationIP):接收数据包的设备的网络地址。源端口(SourcePort):发送数据包的设备使用的端口号。目标端口(Destinatio

如何在Debian上监控Nginx SSL性能 如何在Debian上监控Nginx SSL性能 Apr 12, 2025 pm 10:18 PM

本文介绍如何在Debian系统上有效监控Nginx服务器的SSL性能。我们将使用NginxExporter将Nginx状态数据导出到Prometheus,再通过Grafana进行可视化展示。第一步:配置Nginx首先,我们需要在Nginx配置文件中启用stub_status模块来获取Nginx的状态信息。在你的Nginx配置文件(通常位于/etc/nginx/nginx.conf或其包含文件中)中添加以下代码段:location/nginx_status{stub_status

Debian系统如何安装PHPStorm Debian系统如何安装PHPStorm Apr 13, 2025 am 06:03 AM

在Debian系统上安装PHPStorm,轻松搞定你的PHP开发环境!以下步骤将引导您完成整个安装过程。安装步骤:下载PHPStorm:访问JetBrains官网,下载PHPStorm最新版本。解压安装包:使用wget或curl下载后,解压到指定目录(例如/opt)。命令示例:wgethttps://download.jetbrains.com/phpstorm/phpstorm-2024.3.5.tar.gztar-xzfphpstorm-2024.3.5.tar.gz

Debian如何回收不再使用的包 Debian如何回收不再使用的包 Apr 13, 2025 am 08:51 AM

本文介绍如何在Debian系统中清理无用软件包,释放磁盘空间。第一步:更新软件包列表确保你的软件包列表是最新的:sudoaptupdate第二步:查看已安装的软件包使用以下命令查看所有已安装的软件包:dpkg--get-selections|grep-vdeinstall第三步:识别冗余软件包利用aptitude工具查找不再需要的软件包。aptitude会提供建议,帮助你安全地删除软件包:sudoaptitudesearch'~pimportant'此命令列出标记

关键Linux操作:初学者指南 关键Linux操作:初学者指南 Apr 09, 2025 pm 04:09 PM

Linux初学者应掌握文件管理、用户管理和网络配置等基本操作。1)文件管理:使用mkdir、touch、ls、rm、mv、cp命令。2)用户管理:使用useradd、passwd、userdel、usermod命令。3)网络配置:使用ifconfig、echo、ufw命令。这些操作是Linux系统管理的基础,熟练掌握它们可以有效管理系统。

See all articles