目录操作
1. 查看
ll:查看当前目录下的内容
ll -a:查看当前目录下的内容,包括隐藏
ll -h:查看当前目录内容,并显示对应文件的大小
cd/cd ~:切换到当前用户目录下
alias ll='ls -l':alias 重命名命令,然后将次命令加入到
2. 创建
mkdir aaa:创建aaa文件夹
mkdir -p aaa/bbb:递归创建目录
3. 删除
rm -rf *:强制删除当前目录下所有内容
4. 修改目录或文件权限
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命令,修改文件的拥有者
文件操作
1. 创建&修改
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
2. 查看文件
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 关键字:从命令中搜索关于关键字的信息
3. 查找文件
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的 文件/文件夹
4. 动态查看
tail -f catalina.out:动态查看日志,小f:追踪文件inode号
tail -F catalina.out:动态查看日志,大F:追踪文件名
tail -f -n 10 catalina.out:动态查看日志的最后10行
5. 复制文件
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”
6. 压缩
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
7. 解压
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
8. 打包&压缩&解压
打包: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
9. Windows复制文件到Linux
https://my.oschina.net/u/1590519/blog/342577
安装pscp.exe
pscp 本地文件 root@远程ip:/root
10. Linux或Mac 复制文件到 Win(前提让Win知识ssh协议)
http://blog.csdn.net/jyf0412/article/details/36866041
netstat -ano | findstr 22:查看Windows的22端口有没有开放
11. 高级文本处理命令
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为表头,打印第一列和第七列,最后随便追加一行