目录
前言
linux命令是对linux系统进行管理的命令,本文通过对linux常用命令的整理,来认识linux命令并在工作中能应用自如。
一、查看及切换目录
1.查看当前目录:pwd
命令:pwd 查看当前目录路径
2.查看当前目录 :ls
-l #将文件信息属性详细列出,通常直接使用ll,因为设置了别名
-R #递归显示,比如一个目录下还有文件,则把那个文件也一起列出
-d #查看目录本身信息,不显示目录下的内容
-i #显示inode值
-h #友好显示
-a #遍历所有文件及目录 (ls内定将文件名或目录名称开头为"."的视为隐藏档,不会列出)
-A #跟-a 唯一的不同是不列出当前目录和上一层目录
-r # 逆向(reverse)。从后向前地列举目录中的内容 -S #大小(size)。按文件大小排序。 -F #文件类型(File type)。在每一个列举项目之后添加一个符号。这些符号包括:/ 表明是一个目录;@ 表明是到其它文件的符号链接;* 表明是一个可执行文件
3.查看目录:du
-h:以人类可读的方式显示
-a:显示目录占用的磁盘空间大小,还要显示其下目录和文件占用磁盘空间的大小
-s:显示目录占用的磁盘空间大小,不要显示其下子目录和文件占用的磁盘空间大小
-c:显示几个目录或文件占用的磁盘空间大小,还要统计它们的总和
-l :统计硬链接占用磁盘空间的大小
-L:统计符号链接所指向的文件占用的磁盘空间大小
4.目录切换:cd
命令:cd
cd ~ #切换到当前用户的家目录
cd #切换到当前用户的家目录
cd ~user #切换到某一个用户的家目录,只有root才行,别的用户只能在自己家
cd - #切换到上一次执行操作的目录
cd .. #切换到上一层目录(父目录)
二、创建目录和文件
1.创建目录:mkdir
mkdir aaa 在当前目录下创建一个名为aaa的目录
mkdir /usr/aaa 在指定目录下创建一个名为aaa的目录参数
-p 递归创建目录,递归的意思是父目录及其子目录的子目录,即使要创建的目录实现已存在也不会报错提示目录已经存在
-m 设置新创建目录的默认目录对应的权限
案例:使用-p参数递归创建目录
[root@1-230 ~]# mkdir cc/test
mkdir: cannot create directory 'cc/test': No such file or directory #提示没有这个文件或目录
此时,可以指定-P参数递归创建多级目录:
[root@1-230 ~]# mkdir -p cc/test
[root@1-230 ~]# tree -d
.
|-- cc
| `-- test
`-- data
案例2:创建目录时可使用-m参数设置目录的默认权限。
[root@1-230 ~]# mkdir dir1
[root@1-230 ~]# ls -ld dir1 #ls命令的使用方法见后面的ls命令
drwxr-xr-x 2 root root 6 Oct 22 22:00 dir1 #创建该目录默认权限为755
[root@1-230 ~]# mkdir -m 755 dir2 #创建目录时指定755的数字权限
[root@1-230 ~]# ls -ld dir2
drwxr-xr-x 2 root root 6 Oct 22 22:00 dir2 #可以看到权限已经发生变化了
2.新建文件:touch
命令参数:
-a 或--time=atime或--time=access或--time=use 只更改存取时间。
-c 或--no-create 不建立任何文档。
-d 使用指定的日期时间,而非现在的时间。
-f 此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题。
-m 或--time=mtime或--time=modify 只更改变动时间。
-r 把指定文档或目录的日期时间,统统设成和参考文档或目录的日期时间相同。
-t 使用指定的日期时间,而非现在的时间。
实例:创建不存在的文件
命令:
touch log2012.log log2013.log
输出:
[root@localhost test]# touch log2012.log log2013.log
[root@localhost test]# ll
-rw-r--r-- 1 root root 0 10-28 16:01 log2012.log
-rw-r--r-- 1 root root 0 10-28 16:01 log2013.log
如果log2014.log不存在,则不创建文件
[root@localhost test]# touch -c log2014.log
[root@localhost test]# ll
-rw-r--r-- 1 root root 0 10-28 16:01 log2012.log
-rw-r--r-- 1 root root 0 10-28 16:01 log2013.log
3.创建链接:ln
命令参数:
-b 删除,覆盖以前建立的链接
-d 允许超级用户制作目录的硬链接
-f 强制执行
-i 交互模式,文件存在则提示用户是否覆盖
-n 把符号链接视为一般目录
-s 软链接(符号链接)
-v 显示详细的处理过程
命令功能:
Linux文件系统中,有所谓的链接(link),我们可以将其视为档案的别名,而链接又可分为两种 : 硬链接(hard link)与软链接(symbolic link),硬链接的意思是一个档案可以有多个名称,而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬链接是存在同一个文件系统中,而软链接却可以跨越不同的文件系统。
软链接:
1.软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式
2.软链接可以 跨文件系统 ,硬链接不可以
3.软链接可以对一个不存在的文件名进行链接
4.软链接可以对目录进行链接
硬链接:
1.硬链接,以文件副本的形式存在。但不占用实际空间。
2.不允许给目录创建硬链接
3.硬链接只有在同一个文件系统中才能创建
实例:给文件创建软链接
命令:
ln -s log2013.log link2013
输出:
[root@localhost test]# ll
-rw-r--r-- 1 root bin 61 11-13 06:03 log2013.log
[root@localhost test]# ln -s log2013.log link2013
[root@localhost test]# ll
lrwxrwxrwx 1 root root 11 12-07 16:01 link2013 -> log2013.log
-rw-r--r-- 1 root bin 61 11-13 06:03 log2013.log
说明:
为log2013.log文件创建软链接link2013,如果log2013.log丢失,link2013将失效
三、复制、删除、移动目录和文件
1.复制目录:cp
参数:
-a :相当于 -pdr 的意思;
-d :若来源文件为连结文件的属性(link file),则复制连结文件属性而非档案本身;
-f :为强制 (force) 的意思,若有重复或其它疑问时,不会询问使用者,而强制复制;
-i :若目的檔(destination)已经存在时,在覆盖时会先询问是否真的动作!
-l :进行硬式连结 (hard link) 的连结档建立,而非复制档案本身;
-p :连同档案的属性一起复制过去,而非使用预设属性;
-r :递归持续复制,用于目录的复制行为;
-s :复制成为符号连结文件 (symbolic link),亦即『快捷方式』档案;
-u :若 destination 比 source 旧才更新 destination !
实例:复制 /etc/ 这个目录下的所有内容到 /tmp 底下
[root@linux tmp]# cp /etc/ /tmp
cp: omitting directory `/etc’ <== 如果是目录,不能直接复制,要加上 -r 的参数
[root@linux tmp]# cp -r /etc/ /tmp
还是要再次的强调喔! -r 是可以复制目录,但是,档案与目录的权限会被改变~
所以,也可以利用 cp -a /etc /tmp 来下达指令喔!
2.删除文件:rm
命令参数:
-f, --force 忽略不存在的文件,从不给出提示。
-i, --interactive 进行交互式删除
-r, -R, --recursive 指示rm将参数中列出的全部目录和子目录均递归地删除。
-v, --verbose 详细显示进行的步骤
--help 显示此帮助信息并退出
--version 输出版本信息并退出
实例:删除以 -f 开头的文件
命令:
rm -- -f
输出:
[root@localhost test]# touch -- -f
[root@localhost test]# ls -- -f
-f[root@localhost test]# rm -- -f
rm:是否删除 一般空文件 “-f”? y
[root@localhost test]# ls -- -f
ls: -f: 没有那个文件或目录
[root@localhost test]#
也可以使用下面的操作步骤:
[root@localhost test]# touch ./-f
[root@localhost test]# ls ./-f
./-f[root@localhost test]# rm ./-f
rm:是否删除 一般空文件 “./-f”? y
[root@localhost test]#
3.移动文件:mv
命令参数:
-b :若需覆盖文件,则覆盖前先行备份。
-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
-u :若目标文件已经存在,且 source 比较新,才会更新(update)
实例:文件改名
命令:
mv test.log test1.txt
输出:
[root@localhost test]# ll
总计 20drwxr-xr-x 6 root root 4096 10-27 01:58 scf
drwxrwxrwx 2 root root 4096 10-25 17:46 test3
drwxr-xr-x 2 root root 4096 10-25 17:56 test4
drwxr-xr-x 3 root root 4096 10-25 17:56 test5
-rw-r--r-- 1 root root 16 10-28 06:04 test.log
[root@localhost test]# mv test.log test1.txt
[root@localhost test]# ll
总计 20drwxr-xr-x 6 root root 4096 10-27 01:58 scf
-rw-r--r-- 1 root root 16 10-28 06:04 test1.txt
drwxrwxrwx 2 root root 4096 10-25 17:46 test3
drwxr-xr-x 2 root root 4096 10-25 17:56 test4
drwxr-xr-x 3 root root 4096 10-25 17:56 test5
四、查找目录和文件
1.查找文件:which
命令参数:
-n 指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。
-p 与-n参数相同,但此处的包括了文件的路径。
-w 指定输出时栏位的宽度。
-V 显示版本信息
实例:查找文件、显示命令路径
命令:which lsmod
输出:
[root@localhost ~]# which pwd
/bin/pwd
[root@localhost ~]# which adduser
/usr/sbin/adduser
[root@localhost ~]#
说明:which 是根据使用者所配置的 PATH 变量内的目录去搜寻可运行档的!所以,不同的 PATH 配置内容所找到的命令当然不一样的!
2.查找目录和文件:find
命令参数:
-name 按名称查找
-size 按大小查找
-user 按文件属主
-type 按类型查找 -mtime -n +n #按文件更改时间来查找文件,-n指n天以内,+n指n天以前
-atime -n +n #按文件访问时间来查找文件,-n指n天以内,+n指n天以前
-ctime -n +n #按文件创建时间来查找文件,-n指n天以内,+n指n天以前
实验:按文件更新的时间
[root@localhost ~]# cd /mnt
[root@localhost mnt]# rm -rf *
[root@localhost mnt]# ls
##建立文件
[root@localhost mnt]# touch file{1..3}
##查找文件更新距离现在为1分钟的文件
[root@localhost mnt]# find /mnt/ -ctime 1
##查找文件更新距离现在为1分钟以内的文件
[root@localhost mnt]# find /mnt/ -ctime -1
/mnt/
/mnt/file1
/mnt/file2
/mnt/file3
##查找文件更新距离现在超过1分钟的文件
[root@localhost mnt]# find /mnt/ -ctime +1
总结
通过对linux常用命令的整理,彻底理解linux常用命令的应用,对于初学者来说了解linux常用命令,对于在今后的工作中非常有用。
2.