您的位置:首页 > 运维架构 > Linux

Linux常用命令 之 目录&文件

2018-04-09 08:52 302 查看

目录操作

查看

ll:查看当前目录下的内容

ll -a:查看当前目录下的内容,包括隐藏

ll -h:查看当前目录内容,并显示对应文件的大小

cd/cd ~:切换到当前用户目录下

alias ll=’ls -l’:alias 重命名命令,然后将次命令加入到

创建

mkdir aaa:创建aaa文件夹

mkdir -p aaa/bbb:递归创建目录

删除

rm -rf *:强制删除当前目录下所有内容

修改目录或文件权限

0:没有权限,1:执行或切换权限,2:写入权限,4:读权限

u:拥有者,g:所在组,o:其他组

r:可读权限,w:可写权限,x:可执行权限

r: 对文件来说,是可读取内容; 对文件夹来说,是可以ls

w: 对文件来说,是可修改文件的内容;对文件夹来说,是可以在其中创建或者删除子节点

x: 对文件来说,是能否运行这个文件;对文件夹来说,是能否cd进入这个目录

chmod -R 777 aaa/:修改aaa文件夹及其里面所有的文件的权限为可读可写可执行

chmod u=rwx,g=rx,o=rx a.java:分别对 u,g,o 附加权限

chmod u+rwx,g+rx,o-r a.java:分别对 u,g,o 加权限或者减权限

chmod +r/-w a.java:对a.java的 u,g,o 都设置 加读权限/减写权限

chmod 000 a.java:取消a.java的所有权限

chown root:root a.sh:只能root使用chown命令,修改文件的拥有者

文件操作

创建&修改

touch a.txt/vim a.txt:创建a.txt

echo “hello word” > a.txt:将字符串覆盖到a.txt

echo “hello word” >> a.txt:将字符串追加到a.txt

mv test.sql /tmp:将test.sql移动到/tmp目录下

mv a.txt b.txt:将a.txt改名为b.txt

查看文件

cat a.txt:查看文件内容

more a.txt:分页查看,下一页-空格,上一页-b,退出-q

less a.txt:分页查看,下一页:空格,上一页:b,退出:q,上一行:↑,下一行:↓, 搜索关键字:/keyword,跳至末尾:G,跳至首行:gg

head -10 /etc/profile:查看profile文件的头10行

grep “java” a.txt b.txt:查找java在a.txt和b.txt出现的行,并输出,可以不加””

grep “java” ./*.txt:在当前目录下所有以”.txt”结尾的文件中,查找”java”出现的行,并输出

grep ‘^java’ ./*.txt:在当前目录下所有以”.txt”结尾的文件中,查找以”java”开头出现的行,并输出

grep ‘java$’ ./*.txt:在当前目录下所有以”.txt”结尾的文件中,查找以”java”结尾出现的行,并输出

grep -v “java” a.txt b.txt:查找不匹配java在a.txt和b.txt出现的行,并输出,可以不加””

grep -c “java” a.txt b.txt:计算”java”在a.txt和b.txt出现的次数,可以不加””

grep -n “java” a.txt b.txt:查找”java”在a.txt和b.txt出现的行号,可以不加””

grep -rn “java” ./ :递归查找当前文件夹下出现”java”出现的行和行号,并输出,可以不加””

命令 | grep 关键字:从命令中搜索关于关键字的信息

查找文件

find / -name “java*”:从根目录下查找java开头的文件,”*.txt”:查找以txt结尾的文件

find / -name “java*” -ls:从根目录下查找java开头的文件,并列出详情信息

find . -type f -name “*.txt” –delete:删除当前目录下以”.txt”结尾的文件

find / -type f -size +1G:从根目录下查找大于1g的文件,”-1G/1G”:小于1g/等于1g

find . -type f atime -7/mtime -7/ctime -7:搜索当前目录下7天内 被访问/被修改/变化 过的文件

find ./ -user hadoop -type f/d -ls:查找当前目录下,用户为hadoop的 文件/文件夹

find / -perm -777 -type f/d -ls:查找当前目录下,权限为777的 文件/文件夹

动态查看

tail -f catalina.out:动态查看日志,小f:追踪文件inode号

tail -F catalina.out:动态查看日志,大F:追踪文件名

tail -f -n 10 catalina.out:动态查看日志的最后10行

复制文件

cp ./a.txt /tmp:将当前目录下的a.txt复制到/tmp

cp ifcfg-lo ./ifcfg-eth0:拷贝文件并重命名

cp -r /usr/local /tmp:将/usr/local下的内容复制到/tmp下,复制文件夹用“-r”

scp id_rsa.pub root@101.200.203.56:/root/.ssh:将本地id_rsa.pub远程复制到/root/.ssh下

scp -r redis-3.0.0 root@101.200.203.56:/usr/local/:复制文件夹用“-r”

scp root@101.200.203.56:/tmp/a.txt /Users/anson/Downloads/:将a.txt远程复制到本地

scp -r root@101.200.203.56:/tmp /Users/anson/Downloads/:复制文件夹用“-r”

压缩

jar:jar -cvfM0 xxx.jar ./ 把当前目录下所有文件打包成xxx.jar

war:jar -xvf xxx.war /yyy 把yyy文件夹下的文件打包成xxx.war

zip:zip -r xxx.zip ./* 把当前目录下的文件打成xxx.zip

gz:gzip xxx 把文件压缩成xxx.gz

解压

jar:jar -xvf xxx.jar

war:jar -xvf xxx.war -C 指定的目录

zip:unzip xxx.zip

tar.gz:tar -zxvf xxx.tar.gz

gz:gunzip xxx.gz / gzip -d xxx.gz

打包&压缩&解压

打包:tar -cvf test.tar 1.txt 2.txt:把1.txt 2.txt打包到test.tar中

追加:tar -rvf test.tar 3.txt:把3.txt追加到test.tar中

解包:tar -xvf test.tar

打包并压缩:tar -zcvf test.tar.gz aaa/ 将aaa目录下打包并压缩

解包并解压缩:tar -zxvf test.tar.gz

指定目录:tar -zxvf test.tar.gz -C /usr/local

查看jar包内容:jar vtf beebee-eureka-server.jar

Windows复制文件到Linux

https://my.oschina.net/u/1590519/blog/342577

安装pscp.exe

pscp 本地文件 root@远程ip:/root

Linux或Mac 复制文件到 Win(前提让Win知识ssh协议)

http://blog.csdn.net/jyf0412/article/details/36866041

netstat -ano | findstr 22:查看Windows的22端口有没有开放

高级文本处理命令

1. cut
echo $PATH | cut -d ':' -f 2:取path变量的第2个值
echo $PATH | cut -d ':' -f 2,5:取path变量的第2个值和第5个值
echo $PATH | cut -d ':' -f 5-:取path变量的第5个值到最后一个的值
echo $PATH | cut -d ':' -f 1-3:取path变量的第1个值到第3个值
echo $PATH | cut -d ':' -f 1-3,5:取path变量的第1个值到第3个值和第5个值
cat /etc/passwd | cut -d ':' -f 1,7:只显示/etc/passwd的用户和shell
2. sed
sed '2d' test.txt:删除test.txt文件的第二行。
sed '2,$d' test.txt:删除test.txt文件的第二行到末尾所有行。
sed '$d' test.txt:删除test.txt文件的最后一行。
sed '/test/' d test.txt:删除test.txt文件所有包含test的行。
sed '2d' test.txt > test.txt:删除test.txt文件的第二行,因为没有保存到文件中,所有要">"重定向,进行保存
sed 's/test/mytest/g' test.txt:把所有的test替换为mytest。如果没有g标记,则只替换每行的第一个test
sed -n 's/^test/mytest/p' test.txt:(-n)选项和p标志一起使用表示只打印那些发生替换的行。也就是说,如果某一行开头的test被替换成mytest,就打印它。
sed 's/^192.168.0.1/&localhost/' test.txt:&符号表示追加一个串到找到的串后。所有以192.168.0.1开头的行都会被替换成它自已加 localhost,变成192.168.0.1localhost。
3. awk
cat /etc/passwd | awk -F ':' '{print $1}':默认以空格作为分隔符,需要加"-F"指定,打印/etc/passwd的第一列
cat /etc/passwd | awk -F ':' '{print $1"\t"$7}':打印/etc/passwd的第一列和第7列,并以tab键分隔
cat /etc/passwd | awk -F ':' 'BEGIN {print "name,shell"} {print $1","$7} END {print "ccc,/aaa/bbb"}':name和shell为表头,打印第一列和第七列,最后随便追加一行
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux