Linux文件目录
Linux导航工具
1、ls
查看当前目录下内容
[root@iZ2ze6xkq7xjxmfnsdw27yZ /]# ls
添加-l
参数,可以查看文件的权限、所有者、组文件大小以及时间戳
[root@iZ2ze6xkq7xjxmfnsdw27yZ /]# ls -l /var
total 68
drwxr-xr-x. 2 root root 4096 Apr 11 2018 adm
drwxr-xr-x. 5 root root 4096 Oct 8 17:14 cache
drwxr-xr-x. 2 root root 4096 Aug 8 19:41 crash
drwxr-xr-x. 4 root root 4096 Oct 8 17:20 db
...
添加-lh
参数以用户可读的格式,来显示文件大小
[root@iZ2ze6xkq7xjxmfnsdw27yZ /]# ls -lh /var
total 68K
drwxr-xr-x. 2 root root 4.0K Apr 11 2018 adm
drwxr-xr-x. 5 root root 4.0K Oct 8 17:14 cache
drwxr-xr-x. 2 root root 4.0K Aug 8 19:41 crash
drwxr-xr-x. 4 root root 4.0K Oct 8 17:20 db
drwxr-xr-x. 3 root root 4.0K Oct 8 17:14 empty
pwd
显示工作目录
[root@iZ2ze6xkq7xjxmfnsdw27yZ /]# pwd
cd
改变工作目录
[root@iZ2ze6xkq7xjxmfnsdw27yZ /]# cd /home
cat
将文件内容打印到输出
[root@iZ2ze6xkq7xjxmfnsdw27yZ home]# cat /etc/fstab
less
显示文件内容
[root@iZ2ze6xkq7xjxmfnsdw27yZ home]# less /etc/fstab
q键退出
Linux文件管理工具
1、touch
创建文件
[root@iZ2ze6xkq7xjxmfnsdw27yZ home]# touch mylife
2、vi
或vim
编辑文件
[root@iZ2ze6xkq7xjxmfnsdw27yZ home]# vi mylife
按下i
键进入插入模式
按下Esc键,再输入:w,及保存文件内容,:q退出
3、stat
查看文件i结点(inode)的ID
[root@iZ2ze6xkq7xjxmfnsdw27yZ home]# stat mylife
File: ‘mylife’
Size: 46 Blocks: 8 IO Block: 4096 regular file
Device: fd01h/64769d Inode: 925161 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2019-12-20 15:05:47.404889311 +0800
Modify: 2019-12-20 15:05:45.940848803 +0800
Change: 2019-12-20 15:05:45.942848859 +0800
Birth: -
4、mkdir
创建文件夹
[root@iZ2ze6xkq7xjxmfnsdw27yZ home]# mkdir myplace
5、rmdir
删除空文件夹
[root@iZ2ze6xkq7xjxmfnsdw27yZ home]# rmdir myplace
rmdir: failed to remove ‘myplace’: Directory not empty
6、rm
删除文件,循环删除文件夹内容
添加-r
,递归删除文件夹所有内容
[root@iZ2ze6xkq7xjxmfnsdw27yZ home]# rm -r myplace
rm: descend into directory ‘myplace’? y
rm: remove regular empty file ‘myplace/mylife’? y
rm: remove directory ‘myplace’? y
7、cp
拷贝文件
[root@iZ2ze6xkq7xjxmfnsdw27yZ home]# cp file1 mypalce
8、mv
移动文件
[root@iZ2ze6xkq7xjxmfnsdw27yZ mypalce]# mv file1 ..
9、 文件名通配符
*
匹配所有私服
?
匹配一个字符
10、sudo
获取文件操作权限
[root@iZ2ze6xkq7xjxmfnsdw27yZ mypalce]# sudo cat /etc/shadow
文件内搜索
替代ctrl-f的文件搜索
按下/
键可以切换到屏幕底部的文字输入区,在这里输入要搜索的内容。
journalctl
访问所有的系统日志
[root@iZ2ze6xkq7xjxmfnsdw27yZ ~]# journalctl
-- Logs begin at Tue 2019-10-08 17:26:19 CST, end at Mon 2019-12-23 15:30:01 CST. --
Oct 08 17:26:19 iZuf6h1kfgutxc3el68z2lZ systemd[1]: rsyslog.service: main process exited, code=killed, status=7/BUS
Oct 08 17:26:19 iZuf6h1kfgutxc3el68z2lZ systemd[1]: Unit rsyslog.service entered failed state.
Oct 08 17:26:19 iZuf6h1kfgutxc3el68z2lZ systemd[1]: rsyslog.service failed.
管道符号|
journalctl没有参数运行,将让你陷入大量的数据流中。可以使用|
和grep
综合使用进行过滤;
[root@iZ2ze6xkq7xjxmfnsdw27yZ ~]# journalctl | grep rsyslogd
Oct 08 17:26:19 iZuf6h1kfgutxc3el68z2lZ rsyslogd[1480]: [origin software="rsyslogd" swVersion="8.24.0-41.el7_7" x-pid="1480" x-info="http://www.rsyslog.com"] start
Oct 08 17:26:24 iZuf6h1kfgutxc3el68z2lZ rsyslogd[1480]: [origin software="rsyslogd" swVersion="8.24.0-41.el7_7" x-pid="1480" x-info="http://www.rsyslog.com"] exiting on signal 15.
Dec 18 10:56:09 iZuf6h1kfgutxc3el68z2lZ rsyslogd[829]: [origin software="rsyslogd" swVersion="8.24.0-41.el7_7" x-pid="829" x-info="http://www.rsyslog.com"] start
Dec 18 11:05:20 iZ2ze6xkq7xjxmfnsdw27yZ rsyslogd[829]: [origin software="rsyslogd" swVersion="8.24.0-41.el7_7" x-pid="829" x-info="http://www.rsyslog.com"] exiting on signal 15.
Dec 18 11:05:41 iZ2ze6xkq7xjxmfnsdw27yZ rsyslogd[833]: [origin software="rsyslogd" swVersion="8.24.0-41.el7_7" x-pid="833" x-info="http://www.rsyslog.com"] start
Dec 22 03:34:02 iZ2ze6xkq7xjxmfnsdw27yZ rsyslogd[833]: [origin software="rsyslogd" swVersion="8.24.0-41.el7_7" x-pid="833" x-info="http://www.rsyslog.com"] rsyslogd was HUPed
管道符号|
将一个命令(jourlnalctl)的输出作为下一个命令(grep)的输入
grep
过滤
-v
参数:表示查找相反的结果
df
命令显示当前挂载在Linux系统上的每个分区
-h
以可读的方式显示分区大小
[root@iZ2ze6xkq7xjxmfnsdw27yZ ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 909M 0 909M 0% /dev
tmpfs 919M 0 919M 0% /dev/shm
tmpfs 919M 416K 919M 1% /run
tmpfs 919M 0 919M 0% /sys/fs/cgroup
/dev/vda1 40G 1.9G 36G 6% /
tmpfs 184M 0 184M 0% /run/user/0
Linux进程管理
ps
命令查看运行的进程
[root@iZ2ze6xkq7xjxmfnsdw27yZ ~]# ps
PID TTY TIME CMD
28593 pts/0 00:00:00 bash
28609 pts/0 00:00:00 ps
参数-e
表示全部进行,-f
表示全格式的。
file
提供文件的内部信息
以/sbin/init为参数运行file程序,你讲看到init并不是一个真的程序,而是systemd程序的一个符号链接。
[root@iZ2ze6xkq7xjxmfnsdw27yZ ~]# file /sbin/init
/sbin/init: symbolic link to `../lib/systemd/systemd'
文件压缩
tar
命令归档文件
-c
告诉tar命令创建一个新的归档文件
-v
会列出添加到压缩文件中的所欲文件名字
-f
指向为压缩文件设定的名字
打包文件使用.
还会包括隐藏文件
[root@iZ2ze6xkq7xjxmfnsdw27yZ home]# tar cvf archivename.tar *
file1
file2
mylife
mypalce/
myplace
[root@iZ2ze6xkq7xjxmfnsdw27yZ home]# ls
archivename.tar file1 file2 mylife mypalce myplace
如果你想归档的的文件所在目录中文件比较杂,可以通过*.
后缀的方式进行筛选;
[root@iZ2ze6xkq7xjxmfnsdw27yZ home]# tar cvf archivename.tar *.mp4
gzip
压缩文件
归档时文件时,文件非常庞大这时候就需要压缩的小一些;
1、可以在归档时使用z
参数,通知gzip程序进行压缩归档文件
[root@iZ2ze6xkq7xjxmfnsdw27yZ home]# tar czvf archiename.tar.gz *
archivename.tar
file1
file2
mylife
mypalce/
myplace
[root@iZ2ze6xkq7xjxmfnsdw27yZ home]# ls
archiename.tar.gz archivename.tar file1 file2 mylife mypalce myplace
2、压缩指定文件
[root@iZ2ze6xkq7xjxmfnsdw27yZ home]# gzip file1
[root@iZ2ze6xkq7xjxmfnsdw27yZ home]# ls
archiename.tar.gz archivename.tar file1.gz file2 mylife mypalce myplace
split
命令用于将一个文件分割成数个。
- -<行数> : 指定每多少行切成一个小文件
- -b<字节> : 指定每多少字节切成一个小文件
- –help : 在线帮助
- –version : 显示版本信息
- -C<字节> : 与参数"-b"相似,但是在切 割时将尽量维持每行的完整性
- [输出文件名] : 设置切割后文件的前置文件名, split会自动在前置文件名后再加上编号
案例:将archiename.tar.gz文件分割成以10k大小的arzhiename.tar.gz.parta文件,可以跟多个文件名,超出原文件分配大小会报错。
[root@iZ2ze6xkq7xjxmfnsdw27yZ home]# split -b 10k archiename.tar.gz arzhiename.tar.gz.parta
cat
连接文件
将拆分后的文件,进行重建归档,
案例:使用cat archiename.tar.gz.part*
,随后,将输出重定向到一个名为archivename.gat.gz的新文件
[root@iZ2ze6xkq7xjxmfnsdw27yZ home]# cat archiename.tar.gz.part* > archivename.gat.gz
流式传输文件系统的归档文件
使用tar将文件归档,使用ssh将归档文件出书到远程服务器。
# tar czvf - importantstuff/ | ssh username@10.0.3.141 \ "cat > /home/username/myfiles.tar.gz"
解读: 没有在命令参数后输入归档文件的名字(这是目前为止所采用的方式),而是使用一个连接号(czvf-)。该连接号表示将数据输出到标准的输出设备。这允许将归档文件文件名的详细信息推后至该命令末尾,并告诉tar命令等待归档文件的源内容。之后,我采用管道(|)机制将这个未命名的、压缩归档文件传输至远程服务器的一个ssh登录,该服务器要求输入我的密码。接下来,双引号中的命令在该归档文件数据流上执行cat命令,该命令会将数据流的内容写入远程主机上我的home目录中的myfiles.tar.gz文件文件中。
find
指定目录下查找文件
[root@iZ2ze6xkq7xjxmfnsdw27yZ ~]# find /var/www/html/ -iname "*.mp4" -exec \ tar -rvf videos.tar {} \
- -iname标志返回大写和小写的结果
- -name 表示查找区分大小写的结果
- { } 字段告诉find命令,对每个查找文件执行tar命令
chmod
修改文件读写权限
# chmod o-r /bin/zcat
# chmod g+w /bin/zcat
解读:该示例取消了其他用户(o)读文件的权限,并为组用户(g)增加了写操作的权限。文件所有者将会被表示为u(即user)
chown
修改文件的所有者
# chown runoob:runoobgroup file.text
解读: 该示例将文件file.text 的拥有者设为runoob,群里使用者为runoobgroup
创建tempdir目录, &&
字符表示,仅当第一个命令执行成功时才会执行第二个命令。
[root@iZ2ze6xkq7xjxmfnsdw27yZ home]# mkdir tempdir && cd tempdir
[root@iZ2ze6xkq7xjxmfnsdw27yZ tempdir]# touch file1
[root@iZ2ze6xkq7xjxmfnsdw27yZ tempdir]# touch file2
[root@iZ2ze6xkq7xjxmfnsdw27yZ tempdir]# touch file3
[root@iZ2ze6xkq7xjxmfnsdw27yZ tempdir]# ls -l
total 0
-rw-r--r-- 1 root root 0 Dec 27 16:04 file1
-rw-r--r-- 1 root root 0 Dec 27 16:04 file2
-rw-r--r-- 1 root root 0 Dec 27 16:04 file3
useradd
命令用于建立用户帐号。chown
更改file3的所有者权限。
[root@iZ2ze6xkq7xjxmfnsdw27yZ tempdir]# useradd newuser
[root@iZ2ze6xkq7xjxmfnsdw27yZ tempdir]# chown newuser:newuser file3
[root@iZ2ze6xkq7xjxmfnsdw27yZ tempdir]# ls -l
total 0
-rw-r--r-- 1 root root 0 Dec 27 16:04 file1
-rw-r--r-- 1 root root 0 Dec 27 16:04 file2
-rw-r--r-- 1 newuser newuser 0 Dec 27 16:04 file3
dd
命令用于读取、转换并输出数据
dd可从标准输入或文件中读取数据,根据指定的格式类转换数据,再输出到文件、设备或标准输出。
命令语法: if=输入文件,同时,of=输出文件
# dd if=/dev/sda of=/dev/sdb
# dd if=/dev/sda of=/home/username/sdadisk.img
bs
参数设置每次传输的字节大小
# dd if=/dev/sda2 of=/home/username/partition2.img bs=4096
使用dd擦除硬盘
示例: 该命令将花费一些时间在/dev/sda1分区的每一个角落和缝隙写入数百万个0,以防止当你的电脑被入侵时,防止坏人更难获取你的旧数据。
# dd if=/dev/zero of=/dev/sda1
还有更好的方法。将/dev/urandom文件作为源文件,你可以将随机字符写入整个硬盘:
# dd if=/dev/urandom of=/dev/sda1
rsync
命令远程(本地)同步文件
使用ssh命令在要存放文件副本的远程服务器上创建一个目录。
# ssh username@10.0.3.141 "mkdir syncdirectory"
# rsync -av * username@10.0.3.141:syncdirectory
冒号(:)后是指定的远程目标和目录。
添加用户
新增系统用户
# adduser elasticsearch
创建用户密码,需要输入两次
# passwd elasticsearch
将对应的文件夹权限赋给该用户
# chown -R elasticsearch elasticsearch-6.0.0
切换至elasticsearch用户
# su elasticsearch