游乐游手机版
首页/系统平台/文章详情

Solaris系统实用操作小技巧

时间:2026-06-22 11:21
从 Windows 环境向 Unix 系统传输文件时,最常见的问题就是每行末尾会多出一个“^M”字符。这实际上是 DOS Windows 格式的换行符(CRLF)在 Unix 下未被正确转换造成的。有两种解决办法:如果已经用 vi 打开了文件,在命令模式下输入 :%s ^V^M g 即可批量清除;

从 Windows 环境向 Unix 系统传输文件时,最常见的问题就是每行末尾会多出一个“^M”字符。这实际上是 DOS/Windows 格式的换行符(CRLF)在 Unix 下未被正确转换造成的。有两种解决办法:如果已经用 vi 打开了文件,在命令模式下输入 :%s/^V^M//g 即可批量清除;如果不想进入编辑器,直接在 shell 里使用 sed 命令 sed 's/^V^M//g' foo > foo.new 也能实现相同效果。注意这里的“^V”是按 Ctrl+V 键,“^M”是按 Ctrl+M 键。

另一个容易踩坑的场景是文件名以减号开头,例如 -filename。直接执行 rm -filename 会被系统错误地解释为参数。正确的做法是用 rm -- "-filename",双横线告诉命令后面的内容不再视为选项。

系统挂载表是日常运维中必须掌握的内容。一个典型的 /etc/vfstab 文件(或 /etc/fstab)内容如下:

/dev/dsk/c0t3d0s0 /dev/rdsk/c0t3d0s0 / ufs 1 no -
/dev/dsk/c0t0d0s3 /dev/rdsk/c0t0d0s3 /usr ufs 1 no -
/dev/dsk/c0t0d0s0 /dev/rdsk/c0t0d0s0 /download ufs 2 yes -
/dev/dsk/c0t3d0s1 /dev/rdsk/c0t3d0s1 /export ufs 2 yes -
#/dev/dsk/c0t0d0s1 - - swap - no -
#swap - /tmp tmpfs - yes -

其中被注释掉的 swap 和 tmpfs 行,可以根据实际需求取消注释,从而启用交换分区和临时文件系统。

说到文件列表,ls 有不少实用的变体。ls -R 递归显示所有子目录内容,效果等同于 ls *ls -t 按修改时间排序。如果想统计当前目录下有多少个文件和目录,可以用:

ls -l * | grep "^-" | wc -l # 统计文件数
ls -l * | grep "^d" | wc -l # 统计目录数

这些命令甚至可以编写成脚本或设置成别名(alias)以便复用。只列出子目录的方法也很简单:ls -F | grep /$(Linux),或者 ls -l | grep "^d"(Solaris)。

文本搜索离不开 grep 命令。grep user1 /etc/passwd 进行精确匹配,加上 -i 参数则忽略大小写。别名可以帮助简化重复操作,比如 alias find1 'find . -name \!* -print' 就能快速创建一个自定义的查找命令。

find 命令更是文件管理的利器。find . -ctime 0 -print 会列出当天修改过的所有文件。find . -name '*.bak' -exec rm {} \; 则能一次性删除所有备份文件。如果想查找7天前修改的 txt 文件,用 find . \( -name *.txt -ctime 7 \) -print。配合 -exec chown 还能批量修改文件所有权:Solaris 下用 find . -exec chown OWNER.[GROUP] {} \;,Linux 下加 -R 参数。

cut 命令可以按字段或字符列截取文本。cut -f field_list file 默认以逗号或空格分隔,cut -d: -f5,7-9 mydata 则以冒号为分隔符提取指定字段。cut -s -c35-40 mydata 按字符列截取,加上 -s 跳过注释行。

如果你只想列出当前目录下除了某种类型之外的所有文件,Ksh 环境下可以用 ls !(*.Z) 排除 .Z 文件。这个技巧在文件类型混杂时特别实用。

提示符也可以按个人喜好定制:PS1='newprompt' 然后 export PS1,或者用 set prompt='user1[\!]',其中的 \! 会显示命令历史编号。

添加新的 PATH 路径而不影响原有内容:PATH=$PATH:$HOME/bin:/.../...export PATH 即可。想快速了解某个主题相关的所有命令,用 apropos lp 就能列出所有与打印机相关的命令。查看系统版本信息用 uname -a

整个目录的拷贝,cp -r /home/baoshan/zzy . 就能把远程目录复制到当前路径。不同系统间的文件格式转换,unix2dos oldfile newfiledos2unix oldfile newfile 是最直接的方法。检查已安装的软件包用 pkginfo,查看目录下所有文件占用空间用 du -d /

文件加密可以使用 crypt:crypt passwd < myfile > newfile 压缩加密,然后删除原文件。需要恢复时执行 crypt passwd < newfile 即可。

关于前面提到的 ^M 字符,除了 vi 和 sed 的方法,通过 FTP 传输时选择 ASCII 模式也能从根源上避免这个问题。

想让后台任务在退出系统后继续运行,记得使用 nohup tar -cf /dev/tape /home &。重新登录后用 ps 就能看到进程仍在执行。

查看文件内容也有不少技巧。只看前5行用 head -5 /etc/passwd,只看后10行用 tail -10 /etc/passwd。想看中间某段,sed -n '5,10p' /etc/passwd 能直接输出第5到第10行。

磁盘空间检查,df -k 以 KB 为单位显示,df -t 则显示文件系统类型。超级用户修改系统时间可以使用 date MMDDHHMIdate -u MMDDHHMIYYYY。修改普通用户的口令,passwd -d user1 会直接删除该用户的口令(不推荐在生产环境使用)。

来源:https://www.jb51.net/os/Solaris/1699.html
上一篇Solaris 10 ADSL拨号连接配置方法 下一篇在Solaris 10.0操作系统中正确挂载光驱的详细教程步骤
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
微软详解Win11时间点还原 默认每24小时创建恢复点
系统平台 · 2026-06-30

微软详解Win11时间点还原 默认每24小时创建恢复点

微软今日推送了最新的 6 月可选更新,并发布博客详细解读了 Win11 全新的“时间点还原”(Point-in-time restore)功能——这一功能本质上是对系统恢复体验的一次全面升级,旨在让用户更轻松地应对电脑故障。 微软表示,面向 Windows 11 客户端用户的“时间点还原”功能现已正

Win11 26H1六月可选更新KB5095091 优化放大镜改善装机体验
系统平台 · 2026-06-30

Win11 26H1六月可选更新KB5095091 优化放大镜改善装机体验

微软今天推送了Windows 11 26H1设备的6月可选更新KB5095091,安装完成后系统版本号会升级到Build 28000 2340。值得一提的是,这次更新并非面向所有设备,而是专门为搭载高通骁龙X2系列芯片的机型准备的——包括骁龙X2 Plus、X2 Elite和X2 Elite Ext

Win11六月可选更新KB5095093修复回收站弹窗异常
系统平台 · 2026-06-30

Win11六月可选更新KB5095093修复回收站弹窗异常

微软已悄然推送Windows 11六月可选更新,编号KB5095093。本次更新覆盖两个版本:24H2用户安装后版本号升级至Build 26100 8737,而25H2用户则更新至Build 26200 8737。 本次更新并非仅是小修小补,而是带来了多项实质性新功能。下面我们就来详细解析这些更新内

苹果macOS 27 Beta2封堵Siri AI跳过候补名单漏洞
系统平台 · 2026-06-30

苹果macOS 27 Beta2封堵Siri AI跳过候补名单漏洞

科技媒体 Cult of Mac 昨日(6月23日)发布博文指出,苹果在 macOS 27 Beta 2 更新中悄然封堵了一个此前可用的后门——用户曾能通过一条终端命令绕过候补名单,直接启用新版 Siri AI,如今这一方法已失效。 简要回顾一下:在 macOS 27 Beta 1 阶段,只需在 M

微软加速Win11 25H2推送 覆盖所有符合条件家用PC
系统平台 · 2026-06-30

微软加速Win11 25H2推送 覆盖所有符合条件家用PC

近日(6月23日),科技媒体 Windows Latest 发布了一则值得关注的动态:微软已进一步扩大 Windows 11 25H2 的推送范围,所有满足硬件要求、且不受 IT 部门管理的家庭版和专业版设备,现在均可顺利接收本次更新。 此次升级有一个显著特点——采用“启用包”(eKB)方式进行推送