Linux命令行使用
Posted 学会思考
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux命令行使用相关的知识,希望对你有一定的参考价值。
FHS:标准文件架构规范
用好man命令
su - name 切换到用户name
su - root
chmod 777 filename
cd -:上一个工作目录
cd ~:用户的家目录
cd ~nid:q切换到nid的家目录
mkdir -p /tmp/dd/dd/d创建嵌套目录
rmdir dir:删除空目录
ls [文件名|目录名|NONE]
ls -a列出包含的隐藏文件
ls -l列出文件的详细信息
修改用户组:
chown nbcc:stu hello.sh
chown stu hello.sh
chown :nbcc hello.sh
ls -l hello.sh
列出的文件信息中;
d:目录文件
-:普通文件
c:字符文件
l:链接文件
cp -r /temp/aa ~ 拷贝目录到家目录
拷贝时存在多个同名文件处理办法:
\cp -f /temp/aa /tmp/file03 ~
cp /tmp/smple.sh ~nbcc 拷贝sample.sh到nbcc家目录
拷贝文件到目录下(并且保留拷贝前的权限-p)
cp -p /tmp/file03/sample.sh ~nbcc
mv /tmp/dd /tmp/dd1 /tmp/d2 ~移动多个目录到家目录
移动文件中覆盖同名文件;
mv -f /tmp/d2 ~
重名文件
mv ./file08 ./file01
删除命令:
rm ./file01
删除多个文件;
rm ./file01 ./file02 ./file02
删除目录:
rm -R ./dir1
直接删除目录:-f
rm -fR ./dir1
软链接
ln -s [链接指向的文件][链接名]
ln -s /tmp/hello.sh ./hello_slink
如果符号链接指向的文件被删除了,意味着链接断裂了。
硬链接、软链接
硬链接
ln [链接指向的文件][链接名]
注意:
1.不推荐创建目录硬链接
2.不推荐跨磁盘创建硬链接
3.硬链接的删除只是删除文件的名字,并不是删除文件
tar
tar -cf [打包文件名][要打包的文件/列表]
-c:创建打包文件
-f:指定打包文件名
打包多个文件:
tar -cf sample.tar /tmp/file1 /tmp/file2 /tmp/file3
列出打包里的所有文件名:
tar -tf ./sample.tar
删除打包内的文件:
tar -f ./sample.tar --delete tmp/file05
合并打包的tar文件:
tar -f ./sample.tar -A ./sample1.tar
向tar文件添加文件:
tar -f ./sample.tar -r ~/file.txt
解包文件:
tar -xf ./sample.tar -C ./sample
备注:默认解包到当前目录
-C:解包的目录
压缩文件:
gzip ./sample.tar
解压文件:
gzip -d ./sample.tar.gz
打包和压缩命令结合使用:tar和gzip
例如:
tar -czf sample.tar.gz /tmp/sample /tmp/file05
解压缩解包
tar -xzf sample.tar.gz
locate .tar 查找文件
locate是从数据库中查找:/var/lib/mlocate数据库
更新数据库:updatedb
find [查找范围][查找条件][动作]
find / -name passwd
find /bin -type l:查找符号链接文件
-type d目录文件
-type f:普通文件
-type c:字符文件
-type b:块设备文件
-type l:符号链接文件
查找三天内内容发生改变的文件
find /tmp -mtime -3 -ls
查找七天前内容发生改变的文件
find /tmp -mtime +7 -ls
查找4天前的那天目录下发生改变文件
find /tmp -mtime 4 -ls
注释:
+:表示n天之前
-:表示n天之内
n:表示前第n天
find /tmp -mmin -3 -ls :分钟
-amin -atime 文件被修改、执行时间
-cmin -ctime 文件属性被修改时间
-mmin -mtime 文件修改时间
按照大小查找;
查找目录下下于3K的文件;
find /tmp -size -3k -ls
查找比100字节大的文件
find /tmp -size +100c -ls
查找拥有者是root用户的文件
find /tmp -user root -ls
查找用户的uid为500的文件
find /tmp -uid 500 -ls
查找用户组是stu的文件
find /tmp -group stu -ls
查找用户组为gid0的文件
find /tmp -gid 0 -ls
按照用户的拥有权限查找文件
find /tmp -perm 754 -ls
find多参数查找文件:
与-a
或-o
非!
例子:
find /tmp \(-size +1k -a -size -10M -a -mmin -30 -a -type f\) -ls
查找到特定文件并删除
find /tmp \(-size +1k -a -size -10M -a -mmin -30 -a -type f\) -exec rm -rf {} \;
;在bash有特定意义,因此要用转移符
find ~\(-mmin -10 -a -type d \) -exec tar -cf {}.tar {} \;
-OK -exec (类似,会有提示信息)
查找名字为temp的文件删除不提示:
find / -name temp -exec rm {} \;
通配符:
*:任意长度的字符串(包括0长度)
?代表任意的单个字符
ls -l /bin/??sh
[c1-c2]c1-c2的字符序列
cp /tmp/file[0-9].txt ~ 拷贝文件到家目录下
[c1,c2,c3,c4,...cn]匹配中括号内字符序列中的任意单一的字符
example:
修改以下特点的文件属性:
chmod 700 /tmp/script[a,1,x].sh
{string1,string2,string3,string4,..stringn}匹配之中的某一个字符串
example:
rm -rf {script,shell}*.sh:删除开头如上的文件
!取反
打包除了[0-9]之间的任意一个字符
tar -cf file.tar /tmp/file[!0-9].txt
cat (concatenate)连接几个文件、从键盘创建文件,查看文件
查看文件
cat /var/shell.sh
查看文本文件(大文件)
less /var/shell.cpp (up,down向上下,pagedown,pageup)
head -n 20 /var/log/messages 查看文件的前20行
tail 查看文件的结尾信息
重定向:
ls -l /tmp/example/ 1> ./stdout.txt
ls -l / 1>>stdout.txt
ls -l /tmp/example/ 2> ./stdout.txt
ls -l / 2>>stderr.txt
重定向到一个文件中:错误、正确
ls -l /temp/example/file1 /tmp/example/file04 &>std.txt
忽略输出:
ls -l /tmp/example/file1 /tmp/example/file04 2>>/dev/null
输入重定向:
tr [准备要替换的字符][要替换成的字符]
tr ‘ ‘ ‘\t‘ < ./fruit.txt 将fruit.txt中的文本中空格替换为tab
sort -k [关键字字段序号][要排序的文本文件]
sort -k2 <<EOF
>1 apple
>2 pear
>3 banana
>EOF
1 apple
3 banana
2 pear
管道
grep cut head tail less more wc tr sort
grep [关键字文本] [查找的文本]
ls -al /etc | less
ls -al /etc | grep ‘ssh‘
cut
cat ~/install.log| cut -c1,2 切割的字符列序号
cat /etc/passwd | cut -f1 -d":" (数字,:分隔符)
wc:统计命令
wc /etc/passwd 统计行数和单词数
wc -l /etc/passwd 只统计文本的行数
example:
ls -al ~|cut -c1 | grep "d" | wc -l
以上是关于Linux命令行使用的主要内容,如果未能解决你的问题,请参考以下文章