命令类型:
type //显示指定命令属于哪种类型[root@Gin ~]# type hostnamectl //hostnamectl是外部命令显示hostnamectl is /usr/bin/hostnamectl[root@Gin ~]# type cd //cd是shell内部命令显示cd is a shell builtin
基础命令:
目录管理:
//目录管理 ls //列出目录内容 [root@Gin ~]# ls //列出当前目录下的内容 a anaconda-ks.cfg Gin -l //长格式 [root@Gin ~]# ls -l //用-l显示出更多信息(长格式) total 8 drwxr-xr-x. 5 root root 33 Jun 29 14:40 a -rw-------. 2 root root 1478 Jun 28 16:37 anaconda-ks.cfg -rw-------. 2 root root 1478 Jun 28 16:37 Gin 文件类型 - //普通文件(f) d //目录文件 b //块设备文件(block) c //字符设备文件(character) l //符号链接文件(symbolic link file) p //命令管道(pipe) s //套接字文件(socket) 文件权限 //9位,每3位一组,每一组:rwx(读,写,执行) 文件硬链接的次数 文件的属主(owner) 文件的属组(group) 文件大小(size),单位是字节 时间戳(timestamp),最近一次被修改的时间 访问 //access 修改 //modify,文件内容发生改变 改变 //change,metadata(元数据) -h //做单位转换 [root@Gin ~]# ls -lh anaconda-ks.cfg //显示文件大小用对人类友好的方式 -rw-------. 2 root root 1.5K Jun 28 16:37 anaconda-ks.cfg -a //显示以.开头的隐藏文件 [root@Gin ~]# ls -a //显示当前目录下的隐藏文件 . a .bash_history .bash_profile .cshrc .tcshrc .. anaconda-ks.cfg .bash_logout .bashrc Gin .viminfo . //表示当前目录 .. //表示父目录 -d //显示目录自身属性 -i //显示文件的inode(index node) -r //逆序显示 -R //递归(recursive)显示 cd //改变当前工作目录 [root@Gin ~]# cd /etc/sysconfig/network-scripts/ //进入到network-scripts目录中 [root@Gin network-scripts]# pwd //打印当前工作目录路径 [root@Gin network-scripts]# pwd //打印出当前在那个目录中 /etc/sysconfig/network-scripts mkdir //创建目录 -p //创建目录时若父目录不存在则自动创建 -v //显示目录创建过程 [root@Gin ~]# mkdir -pv gin/Kin/555 //创建gin目录下的Kin目录下的555显示过程 mkdir: created directory 'gin' mkdir: created directory 'gin/Kin' mkdir: created directory 'gin/Kin/555' rmdir //删除目录,只能删除空目录 [root@Gin ~]# rmdir gin //删除有文件的目录 rmdir: failed to remove 'gin': Directory not empty [root@Gin ~]# rmdir 555 //删除空的目录 [root@Gin ~]# tree //查看目录树 [root@Gin ~]# tree a //查看目录a的目录树 a ├── b │ ├── Gin │ └── kin │ ├── 1205 │ └── 555 ├── c └── d └── {999} 8 directories, 0 files
文件管理:
//文件管理 touch //无中生有、万象更新 [root@Gin ~]# touch Kin //创建一个名为Kin的文件在当前目录 [root@Gin ~]# ls a anaconda-ks.cfg Gin Kin stat //显示文件或文件系统的状态 [root@Gin ~]# stat Gin //显示Gin文件的状态 File: Gin Size: 1478 Blocks: 8 IO Block: 4096 regular fileDevice: fd00h/64768d Inode: 102019973 Links: 2Access: (0600/-rw-------) Uid: ( 0/ root) Gid: ( 0/ root)Context: system_u:object_r:admin_home_t:s0Access: 2022-06-29 15:52:00.023714873 +0800Modify: 2022-06-28 16:37:59.277637569 +0800Change: 2022-06-29 15:54:07.100724757 +0800 Birth: - rm //删除文件,删除命令默认会提示是否需要删除, \ [root@Gin ~]# rm -r a //删除a目录rm: descend into directory 'a'? yrm: descend into directory 'a/b'? yrm: descend into directory 'a/b/kin'? yrm: remove directory 'a/b/kin/555'? yrm: remove directory 'a/b/kin/1205'? yrm: remove directory 'a/b/kin'? yrm: remove directory 'a/b/Gin'? yrm: remove directory 'a/b'? yrm: remove directory 'a/c'? yrm: descend into directory 'a/d'? yrm: remove directory 'a/d/{999}'? yrm: remove directory 'a/d'? yrm: remove directory 'a'? y[root@Gin ~]# //如果要使用命令本身可以在命令前加一个\,如\rm,这样删除就不会有提示了 -r //递归删除,删除目录时必须使用此选项 -f //强制删除,不询问 [root@Gin ~]# rm -rf gin //删除gin目录 [root@Gin ~]# cp //复制文件,一个文件到一个文件,多个文件到一个目录 -a //归档复制,常用于备份 [root@Gin ~]# cp -a Rin /opt/ //使用归档复制将Rin复制到/opt目录下 [root@Gin ~]# ls /opt/ anaconda-ks.cfg kin Kin Rin -r //递归拷贝,拷贝目录时必须使用此选项 [root@Gin ~]# cp -r a /opt/ //使用递归拷贝将a目录复制到/opt目录下 [root@Gin ~]# ls /opt/ a anaconda-ks.cfg kin Kin Rin -p //拷贝时保留原权限 [root@Gin ~]# cp -p LL /opt/ //使用拷贝将LL文件复制到/opt目录下 [root@Gin ~]# ls /opt/ a anaconda-ks.cfg kin Kin LL Rin mv //移动文件 [root@Gin ~]# mv Kin /opt/ //将Kin文件移动到/opt中 [root@Gin ~]# ls /opt/ anaconda-ks.cfg kin Kin [root@Gin ~]# mv Gin Rin //将Gin改名成为Rin [root@Gin ~]# ls anaconda-ks.cfg Rin install //复制文件并且设置属性 -m MODE -o OWNER -g GROUP [root@Gin ~]# install Gin -g admin /opt/ //将Gin复制到/opt目录下且改变他的组 [root@Gin ~]# ls -l /opt/Gin -rwxr-xr-x. 1 root admin 1478 Jun 29 18:59 /opt/Gin