https://jaywcjlove.gitee.io/linux-command/
目录文件类命令:
cd 切换目录
cd /home/nsqat/test #切换到/home/nsqat/test目录
cd #切换到当前用户的主目录
cd .. #切换到上级目录
cd - #返回上次所在的目录
pwd 显示当前目录路径
ls 显示目录内容
ls #list 显示目录内容
ls -a #all 显示隐藏文件
ls -l #long 显示目录内容的详细资料
ls -d #显示目录自身的属性,而不是目录的内容
ls -F #显示目录时,会在目录后加一个/
ls -l test* #显示以test开头的内容
ls -h #human人性化显示,以k,m来显示内容的大小
ls -i #inode,显示出inode
tree #显示目录树
du -sh 目录/ 查看指定文件夹大小
mkdir 创建目录
mkdir zj #在当前路径下创建zj目录
mkdir -p qlj/zj #qlj目录不存在,递归创建该目录
mkdir -m 711 wzj #配置目录权限,不需要看umask
rmdir 删除空目录
rm 删除文件或目录
rm -f kouwq #force,忽略不存在的内容,不会出现警告信息,删除文件
rm -i wzj #互动模式,删除前询问是否删除,删除文件
rm -r /home/nsqat/test/zj #递归删除,删除目录及其内容
mv 移动或重命名文件或目录
mv 文件名old 文件名new #移动或重命名文件
mv 文件名 目录名 #将文件移动到目标目录
mv 目录名old 目录名new #目标目录new已存在,把源目录移动到目标目录;否则改名
cp 复制文件/目录
cp 文件名source 文件名dest #复制并重命名文件
cp 文件名 目录名 #将文件复制到目标目录
cp -a 目录名soure 目录名dest #目标目录dest已存在,把源目录复制到目标目录;否则复制并改名
-a 相当于 -pdr
-p 复制文件shuxing
-r 递归复制,用于目录的复制
-d 若源文件是连接则复制连接文件属性而非文件本身
touch 创建文件/更新文件的访问、修改时间
-t 后接修改的时间
stat 文件名 显示文件的信息包括以下三个时间:
Access:执行cat less more vi vim 会修改,ls stat不会修改
Modify:vi vim 中w保存时修改,ll 显示的就是改时间
Change:vi vim 中w保存时修改,chmod chown等改变属性时也会修改
touch 一个已经存在的文件 可以修改这三个时间为系统当前时间
---------------------------------------------------------------------------------------
查看文件内容类命令:
cat 显示文本文件的内容,适合小文件
more 可翻页查看
空格 下一页
回车 下一行
less 可翻页查看(-N可以显示行号)
空格/PageDown 下一页
PageUp 上一页
回车/下箭头 下一行
上箭头 上一行
/字符串 向下查找
?字符串 向上查找
n/N 重复/反向查询
g 跳到第一行
G 跳到最后一行
p n% 跳到n%,比如 10%,也就是说比整个文件内容的10%处开始显示
v 调用vi编辑器
head -23 test.txt 查看文件的前23行
tail -23 test.txt 查看文件的最后23行
---------------------------------------------------------------------------------------
文件目录权限、所有者类命令:
chmod 修改文件、目录权限
chmod 777 jay
chmod -R 777 jay 递归设置权限
chmod ug+x,o-r jay
chmod a+rwx jay a=ugo
chmod u=rwx, go=rx jay
chown 修改文件所有者
chown kouwq jay
chown kouwq:kouwq jay
chgrp 修改文件所属组
chogrp kouwq jay
dd if=/dev/urandom of=random_file bs=32M count=2;(生成随机文件)
od -x file
hexdump -C file (display file contents in ascii, decimal, hexadecimal)
---------------------------------------------------------------------------
用户和用户组管理类命令:
groupadd group_name 创建一个新用户组
groupdel group_name 删除一个用户组
groupmod -n new_group_name old_group_name 重命名一个用户组
useradd -c "Name Surname " -g admin -d /home/user1 -s /bin/bash user1 创建一个属于 "admin" 用户组的用户
useradd user1 创建一个新用户
userdel -r user1 删除一个用户 ( '-r' 排除主目录)
usermod -c "User FTP" -g system -d /ftp/user1 -s /bin/nologin user1 修改用户属性
passwd 修改口令
passwd user1 修改一个用户的口令 (只允许root执行)
su 切换用户
---------------------------------------------------------------------------
关机、重启、注销类命令:
shutdown -h now 关闭系统(1)
shutdown -h hours:minutes & 按预定时间关闭系统
shutdown -c 取消按预定时间关闭系统
shutdown -r now 重启(1)
reboot 重启(2)
logout 注销
---------------------------------------------------------------------------
查找类命令:
which
:在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果;
type
:用于区分某个命令到底是由shell自带的,还是由shell外部的独立二进制文件提供的。如果一个命令是外部命令,那么使用-p参数,会显示该命令的路径,相当于which
命令。type
命令其实不能算查找命令;
whereis
:只能用于程序名的搜索,而且只搜索二进制文件(参数-b)、man说明文件(参数-m)和源代码文件(参数-s);
locate
:相当于find -name
,可快速查找文件;
find
:最常用和最强大的查找命令,可以用它找到任何想找的文件。
find命令配合使用exec和xargs可以使用户对所匹配到的文件执行几乎所有的命令
格式:find 要查找的路径 -type 文件类型(f文件d目录)-name 文件名(支持通配符,最好带上单引号或双引号)
-exec 要执行的文件命令(cp mv rm等) {}(指代搜索到的那些文件)\;(命令结束标志)
[root@localhost kouwq]# find . -type f -name '*.sh' -exec mv {} /root \;
[root@localhost ~]# find . -type f -name '*.sh' -exec cp {} /home/kouwq \;
[root@localhost kouwq]# find . -type f -name '*.sh' -exec rm -rf {} \;
[root@localhost kouwq]# find . -name *.orig | xargs rm
-----------------------------------------------------------------------------------------------------------------------------------------------------
grep
-E 能使用扩展正则表达式
-i 忽略字符大小写
-n 在显示符合范本样式的那一列之前,标示出该列的行号
-v 显示不包含匹配文本的所有行
-q 或 --quiet或--silent : 不显示任何信息。
-------------------------------------------------------------------------------------------
其他:
文件传输linux
scp [email protected]:/root/testfilet/* ./ |
将主机167的文件 copy到当前目录 |
取得当前脚本所在的绝对路径,不含文件名:PATH=`dirname $(readlink -f "$0")`
使用切割命令 split -d -b 50m catalina.out aa (50m为切割的日志大小,catalina.out 目标切割文件名,aa为切割后的文件名),日志是按日期由前到后切割