Normal view

There are new articles available, click to refresh the page.
Before yesterdayMain stream

体验豆包手机助手,它把我的手机「变薄」了

By: 李超凡
1 December 2025 at 13:37

双十一刚过不久,看着花呗账单陷入沉思的同时,我更想吐槽那几天的「非人」遭遇。为了给家里添置点大件,我在淘宝、京东、拼多多之间反复横跳,光是比价就把后台切到了手抽筋。

作为每年要体验大量新产品的科技编辑,我一度陷入沉思:手机拍摄越来越强,屏幕越来越大,处理器越来越快,为什么我还是得像个保姆一样伺候这些 App?

手机里的 App 越多,我的生活反而越破碎。

那你可能就要问了,都 2025 年了,满大街都在吹 AI ,难道就不能帮我把这些活儿干了?该说不说,现在的手机 AI 助手,大多只能定个闹钟、查个天气,真遇到复杂事儿,它比你还懵。

哪怕强如苹果,Apple Intelligence 国行版本至今也已经跳票好几次,我的 iPhone 17 Pro 到底啥时候能用上还是未知数。

没想到,字节跳动倒是先出手了。12 月 1 日,字节正式发布了豆包手机助手技术预览版。

这和我们常用的豆包 App 还不一样,它直接跟手机厂商在操作系统层面进行了深度融合,直接成为 OS 的一部分。

现阶段,豆包已经跟中兴推出了豆包助手预览版,也开放了购买,第三方开发者也能将自己的服务和应用集成至豆包手机助手。

不整虚的,我们直接按照用评测 iOS 的强度来体验一下豆包手机助手。

手机终于可以当我秘书了

咱们先来点让打工人头疼的场景小试牛刀。

以前要是想把飞书里的文档转成不同格式的文件发给领导,或者从微信几百条聊天记录里翻个文件发给同事,事情看着不难,但这些琐事往往会在你有其他工作的同时要处理。

我直接对着豆包手机助手说:「从微信聊天记录里找刚才那个文件发给xx,再把飞书那个季度总结文档转成 PDF 发到企业微信给xx。」

这时它就会自动调用「操作手机」功能,反应速度比我想象中快。它没有让我反复切换 App,也没有让我确认一堆选项,直接在后台运行,我接着忙其他事,不一会它就成功完成任务。

我甚至还能用来搞定更私人的事。比如我让它「帮我把微信收藏夹里找到我的护照照片,然后把 ID 号码发到文件传输助手。」

这也是旅游出差非常高频的需求,而且要知道我的收藏夹还有家人的护照照片,我也没有分类标注,豆包手机助手还能准确识别。

我再上点难度,让它帮我把某个微信群的的所有文件打包下载,整理分类后打包发送到企业微信给同事。

这是我最讨厌的工作场景之一,中间涉及跨应用操作、手动下载、逻辑分类、打包压缩等一系列复杂动作,豆包手机助手会怎么做?

看着屏幕上自动流转的操作,我久违地喊出了 Amazing:

1. 它精准定位到了微信群,识别出里面的文件,并开始自动批量下载。
2. 它没有把文件一锅端,而是像个真人秘书一样,自动识别了文件类型。它把 PPT 归一类,Excel 表格归一类,图片归一类,甚至还根据文件名里的关键词进行了二级分类。
3. 打包与发送:分类完成后,它自动生成了一个 ZIP 压缩包,命名清晰,然后无缝跳转到企业微信,找到指定的同事,点击发送。

▲ 豆包手机助手分类发送的文件.

我只需要动动嘴,它就帮我完成了以往需要手动操作半小时、还要在两个 App 之间反复横跳的繁琐工作。AI 要做好这些就跟真的得力秘书差不多了

豆包手机助手支持几种不同的唤出方式,但其中最自然、最让我感到「舒适」的,是「靠近直说」。

操作很简单:拿起手机直接讲,豆包手机助手就会自动执行,或者也可以按住 AI 健呼出。这个交互方式就像微信语音一样自然,不用对着空气喊出略显尴尬的唤醒词,几乎零学习成本。

如果你正忙得腾不出手,豆包还支持用智能耳机 Ola Friend 直接语音唤醒,在那些「手忙脚乱」的时刻特别好用。

比如周末做饭时发现没酱油了,直接对着耳机说「豆包,我做菜没酱油了,帮我上美团买两瓶」;又或者上班路上堵车,让豆包帮忙调整会议时间并通知对方;再或者骑车赴约时,让豆包直接回复朋友的微信消息。

这些场景的共同点是:双手被占用、不方便掏手机,但事情需要立即处理。豆包的语音操作让这些原本要「等一下再说」的琐事,都能即时解决,真正做到了动口不动手。

生活这些大小事,终于有手机 AI 接盘了

下面,我给它上点真正的强度。这也是咱们开头提到的那个痛点:

「我想买华为 Mate 80,帮我去淘宝、京东、拼多多比一下价格,要把所有能用的优惠券都算上,告诉我哪个平台最便宜,并把最便宜的那个加入购物车。」

说实话,问完这句话我都觉得自己有点欠揍。这不仅涉及三个 App 的跳转,还得识别优惠券规则,还得计算,还得加购。

像这种难度,豆包手机助手会调用「复杂任务」模式来进行手机操作。结果豆包一轮比价操作后,最后选了拼多多百亿补贴后的价格,并帮我加入购物车。

咱平时在小红书上收藏了一堆乱七八糟的攻略,真要用的时候还得自己整理,这种信息碎片化的焦虑,相信大家都不陌生。我给豆包手机助手再出了个难题:

这周末跟朋友约饭,帮我从小红书里面收藏的广州的餐厅里面挑一家,然后要拍照好看,人均在200 以内,最好是粤菜。

它不仅把我的收藏内容分类整理好了,还自动去掉了重复和过时的信息。这一套操作下来,我是真服了。它不是在简单的搜索,它是在理解我的生活流。这种将杂乱信息结构化的能力,也是 AI 功能对于用户最大的价值之一。

帮我看看闲鱼、转转和拍拍严选上,二手的任天堂 Switch OLED 版(白色,99 新)大概都卖多少钱?综合对比一下,帮我定一个容易出手但又不亏的价格,然后帮我写一段吸引人的文案,准备挂到闲鱼上去。

它会先把任务拆分成各种子任务,不会像无头苍蝇一样乱撞。然后在执行任务的过程中,把任务进一步细分为各种关键词,在各种电商平台进行地毯式搜索。

查价格、看行情、对比成色,豆包三个平台来回横跳,比人类自己切换 App 还麻溜。

由于我提出的任务非常繁琐,豆包用时 8 分钟左右,乍一看好像有点慢?但仔细想想,这个时间和人类自己手动查相差无几了,甚至可能还更快。而在给出的文案上,经典的「可小刀,但不接受大砍」也可以说是原汁原味,

我想入坑明星丁禹兮,帮我在豆瓣、微博、贴吧、知乎等等平台查查他有没有黑历史:比如查查他有没有糊弄粉丝、人设崩塌、私生活混乱、欺骗消费的黑料,别让我入错股。

明星塌房是常有的事,前一秒还是顶流,后一秒就变成了赛博案底,所以在追星之前,我的建议是,还是得对明星做一个背调。而这种需要跨平台、翻历史记录、筛选关键信息的任务,就够我头晕眼花的了。

交给豆包手机助手后,从豆瓣的长篇八卦帖、微博的蛛丝马迹、贴吧的档案、知乎的理性分析,但凡有点风吹草动,它都能给你扒拉出来。

这种全平台背调能力,说实话比私家侦探还专业。追星有风险,入股需谨慎,但有了它,应该能帮我规避掉一定程度的塌房风险。

豆包豆包,我妈逼我相亲,你帮我给相亲对象小黄打微信电话,如果她没接电话,你需要用文字帮我高情商推掉这次相亲,理由要得体但坚决。

最近朋友向我求助,不想去安排的相亲,但又不好意思直说;想推掉,但情商低的我又怕伤人面子;想找理由,但又怕编得太假被看穿。这时候,让 AI 来当这个「背锅侠」,属实是个妙招。

豆包接到任务后,先是帮我拨通了小黄的微信电话。相亲对象可能也有事在忙,拒绝接听,于是豆包立刻按照我的要求切换到 Plan B:发文字消息。

从回复来看,这情商水平,其实已经比我这个社恐本人高出三个段位。而且最关键的是,这段话既坚决(明确表示不想继续),又得体(没有让对方难堪),还平衡了拒绝和礼貌这两个矛盾点。

这还没完。豆包手机助手的全局记忆才是我觉得未来对手机系统交互影响最大的能力。

「把小红书收藏夹里母婴内容,整理成孕晚期攻略。」

甚至我以前提问过孕期食谱也收藏过类似内容,这次再问餐饮推荐时,它就会在回答时给出提示:「这家店有孕妇不适合的食材哦。」

不同 App 里提到的同类内容,在它这里自动关联了。你不需要每次都重复你的偏好,它默默把你的习惯记在了小本本上,比你自己还了解你自己。这种润物细无声的体贴,才是智能的更高境界。

可以说,以前你需要录音笔+笔记本+日历 App+待办清单四件套才能搞定的事,现在一个 AI 快捷键全解决了。

至于大家关心的隐私问题?倒也不必太担心,一方面这些记忆的数据会存储在本地,另一方面,毕竟开关始终掌握在你手里,想记就记,不想记就关,自由得很。

告别 P 图 App,「基础功能」变得不基础

你以为基础功能就是平平无奇的识个图、P 个照?错了,相反,豆包手机助手做出了旗舰机都不一定有的体验。

随手丢了张罗永浩的照片问它:「这是谁?顺便起个标题。」豆包搜索验证后给出答案:《罗与罗:双份的「彪悍」》。这命名水平,既有梗又点题,属实可以。

拍了张路边小摊的招牌照片,上面赫然写着「腚粉肠」几个大字。豆包秒速识别出来:小摊贩把「淀粉肠」写成了「腚粉肠」。我就说这肠怎么吃着吃着还挺有味道的。(doge)

看完识别能力,再来看看豆包的 P 图本事。

之前在抖音爆火的发丝发光、三宫格风格 P 图,现在都被集成到了手机里——主打一个「AI P 图自由」,不用下载一堆 App,不用开会员,直接在相册里就能搞定。

又比如我随手拍了张家里猫主子的照片,然后让豆包给它整个漫画风。很快,一张猫猫表情包就出炉了,画风也真不差,还能根据表情自动配文案「震惊」。这理解力,还挺有网感的。

马斯克说的「未来手机」,豆包已经把雏形做出来了

多年前 iPhone 用多点触控(Multi-Touch)把物理键盘成为过去式,智能手机成为新一代计算中心。

现在,豆包手机助手也本质也在尝试做同一件事:让手机交互更加自然、直观和高效。

体验完之后,我最大的感受是:豆包手机助手不仅仅是一个 App,它更像是一个覆盖在所有 App 之上的「智能图层」。

它带给我最直观的感受是,手机变「薄」了。

虽然现在手机机身越做越薄。但同时手机也越来越臃肿:你需要点开一个个 App,像钻井一样潜入深层菜单,去翻找功能、去切换界面。

而现在,豆包手机助手把所有 App 的能力都「拍扁」了,平铺在你面前。

你不再需要面对复杂的 UI 界面,只需要面对结果。

早在 2008 年,微软首席 UI 设计总监 August de los Reye 曾预言, GUI (图形界面)未来演进的方向就是 NUI自然用户界面 。

人机交互领域的先驱 Bill Buxton 也曾在一篇论文中列举了一些 NUI 应该遵循的原则,其中有一条:

简单性高于一切:复杂性是自然用户界面的敌人。每个交互都应该是不言自明的,不需要说明手册。

这种自然用户界面的交互,我想已经在豆包手机助手上开始体现了。

无论是叫车、订餐还是查攻略,它像个极其老练的管家,帮你屏蔽了底层那些繁琐的操作逻辑,只把你要的「结果」呈上来。

过去十年,我们的注意力被手机瓜分在无数个 App 的孤岛里。

而现在,你可以重新把所有的服务、所有的信息,全部收拢到了「你的意图」这一个入口之下。

马斯克说未来的手机不需要 App,其实他是在说:未来的交互,不需要看到过程,只需要结果。

我也相信,今天这种堆满图标的手机形态会有一天被淘汰。

那在 AI 和操作系统深度融合后,到底会给我们带来什么更好的体验?当豆包手机助手之类的 AI 和手机厂商联手后,估计会迸发出更多意想不到的进化。

或许就在不远的将来,我们不再需要低头戳戳点点,只需一个眼神或一句轻语,就能调动全世界的信息为你服务。

那将是我们这一代人亲历的,再一次「重新定义人机交互」的时刻。

#欢迎关注爱范儿官方微信公众号:爱范儿(微信号:ifanr),更多精彩内容第一时间为您奉上。

爱范儿 | 原文链接 · 查看评论 · 新浪微博


Linux Command Line Reference for Common Operations (2)

By: Onlyone
13 December 2011 at 12:54

My previous reference for practical Linux commands was surprisingly popular
with over 3.5 million hits in nearly 5 years. So I've decided to start compiling
another list of somewhat more involved/esoteric commands.
Examples marked with • are valid/safe to paste without modification into a terminal, so
you may want to keep a terminal window open while reading this so you can cut & paste.
CommandDescription
grep . /proc/sys/net/ipv4/*List the contents of flag files
set | grep $USERSearch current environment
tr '\0' '\n' < /proc/$$/environDisplay the startup environment for any process
echo $PATH | tr : '\n'Display the $PATH one per line
kill -0 $$ && echo process exists and can accept signalsCheck for the existence of a process (pid)
find /etc -readable | xargs less -K -p'*ntp' -j $((${LINES:-25}/2))Search paths and data with full context. Use n to iterate
Low impact admin
#apt-get install "package" -o Acquire::http::Dl-Limit=42 \
-o Acquire::Queue-mode=access
Rate limit apt-get to 42KB/s
 echo 'wget url' | at 01:00Download url at 1AM to current dir
#apache2ctl configtest && apache2ctl gracefulRestart apache if config is OK
nice openssl speed sha1Run a low priority command (openssl benchmark)
chrt -i 0 openssl speed sha1Run a low priority command (more effective than nice)
renice 19 -p $$; ionice -c3 -p $$Make shell (script) low priority. Use for non interactive tasks
Interactive monitoring
watch -t -n1 uptimeClock with system load
htop -d 5Better top (scrollable, tree view, lsof/strace integration, ...)
iotopWhat's doing I/O
#watch -d -n30 "nice ps_mem.py | tail -n $((${LINES:-12}-2))"What's using RAM
#iftopWhat's using the network. See also iptraf
#mtr www.pixelbeat.orgping and traceroute combined
Useful utilities
pv < /dev/zero > /dev/nullProgress Viewer for data copying from files and pipes
wkhtml2pdf http://.../linux_commands.html linux_commands.pdfMake a pdf of a web page
timeout 1 sleep 3run a command with bounded time. See also timeout
Networking
python -m SimpleHTTPServerServe current directory tree at http://$HOSTNAME:8000/
openssl s_client -connect www.google.com:443 </dev/null 2>&0 |
openssl x509 -dates -noout
Display the date range for a site's certs
curl -I www.pixelbeat.orgDisplay the server headers for a web site
#lsof -i tcp:80What's using port 80
#httpd -SDisplay a list of apache virtual hosts
vim scp://user@remote//path/to/fileEdit remote file using local vim. Good for high latency links
curl -s http://www.pixelbeat.org/pixelbeat.asc | gpg --importImport a gpg key from the web
tc qdisc add dev lo root handle 1:0 netem delay 20msecAdd 20ms latency to loopback device (for testing)
tc qdisc del dev lo rootRemove latency added above
Notification
echo "DISPLAY=$DISPLAY xmessage cooker" | at "NOW +30min"Popup reminder
notify-send "subject" "message"Display a gnome popup notification
 echo "mail -s 'go home' P@draigBrady.com < /dev/null" | at 17:30Email reminder
 uuencode file name | mail -s subject P@draigBrady.comSend a file via email
 ansi2html.sh | mail -a "Content-Type: text/html" P@draigBrady.comSend/Generate HTML email
Better default settings (useful in your .bashrc)
#tail -s.1 -f /var/log/messagesDisplay file additions more responsively
seq 100 | tail -n $((${LINES:-12}-2))Display as many lines as possible without scrolling
#tcpdump -s0Capture full network packets
Useful functions/aliases (useful in your .bashrc)
md () { mkdir -p "$1" && cd "$1"; }Change to a new directory
strerror() { python -c "import os; print os.strerror($1)"; }Display the meaning of an errno
plot() { { echo 'plot "-"' "$@"; cat; } | gnuplot -persist; }Plot stdin. (e.g: • seq 1000 | sed 's/.*/s(&)/' | bc -l | plot)
hili() { e="$1"; shift; grep --col=always -Eih "$e|$" "$@"; }highlight occurences of expr. (e.g: • env | hili $USER)
alias hd='od -Ax -tx1z -v'Hexdump. (usage e.g.: • hd /proc/self/cmdline | less)
alias realpath='readlink -f'Canonicalize path. (usage e.g.: • realpath ~/../$USER)
ord() { printf "0x%x\n" "'$1"; }shell version of the ord() function
chr() { printf $(printf '\\%03o\\n' "$1"); }shell version of the chr() function
Multimedia
DISPLAY=:0.0 import -window root orig.pngTake a (remote) screenshot
convert -filter catrom -resize '600x>' orig.png 600px_wide.pngShrink to width, computer gen images or screenshots
 mplayer -ao pcm -vo null -vc dummy /tmp/Flash*Extract audio from flash video to audiodump.wav
 ffmpeg -i filename.aviDisplay info about multimedia file
ffmpeg -f x11grab -s xga -r 25 -i :0 -sameq demo.mpgCapture video of an X display
DVD
 for i in $(seq 9); do ffmpeg -i $i.avi -target pal-dvd $i.mpg; doneConvert video to the correct encoding and aspect for DVD
 dvdauthor -odvd -t -v "pal,4:3,720xfull" *.mpg;dvdauthor -odvd -TBuild DVD file system. Use 16:9 for widescreen input
 growisofs -dvd-compat -Z /dev/dvd -dvd-video dvdBurn DVD file system to disc
Unicode
python -c "import unicodedata as u; print u.name(unichr(0x2028))"Lookup a unicode character
uconv -f utf8 -t utf8 -x nfcNormalize combining characters
printf '\300\200' | iconv -futf8 -tutf8 >/dev/nullValidate UTF-8
printf 'ŨTF8\n' | LANG=C grep --color=always '[^ -~]\+'Highlight non printable ASCII chars in UTF-8
fc-match -s "sans:lang=zh"List font match order for language and style
Development
gcc -march=native -E -v -</dev/null 2>&1|sed -n 's/.*-mar/-mar/p'Show autodetected gcc tuning params. See also gcccpuopt
for i in $(seq 4); do { [ $i = 1 ] && wget http://url.ie/6lko -qO-||
./a.out; } | tee /dev/tty | gcc -xc - 2>/dev/null; done
Compile and execute C code from stdin
cpp -dM /dev/nullShow all predefined macros
echo "#include <features.h>" | cpp -dN | grep "#define __USE_"Show all glibc feature macros
 gdb -tuiDebug showing source code context in separate windows
udev
udevadm info -a -p $(udevadm info -q path -n /dev/input/mouse0)List udev attributes of a device, for matching rules etc.
udevadm test /sys/class/input/mouse0See how udev rules are applied for a device
#udevadm control --reload-rulesReload udev rules after modification
Extended Attributes (Note you may need to (re)mount with "acl" or "user_xattr" options)
getfacl .Show ACLs for file
setfacl -m u:nobody:r .Allow a specific user to read file
setfacl -x u:nobody .Delete a specific user's rights to file
 setfacl --default -m group:users:rw- dir/Set umask for a for a specific dir
 getcap fileShow capabilities for a program
 setcap cap_net_raw+ep your_gtk_progAllow gtk program raw access to network
stat -c%C .Show SELinux context for file
 chcon ... fileSet SELinux context for file (see also restorecon)
getfattr -m- -d .Show all extended attributes (includes selinux,acls,...)
setfattr -n "user.foo" -v "bar" .Set arbitrary user attributes
BASH specific
echo 123 | tee >(tr 1 a) | tr 1 bSplit data to 2 commands (using process substitution)
 meld local_file <(ssh host cat remote_file)Compare a local and remote file (using process substitution)
Multicore
taskset -c 0 nprocRestrict a command to certain processors
find -type f -print0 | xargs -r0 -P$(nproc) -n10 md5sumProcess files in parallel over available processors
 sort -m <(sort data1) <(sort data2) >data.sortedSort separate data files over 2 processors

Linux Command Line Reference for Common Operations

By: Onlyone
13 December 2011 at 11:45

This is a linux command line reference for common operations.
Examples marked with • are valid/safe to paste without modification into a terminal, so
you may want to keep a terminal window open while reading this so you can cut & paste.
All these commands have been tested both on Fedora and Ubuntu.
See also more linux commands.
CommandDescription
apropos whatisShow commands pertinent to string. See also threadsafe
man -t ascii | ps2pdf - > ascii.pdfmake a pdf of a manual page
which commandShow full path name of command
time commandSee how long a command takes
time catStart stopwatch. Ctrl-d to stop. See also sw
dir navigation
cd -Go to previous directory
cdGo to $HOME directory
(cd dir && command)Go to dir, execute command and return to current dir
pushd .Put current dir on stack so you can popd back to it
file searching
alias l='ls -l --color=auto'quick dir listing
ls -lrtList files by date. See also newest and find_mm_yyyy
ls /usr/bin | pr -T9 -W$COLUMNSPrint in 9 columns to width of terminal
find -name '*.[ch]' | xargs grep -E 'expr'Search 'expr' in this dir and below. See also findrepo
find -type f -print0 | xargs -r0 grep -F 'example'Search all regular files for 'example' in this dir and below
find -maxdepth 1 -type f | xargs grep -F 'example'Search all regular files for 'example' in this dir
find -maxdepth 1 -type d | while read dir; do echo $dir; echo cmd2; doneProcess each item with multiple commands (in while loop)
find -type f ! -perm -444Find files not readable by all (useful for web site)
find -type d ! -perm -111Find dirs not accessible by all (useful for web site)
locate -r 'file[^/]*\.txt'Search cached index for names. This re is like glob *file*.txt
look referenceQuickly search (sorted) dictionary for prefix
grep --color reference /usr/share/dict/wordsHighlight occurances of regular expression in dictionary
archives and compression
gpg -c fileEncrypt file
gpg file.gpgDecrypt file
tar -c dir/ | bzip2 > dir.tar.bz2Make compressed archive of dir/
bzip2 -dc dir.tar.bz2 | tar -xExtract archive (use gzip instead of bzip2 for tar.gz files)
tar -c dir/ | gzip | gpg -c | ssh user@remote 'dd of=dir.tar.gz.gpg'Make encrypted archive of dir/ on remote machine
find dir/ -name '*.txt' | tar -c --files-from=- | bzip2 > dir_txt.tar.bz2Make archive of subset of dir/ and below
find dir/ -name '*.txt' | xargs cp -a --target-directory=dir_txt/ --parentsMake copy of subset of dir/ and below
(tar -c /dir/to/copy) | ( cd /where/to/ && tar -x -p )Copy (with permissions) copy/ dir to /where/to/ dir
(cd /dir/to/copy && tar -c .) | ( cd /where/to/ && tar -x -p )Copy (with permissions) contents of copy/ dir to /where/to/
(tar -c /dir/to/copy ) | ssh -C user@remote 'cd /where/to/ && tar -x -p'Copy (with permissions) copy/ dir to remote:/where/to/ dir
dd bs=1M if=/dev/sda | gzip | ssh user@remote 'dd of=sda.gz'Backup harddisk to remote machine
rsync (Network efficient file copier: Use the --dry-run option for testing)
rsync -P rsync://rsync.server.com/path/to/file fileOnly get diffs. Do multiple times for troublesome downloads
rsync --bwlimit=1000 fromfile tofileLocally copy with rate limit. It's like nice for I/O
rsync -az -e ssh --delete ~/public_html/ remote.com:'~/public_html'Mirror web site (using compression and encryption)
rsync -auz -e ssh remote:/dir/ . && rsync -auz -e ssh . remote:/dir/Synchronize current directory with remote one
ssh (Secure SHell)
ssh $USER@$HOST commandRun command on $HOST as $USER (default command=shell)
ssh -f -Y $USER@$HOSTNAME xeyesRun GUI command on $HOSTNAME as $USER
scp -p -r $USER@$HOST: file dir/Copy with permissions to $USER's home directory on $HOST
scp -c arcfour $USER@$LANHOST: bigfileUse faster crypto for local LAN. This might saturate GigE
ssh -g -L 8080:localhost:80 root@$HOSTForward connections to $HOSTNAME:8080 out to $HOST:80
ssh -R 1434:imap:143 root@$HOSTForward connections from $HOST:1434 in to imap:143
ssh-copy-id $USER@$HOSTInstall public key for $USER@$HOST for password-less log in
wget (multi purpose download tool)
(cd dir/ && wget -nd -pHEKk http://www.pixelbeat.org/cmdline.html)Store local browsable version of a page to the current dir
wget -c http://www.example.com/large.fileContinue downloading a partially downloaded file
wget -r -nd -np -l1 -A '*.jpg' http://www.example.com/dir/Download a set of files to the current directory
wget ftp://remote/file[1-9].iso/FTP supports globbing directly
wget -q -O- http://www.pixelbeat.org/timeline.html | grep 'a href' | headProcess output directly
echo 'wget url' | at 01:00Download url at 1AM to current dir
wget --limit-rate=20k urlDo a low priority download (limit to 20KB/s in this case)
wget -nv --spider --force-html -i bookmarks.htmlCheck links in a file
wget --mirror http://www.example.com/Efficiently update a local copy of a site (handy from cron)
networking (Note ifconfig, route, mii-tool, nslookup commands are obsolete)
ethtool eth0Show status of ethernet interface eth0
ethtool --change eth0 autoneg off speed 100 duplex fullManually set ethernet interface speed
iwconfig eth1Show status of wireless interface eth1
iwconfig eth1 rate 1Mb/s fixedManually set wireless interface speed
iwlist scanList wireless networks in range
ip link showList network interfaces
ip link set dev eth0 name wanRename interface eth0 to wan
ip link set dev eth0 upBring interface eth0 up (or down)
ip addr showList addresses for interfaces
ip addr add 1.2.3.4/24 brd + dev eth0Add (or del) ip and mask (255.255.255.0)
ip route showList routing table
ip route add default via 1.2.3.254Set default gateway to 1.2.3.254
host pixelbeat.orgookup DNS ip address for name or vice versaL
hostname -iLookup local ip address (equivalent to host `hostname`)
whois pixelbeat.orgLookup whois info for hostname or ip address
netstat -tuplList internet services on a system
netstat -tupList active connections to/from system
windows networking (Note samba is the package that provides all this windows specific networking support)
smbtreeFind windows machines. See also findsmb
nmblookup -A 1.2.3.4Find the windows (netbios) name associated with ip address
smbclient -L windows_boxList shares on windows machine or samba server
mount -t smbfs -o fmask=666,guest //windows_box/share /mnt/shareMount a windows share
echo 'message' | smbclient -M windows_boxSend popup to windows machine (off by default in XP sp2)
text manipulation (Note sed uses stdin and stdout. Newer versions support inplace editing with the -i option)
sed 's/string1/string2/g'Replace string1 with string2
sed 's/\(.*\)1/\12/g'Modify anystring1 to anystring2
sed '/ *#/d; /^ *$/d'Remove comments and blank lines
sed ':a; /\\$/N; s/\\\n//; ta'Concatenate lines with trailing \
sed 's/[ \t]*$//'Remove trailing spaces from lines
sed 's/\([`"$\]\)/\\\1/g'Escape shell metacharacters active within double quotes
seq 10 | sed "s/^/      /; s/ *\(.\{7,\}\)/\1/"Right align numbers
sed -n '1000{p;q}'Print 1000th line
sed -n '10,20p;20q'Print lines 10 to 20
sed -n 's/.*<title>\(.*\)<\/title>.*/\1/ip;T;q'Extract title from HTML web page
sed -i 42d ~/.ssh/known_hostsDelete a particular line
sort -t. -k1,1n -k2,2n -k3,3n -k4,4nSort IPV4 ip addresses
echo 'Test' | tr '[:lower:]' '[:upper:]'Case conversion
tr -dc '[:print:]' < /dev/urandomFilter non printable characters
tr -s '[:blank:]' '\t' </proc/diskstats | cut -f4cut fields separated by blanks
history | wc -lCount lines
set operations (Note you can export LANG=C for speed. Also these assume no duplicate lines within a file)
sort file1 file2 | uniqUnion of unsorted files
sort file1 file2 | uniq -dIntersection of unsorted files
sort file1 file1 file2 | uniq -uDifference of unsorted files
sort file1 file2 | uniq -uSymmetric Difference of unsorted files
join -t'\0' -a1 -a2 file1 file2Union of sorted files
join -t'\0' file1 file2Intersection of sorted files
join -t'\0' -v2 file1 file2Difference of sorted files
join -t'\0' -v1 -v2 file1 file2Symmetric Difference of sorted files
math
echo '(1 + sqrt(5))/2' | bc -lQuick math (Calculate φ). See also bc
seq -f '4/%g' 1 2 99999 | paste -sd-+ | bc -lCalculate π the unix way
echo 'pad=20; min=64; (100*10^6)/((pad+min)*8)' | bcMore complex (int) e.g. This shows max FastE packet rate
echo 'pad=20; min=64; print (100E6)/((pad+min)*8)' | pythonPython handles scientific notation
echo 'pad=20; plot [64:1518] (100*10**6)/((pad+x)*8)' | gnuplot -persistPlot FastE packet rate vs packet size
echo 'obase=16; ibase=10; 64206' | bcBase conversion (decimal to hexadecimal)
echo $((0x2dec))Base conversion (hex to dec) ((shell arithmetic expansion))
units -t '100m/9.58s' 'miles/hour'Unit conversion (metric to imperial)
units -t '500GB' 'GiB'Unit conversion (SI to IEC prefixes)
units -t '1 googol'Definition lookup
seq 100 | (tr '\n' +; echo 0) | bcAdd a column of numbers. See also add and funcpy
calendar
cal -3Display a calendar
cal 9 1752Display a calendar for a particular month year
date -d friWhat date is it this friday. See also day
[ $(date -d '12:00 +1 day' +%d) = '01' ] || exitexit a script unless it's the last day of the month
date --date='25 Dec' +%AWhat day does xmas fall on, this year
date --date='@2147483647'Convert seconds since the epoch (1970-01-01 UTC) to date
TZ='America/Los_Angeles' dateWhat time is it on west coast of US (use tzselect to find TZ)
date --date='TZ="America/Los_Angeles" 09:00 next Fri'What's the local time for 9AM next Friday on west coast US
locales
printf "%'d\n" 1234Print number with thousands grouping appropriate to locale
BLOCK_SIZE=\'1 ls -lUse locale thousands grouping in ls. See also l
echo "I live in `locale territory`"Extract info from locale database
LANG=en_IE.utf8 locale int_prefixLookup locale info for specific country. See also ccodes
locale -kc $(locale | sed -n 's/\(LC_.\{4,\}\)=.*/\1/p') | lessList fields available in locale database
recode (Obsoletes iconv, dos2unix, unix2dos)
recode -l | lessShow available conversions (aliases on each line)
recode windows-1252.. file_to_change.txtWindows "ansi" to local charset (auto does CRLF conversion)
recode utf-8/CRLF.. file_to_change.txtWindows utf8 to local charset
recode iso-8859-15..utf8 file_to_change.txtLatin9 (western europe) to utf8
recode ../b64 < file.txt > file.b64Base64 encode
recode /qp.. < file.qp > file.txtQuoted printable decode
recode ..HTML < file.txt > file.htmlText to HTML
recode -lf windows-1252 | grep euroLookup table of characters
echo -n 0x80 | recode latin-9/x1..dumpShow what a code represents in latin-9 charmap
echo -n 0x20AC | recode ucs-2/x2..latin-9/xShow latin-9 encoding
echo -n 0x20AC | recode ucs-2/x2..utf-8/xShow utf-8 encoding
CDs
gzip < /dev/cdrom > cdrom.iso.gzSave copy of data cdrom
mkisofs -V LABEL -r dir | gzip > cdrom.iso.gzCreate cdrom image from contents of dir
mount -o loop cdrom.iso /mnt/dirMount the cdrom image at /mnt/dir (read only)
cdrecord -v dev=/dev/cdrom blank=fastClear a CDRW
gzip -dc cdrom.iso.gz | cdrecord -v dev=/dev/cdrom -Burn cdrom image (use dev=ATAPI -scanbus to confirm dev)
cdparanoia -BRip audio tracks from CD to wav files in current dir
cdrecord -v dev=/dev/cdrom -audio -pad *.wavMake audio CD from all wavs in current dir (see also cdrdao)
oggenc --tracknum='track' track.cdda.wav -o 'track.ogg'Make ogg file from wav file
disk space (See also FSlint)
ls -lSrShow files by size, biggest last
du -s * | sort -k1,1rn | headShow top disk users in current dir. See also dutop
du -hs /home/* | sort -k1,1hSort paths by easy to interpret disk usage
df -hShow free space on mounted filesystems
df -iShow free inodes on mounted filesystems
fdisk -lShow disks partitions sizes and types (run as root)
rpm -q -a --qf '%10{SIZE}\t%{NAME}\n' | sort -k1,1nList all packages by installed size (Bytes) on rpm distros
dpkg-query -W -f='${Installed-Size;10}\t${Package}\n' | sort -k1,1nList all packages by installed size (KBytes) on deb distros
dd bs=1 seek=2TB if=/dev/null of=ext3.testCreate a large test file (taking no space). See also truncate
> filetruncate data of file or create an empty file
monitoring/debugging
tail -f /var/log/messagesMonitor messages in a log file
strace -c ls >/dev/nullSummarise/profile system calls made by command
strace -f -e open ls >/dev/nullList system calls made by command
strace -f -e trace=write -e write=1,2 ls >/dev/nullMonitor what's written to stdout and stderr
ltrace -f -e getenv ls >/dev/nullList library calls made by command
lsof -p $$List paths that process id has open
lsof ~List processes that have specified path open
tcpdump not port 22Show network traffic except ssh. See also tcpdump_not_me
ps -e -o pid,args --forestList processes in a hierarchy
ps -e -o pcpu,cpu,nice,state,cputime,args --sort pcpu | sed '/^ 0.0 /d'List processes by % cpu usage
ps -e -orss=,args= | sort -b -k1,1n | pr -TW$COLUMNSList processes by mem (KB) usage. See also ps_mem.py
ps -C firefox-bin -L -o pid,tid,pcpu,stateList all threads for a particular process
ps -p 1,$$ -o etime=List elapsed wall time for particular process IDs
last rebootShow system reboot history
free -mShow amount of (remaining) RAM (-m displays in MB)
watch -n.1 'cat /proc/interrupts'Watch changeable data continuously
udevadm monitorMonitor udev events to help configure rules
system information (see also sysinfo) ('#' means root access is required)
uname -aShow kernel version and system architecture
head -n1 /etc/issueShow name and version of distribution
cat /proc/partitionsShow all partitions registered on the system
grep MemTotal /proc/meminfoShow RAM total seen by the system
grep "model name" /proc/cpuinfoShow CPU(s) info
lspci -tvShow PCI info
lsusb -tvShow USB info
mount | column -tList mounted filesystems on the system (and align output)
grep -F capacity: /proc/acpi/battery/BAT0/infoShow state of cells in laptop battery
#dmidecode -q | lessDisplay SMBIOS/DMI information
#smartctl -A /dev/sda | grep Power_On_HoursHow long has this disk (system) been powered on in total
#hdparm -i /dev/sdaShow info about disk sda
#hdparm -tT /dev/sdaDo a read speed test on disk sda
#badblocks -s /dev/sdaTest for unreadable blocks on disk sda
interactive (see also linux keyboard shortcuts)
readlineLine editor used by bash, python, bc, gnuplot, ...
screenVirtual terminals with detach capability, ...
mcPowerful file manager that can browse rpm, tar, ftp, ssh, ...
gnuplotInteractive/scriptable graphing
linksWeb browser
xdg-open .open a file or url with the registered desktop application
© Jan 7 2008   [Comments] | [Add link to ...] |

Linux系统信息查看命令大全

By: Onlyone
13 December 2011 at 11:41

最近看了一些Linux命令行的文章,在系统信息查看方面学到不少命令。发现这些系统信息查看命令也可以总结出一篇小小的东西来了。

另外这里还有非常多的命令, 可以作为参考。


系统
# uname -a               # 查看内核/操作系统/CPU信息
# head -n 1 /etc/issue   # 查看操作系统版本
# cat /proc/cpuinfo      # 查看CPU信息
# hostname               # 查看计算机名
# lspci -tv              # 列出所有PCI设备
# lsusb -tv              # 列出所有USB设备
# lsmod                  # 列出加载的内核模块
# env                    # 查看环境变量
资源
# free -m                # 查看内存使用量和交换区使用量
# df -h                  # 查看各分区使用情况
# du -sh <目录名>        # 查看指定目录的大小
# grep MemTotal /proc/meminfo   # 查看内存总量
# grep MemFree /proc/meminfo    # 查看空闲内存量
# uptime                 # 查看系统运行时间、用户数、负载
# cat /proc/loadavg      # 查看系统负载
磁盘和分区
# mount | column -t      # 查看挂接的分区状态
# fdisk -l               # 查看所有分区
# swapon -s              # 查看所有交换分区
# hdparm -i /dev/hda     # 查看磁盘参数(仅适用于IDE设备)
# dmesg | grep IDE       # 查看启动时IDE设备检测状况
网络
# ifconfig               # 查看所有网络接口的属性
# iptables -L            # 查看防火墙设置
# route -n               # 查看路由表
# netstat -lntp          # 查看所有监听端口
# netstat -antp          # 查看所有已经建立的连接
# netstat -s             # 查看网络统计信息
进程
# ps -ef                 # 查看所有进程
# top                    # 实时显示进程状态
用户
# w                      # 查看活动用户
# id <用户名>            # 查看指定用户信息
# last                   # 查看用户登录日志
# cut -d: -f1 /etc/passwd   # 查看系统所有用户
# cut -d: -f1 /etc/group    # 查看系统所有组
# crontab -l             # 查看当前用户的计划任务
服务
# chkconfig --list       # 列出所有系统服务
# chkconfig --list | grep on    # 列出所有启动的系统服务
程序
# rpm -qa                # 查看所有安装的软件包

附加一张总结的很好Linux常用命定的图片:
Linux 文件结构大全

❌
❌