### Linux常用技巧详解 #### 取消^M字符 在处理来自不同操作系统的文本文件时,经常会遇到因换行符不一致导致的问题。在Windows系统中使用的文本编辑器(如Notepad)通常会将每行末尾存储为回车加换行(`\r\n`),而在Unix/Linux系统中,每行末尾只存储一个换行符(`\n`)。当在Linux环境中打开一个含有Windows换行符的文件时,可能会看到每行结尾处有一个额外的`^M`字符。 为了去除这些不必要的`^M`字符,可以采用以下几种方法: - **使用vi编辑器**:在vi编辑器中,可以通过命令模式进行替换。例如: ```shell :%s/^V^M//g ``` 这条命令会全局搜索并替换掉所有出现的`^M`字符。 - **使用sed命令**:如果希望不修改原始文件而进行替换,可以使用sed命令: ```shell sed 's/^V^M//g' foo > foo.new ``` 上述命令会创建一个新的文件`foo.new`,其中`^M`字符已被移除。 #### 使用nohup命令 `nohup`命令允许用户运行一个进程,并忽略HUP信号,这意味着即使用户退出登录,该进程仍将继续运行。这对于长时间运行的任务非常有用,例如备份或批处理任务。使用示例: ```shell nohup tar -cf /dev/tape /home & ``` 在上面的例子中,我们使用`nohup`启动了一个tar归档进程,该进程将 `/home` 目录归档到 `/dev/tape`。添加 `&` 符号表示将命令放入后台执行。 可以通过 `ps` 命令来检查后台运行的进程状态: ```shell ps aux | grep "tar" ``` #### 查看文件的方法 Linux提供了多种查看文件内容的方式: - **查看文件前几行**:使用`head`命令可以查看文件的前几行。例如,要查看 `/etc/passwd` 文件的前五行,可以输入: ```shell head -5 /etc/passwd ``` - **查看文件后几行**:同样地,使用`tail`命令可以查看文件的最后一部分。例如,要查看 `/etc/passwd` 文件的最后十行,可以输入: ```shell tail -10 /etc/passwd ``` - **查看文件特定行**:如果想查看文件中的特定行范围,可以使用`sed`命令: ```shell sed -n '5,10p' /etc/passwd ``` 上述命令将显示第5行至第10行的内容。 #### 查找目录中的文件数量 有时候我们需要统计某个目录下的文件数量,这可以通过组合使用`ls`、`grep`和`wc`命令来实现: - **计数文件**: ```shell ls -l * | grep "^-" | wc -l ``` 这条命令先列出当前目录下所有非隐藏文件,然后通过`grep`筛选出普通文件,最后使用`wc`统计行数。 - **计数目录**: ```shell ls -l * | grep "^d" | wc -l ``` 类似地,这条命令先列出当前目录下的所有项,然后筛选出目录,最后统计目录的数量。 #### 列出当前目录下的子目录 为了只列出当前目录下的子目录,可以使用以下命令: - **使用`ls -F`**: ```shell ls -F | grep "/" ``` 或者定义别名: ```shell alias sub="ls -F | grep '/'" ``` 这种方法利用了`ls -F`命令,它会在目录名称后面加上斜杠(`/`)。 - **使用`ls -l`**: ```shell ls -l | grep "^d" ``` 或者在Solaris系统中使用: ```shell ls -lL | grep "^d" ``` #### 更改文件权限 如果需要更改当前目录下所有文件的权限,可以使用`find`命令结合`chown`或`chmod`命令: - **更改所有权**: 在Solaris系统中: ```shell find . -exec chown OWNER:[GROUP] {} \; ``` 在Linux系统中: ```shell find . -exec chown -R OWNER:[GROUP] {} \; ``` #### 忽略某些文件类型 在某些情况下,可能需要忽略某些特定类型的文件。例如,在Shell脚本中列出目录中的文件,但忽略`.Z`扩展名的文件,可以使用通配符和排除模式: - **使用Ksh**: ```shell ls !(*.Z) ``` 这个命令会列出当前目录中的所有文件,除了那些扩展名为`.Z`的文件。 以上就是关于Linux中取消^M字符、使用nohup命令以及查看文件等常用技巧的详细介绍。这些技巧能够帮助用户更高效地管理和操作Linux系统中的文件及目录。
1.取消^M字符
当你FTP一些DOS文件到unix下时,你经常会看见每行文件后面有个讨 厌的^M 字符,有两个简单的方法可以取消它。 用"vi"打开此文件,在Command mode下敲入: :%s/^V^M//g 或者,在UNIX SHELL下敲入: sed 's/^V^M//g' foo > foo.new
2.使用nohup命令
如果你想进程在你退出系统后还能执行,可以使用NOHUP命令 如: % nohup tar -cf /dev/tape /home & 你退出后再重新登录的话,使用'ps'命令可以看到进程还在执行
3.查看文件的方法
如果你只想看文件的前5行,可以使用head命令,如: head -5 /etc/passwd 如果你想查看文件的后10行,可以使用tail命令,如: tail -10 /etc/passwd 你知道怎么查看文件中间一段吗?你可以使用sed命令 如: sed -n '5,10p' /etc/passwd 这样你就可以只查看文件的第5行到第10行。
4.计算文件数和目录数 下面的语句可以帮你计算有多少个文件和多少个目录..
# ls -l * |grep "^-"|wc -l ---- to count files
# ls -l * |grep "^d"|wc -l ----- to count dir
还可以将以上的语句变成script或做个alias
5.只列子目录的方法:
ls -F | grep /$ 或者
alias sub = "ls -F | grep /$"(linux)
ls -l | grep "^d" 或者
ls -lL | grep "^d" (Solaris)
6.利用Find命令改变所有权
想要改变当前目录下所有文件的所有权,可以这样:
find . -exec chown OWNER.[GROUP] {} \; (Solaris)
find . -exec chown -R OWNER.[GROUP] {} \; (Linux)
- 粉丝: 0
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助