命令类型:
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 file
Device: fd00h/64768d Inode: 102019973 Links: 2
Access: (0600/-rw-------) Uid: ( 0/ root) Gid: ( 0/ root)
Context: system_u:object_r:admin_home_t:s0
Access: 2022-06-29 15:52:00.023714873 +0800
Modify: 2022-06-28 16:37:59.277637569 +0800
Change: 2022-06-29 15:54:07.100724757 +0800
Birth: -
rm //删除文件,删除命令默认会提示是否需要删除, \
[root@Gin ~]# rm -r a //删除a目录
rm: descend into directory 'a'? y
rm: descend into directory 'a/b'? y
rm: descend into directory 'a/b/kin'? y
rm: remove directory 'a/b/kin/555'? y
rm: remove directory 'a/b/kin/1205'? y
rm: remove directory 'a/b/kin'? y
rm: remove directory 'a/b/Gin'? y
rm: remove directory 'a/b'? y
rm: remove directory 'a/c'? y
rm: descend into directory 'a/d'? y
rm: remove directory 'a/d/{999}'? y
rm: remove directory 'a/d'? y
rm: 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