1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。
cd:切换目录命令
实例
cd [dirctory] 切换目录 cd .. 返回上一级目录 cd - 来回切换 cd ~ 切换到家目录
pwd:显示当前目录
实例
pwd:显示当前目录
ls:列出目录内容
实例与常见的使用方法
ls -ld [dirctory]或[file] ls -al 显示所有文件包括隐藏文件 ls -i 显示所有的文件的iNode 后面加文件名或目录命只显示单个iNode ls --color 以彩色形式显示文件
alias:别名
实例
alias l='ls -l' 定义别名 alias alias=“command”
cat:查看文件的内容
实例和使用方法 cat filename 直接显示这个文件 cat -n filename 对行进行编号 cat -b filename 对空白行不进行编号 cat > linuxsir.org.txt << EOF 注:创建linuxsir.org.txt文件; 输入内容 EOF结束
more:查看文件的内容
用man来查看用法
less:查看文件的内容
用man来查看用法
tail:查看尾部文件内容
实例和使用方法
tail -n # filename 指定获取后#行 tail -c # filename 指定获取后#字节 tail -f filename 动态获取后面追加的内容
head:查看头部文件内容
实例和使用方法
head -n # filename 指定获取后前#行 head -c # filename 指定获取前#字节
split:分割文件
实例和使用方法
split -l 300 large_file.txt new_file_prefix 对与txt文本文件,可以通过指定分割后文件的行数来进行文件分割。 split -b 10m large_file.bin new_file_prefix 对于可执行文件等二进制文件,则不能通过文件行数来进行文件分割,此时我们可以指定分割大小来分隔文件。
cut:剪切命令
实例和使用方法
cut -d分隔符 -f指定字段
#: 第#个字段 #,#[,#]:离散的多个字段,例如1,3,6 #-#:连续的多个字段, 例如1-6 还可以混合使用 1-3,5 cut -b 指定字节 cut -c 指定字符
wc:统计指定文件中的字节数、字数、行数,并将统计结果显示输出。
实例和使用方法
wc -l filename 统计行数 wc -w filename 统计字数 wc -c filename 统计字符
sort:排序命令
实例和使用方法
sort -f filename 忽略字符大小写 sort -r filename 逆序排序 sort -t DELIMITER filename 指定字段分隔符 sort -k# filename 以指定字段为标准排序 sort-n filename 以数值大小进行排序 sort -u filename uniq,排序后去重
uniq:去重命令
实例和使用方法
uniq -c filename 显示每行重复出现的次数; uniq -d filename 仅显示重复过的行; uniq -u filename 仅显示不曾重复的行; Note: 连续且完全相同方为重复
mkdir:创建目录
实例和使用方法
mkdir -p /dirctory/files 递归创建文件 mkdir -m [+-]mode files 指定权限创建文件
touch:创建文件
实例和使用方法
三个时间戳: access time:访问时间,简写为atime,读取文件内容 modify time: 修改时间, mtime,改变文件内容(数据) change time: 改变时间, ctime,元数据发生改变 touch -a file only atime touch -m file only mtime touch -t STAMP 使用指定时间,不是现在时间 [[CC]YY]MMDDhhmm[.ss] touch -c file 如果文件不存,则不予创建
mv:重命名
实例和使用方法
mv -b oldfilename newfilename 重命名之前先备份 mv oldfilename newfilename mv oldfielname1 oldfilename2 newdirctory mv -i oldfilename newfilename 目标文件已存在,覆盖之前会询问
cp:复制
实例和使用方法
cp file /tmp/file 复制file到/tmp下的file file可以重命名 cp -a 用来备份文件 cp -r dirctory dirctory 复制目录的内容到另一个目录
rm:删除
实例和使用方法
rm -r dirctory 递归删除 rm -f file 强制删除 rm -i file 询问删除
ln:链接
实例和使用方法
ln -s file filelink 创建软连接 ln file filehardlink 穿件硬连接
which:查看可执行文件的位置。
实例和使用方法
which command
whereis:查看文件的位置。
实例和使用方法
whereis ** 将和**文件相关的文件都查找出来 whereis -b ** 把二进制文件找出来 也就是可执行文件
locate:配合数据库查看文件位置。并不是实时的
实例和使用方法
locate filename 会查找所有有filename的文件或目录 用man 看
find:实际搜寻硬盘查询文件名称 实时
find:
实时查找工具,通过遍历指定路径下的文件系统完成文件查找;
语法: find [OPTION]... [查找路径] [查找条件] [处理动作] 查找路径:指定具体目标路径;默认为当前目录; 查找条件:指定的查找标准,可以文件名、大小、类型、权限等标准进行;默认为找出指定路径下的所有文件; 处理动作:对符合条件的文件做什么操作;默认输出至屏幕; 查找条件: 根据文件名查找: -name "文件名称":支持使用glob *, ?, [], [^] -iname "文件名称":不区分字母大小写 -regex "PATTERN":以PATTERN匹配整个文件路径字符串,而不仅仅是文件名称; 根据属主、属组查找: -user USERNAME:查找属主为指定用户的文件; -group GRPNAME: 查找属组为指定组的文件; -uid UserID:查找属主为指定的UID号的文件; -gid GroupID:查找属组为指定的GID号的文件; -nouser:查找没有属主的文件; -nogroup:查找没有属组的文件; 根据文件类型查找: -type TYPE: f: 普通文件 d: 目录文件 l: 符号链接文件 s:套接字文件 b: 块设备文件 c: 字符设备文件 p: 管道文件 组合条件: 与:-a 或:-o 非:-not, ! !A -a !B = !(A -o B) !A -o !B = !(A -a B) 找出/tmp目录下,属主不是root,且文件名不是fstab的文件; find /tmp \( -not -user root -a -not -name 'fstab' \) -ls find /tmp -not \( -user root -o -name 'fstab' \) -ls 根据文件大小来查找: -size [+|-]#UNIT 常用单位:k, M, G #UNIT: (#-1, #] -#UNIT:[0,#-1] +#UNIT:(#,oo) 根据时间戳: 以“天”为单位; -atime [+|-]#, #: [#,#+1) +#: [#+1,oo] -#: [0,#) -mtime -ctime 以“分钟”为单位: -amin -mmin -cmin 根据权限查找: -perm [/|-]MODE MODE: 精确权限匹配 /MODE:任何一类(u,g,o)对象的权限中只要能一位匹配即可; -MODE:每一类对象都必须同时拥有为其指定的权限标准; 处理动作: -print:默认的处理动作,显示至屏幕; -ls:类似于对查找到的文件执行“ls -l”命令; -delete:删除查找到的文件; -fls /path/to/somefile:查找到的所有文件的长格式信息保存至指定文件中; -ok COMMAND {} \; 对查找到的每个文件执行由COMMAND指定的命令; 对于每个文件执行命令之前,都会交互式要求用户确认; -exec COMMAND {} \; 对查找到的每个文件执行由COMMAND指定的命令; {}: 用于引用查找到的文件名称自身; 注意:find传递查找到的文件至后面指定的命令时,查找到所有符合条件的文件一次性传递给后面的命令; 有些命令不能接受过多参数,此时命令执行可能会失败;另一种方式可规避此问题: find | xargs COMMAND
2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。
bash的工作特性之命令执行状态返回值
成功:0 失败:1-255 使用echo $! 查看
命令行展开
~: 展开为用户的主目录 ~USERNAME:展开为指定用户的主目录 {}:可承载一个以逗号分隔的列表,并将其展开为多个路径 /tmp/{a,b} = /tmp/a, /tmp/b /tmp/{tom,jerry}/hi = /tmp/tom/hi, /tmp/jerry/hi
3、请使用命令行展开功能来完成以下练习:
(1)、创建/tmp目录下的:a_c, a_d, b_c, b_d
mkdir -r {a,b}_{c,d}
(2)、创建/tmp/mylinux目录下的:
mkdir -p mylinux/{bin,boot/grub,dev,etc/{rc.d/init.d,sysconfig/network-scripts},lib/modules,lib64,proc,sbin,sys,tmp,usr/local/{bin,sbin},var/{lock,log,run}}
mylinux/ ├── bin ├── boot │ └── grub ├── dev ├── etc │ ├── rc.d │ │ └── init.d │ └── sysconfig │ └── network-scripts ├── lib │ └── modules ├── lib64 ├── proc ├── sbin ├── sys ├── tmp ├── usr │ └── local │ ├── bin │ └── sbin └── var ├── lock ├── log └── run#
4、文件的元数据信息有哪些,分别表示什么含义,如何查看?如何修改文件的时间戳信息。
[root@king-liu mylinux]# stat bin 使用stat查看 File: `bin' 文件 Size: 4096 大小 Blocks: 8 块大小 IO Block: 4096 输入输出块大小 directory Device: 802h/2050d设备 Inode: 2883666 iNode号 Links: 2 链接 Access: (0755/drwxr-xr-x) 权限 Uid: ( 0/ root) Gid: ( 0/ root) Access: 2016-06-19 06:42:46.032726013 +0800 Modify: 2016-06-19 06:42:46.032726013 +0800 Change: 2016-06-19 06:42:46.032726013 +0800 三个时间戳: access time:访问时间,简写为atime,读取文件内容 modify time: 修改时间, mtime,改变文件内容(数据) change time: 改变时间, ctime,元数据发生改变 touch -a :仅更新Access time(同时更新Change为current time) touch -m:仅更新Modify time(同时更新Change为current time) touch -c:不创建新文件 touch -t:使用指定的时间更新时间戳(仅更改Access time与Modify time,Change time更新为current time) 例:touch -t [[CC]YY]MMDDhhmm[.ss] filename
5、如何定义一个命令的别名,如何在命令中引用另一个命令的执行结果?
alias commandname=“command option ....” | 使用管道命令可以引用另一个命令
6、显示/var目录下所有以l开头,以一个小写字母结尾,且中间至少出现一位数字(可以有其它字符)的文件或目录。
ls -d /var/l*[0-9]*[[:lower:]]
7、显示/etc目录下,以任意一个数字开头,且以非数字结尾的文件或目录。
ls -d /etc/[0-9]*[^0-9]
8、显示/etc目录下,以非字母开头,后面跟了一个字母以及其它任意长度任意字符的文件或目录。
ls -d /etc/[^a-z][a-z]*
9、在/tmp目录下创建以tfile开头,后跟当前日期和时间的文件,文件名形如:tfile-2016-05-27-09-32-22。
touch tfile-"$(date +%F-%H-%M-%S)"
10、复制/etc目录下所有以p开头,以非数字结尾的文件或目录到/tmp/mytest1目录中。
cp -r /etc/p*[^0-9] /tmp/mytest1
11、复制/etc目录下所有以.d结尾的文件或目录至/tmp/mytest2目录中。
cp -r /etc/*.d /tmp/mytest2
12、复制/etc/目录下所有以l或m或n开头,以.conf结尾的文件至/tmp/mytest3目录中。
cp /etc/[1mn]*.conf /tmp/mytest3
原创文章,作者:N19_king,如若转载,请注明出处:http://www.178linux.com/18607
评论列表(1条)
排版很好,如果可以在写一些例子说明一下会更好,加油!