LInux命令
Posted 小文叔
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LInux命令相关的知识,希望对你有一定的参考价值。
一、日常命令
命令后--help,可以查出该命令的用法以及参数。
pwd:查看当前所在目录的路径
date:查看当前时间
date +%Y-%m-%d
date -s “2018-1-1”设置日期为2018-1-1
who
可以显示当前登录的用户以及登录形式
关机/重启(必须是root用户)
- shutdown -h now ##立刻关机
- shutdown -h +10 ##10min以后关机
- shutdown -h 12:00:00 #12点整的时候关机
- halt ##等于立刻关机
重启
- shutdown -r now
- reboot #等于立刻重启
清屏
clear ##或者快捷键 ctrl+l
退出当前进程
ctrl+c 或者用q
挂起当前流程
- ctrl+z ##进程hi挂起在后台
- bg jonid ##让进程在后台继续执行(jobid为运行程序的id)
- fg jonid ##让进程回到前台(jobid为运行程序的id)
echo
相当于打印内容到屏幕上
Linux定义变量,直接变量=参数即可,比如:a=1
打印参数前需要加上$符号才能显示其内容,假设直接不加,还是会显示参数名
二、目录操作
1、查看目录信息
ls /
|
查看根目录下的子节点(文件夹和文件)信息
|
ls .
|
查看当前目录下信息
|
ls ../
|
查看上一级的目录信息
|
ls -l .
|
列出当前目录下文件的详细信息
|
ls -l
|
列出当前目录下文件的详细信息
|
ls -al
|
-a是显示隐藏文件 -l是以更详细的列表形式显示
|
ls -l -h
|
列出的文件大小会以K显示,而不是字节
|
注:
d:directory:代表一个目录;-代表文件;l代表链接,是快捷方式
root root 文件属于root,属于用户组root
ls -l -h或者写成ls -lh参数可以放在一起写,-h是显示文件大小以Kb的形式
ls -lha上一步的基础上,再显示隐藏文件,前面带点的就是隐藏的
2、切换工作目录
- cd /home/gzw ## 切换到用户的主目录
- cd ~ ## 切换到用户主目录
- cd - ## 切换到上一步的目录
- cd ## 切换到用户的主目录
3、创建文件夹
- mkdir /aaa ## 这是绝对路径的写法的写法,在根目录下建立一个aaa
- mkdir /aaa/bbb ## 这是在aaa文件夹内新建一个bbb文件夹
- mkdir aaa ## 这是相对路径的写法
- mkdir -p aaa/bb/ccc ##假设aaa,bbb都不存在,就去建立ccc,前面加-p,会同时将aaa,bbb,ccc建立起来,遵循刚刚写的结构
4、删除文件夹
- rmdir aaa ## 只能删除空白的目录
- rm -r aaa ## 可以将aaa整个文件夹和子节点全部删除,包括aaa
- rm -rf aaa ## 强制删除 aaa
5、移动或修改文件夹
- mv aaa angelababy ##将aaa文件夹移动到 angelababy文件夹内
- mv 本质上是移动
- mv install.log aaa/ ## 将当前目录下的install.log 移动到aaa文件夹中去
- mv install.log aaa/ notinstall.log ## 将instal.log移动到aaa下,且改名为notinstall.log
- mv a b/c ##将文件夹a移动到文件夹b内并且将文件夹a的名字改为c
- mv mubby/ mybaby ## 将mubaby改名为mybany
rename
可以用来批量更改文件名字
比如很多文件,用 rename .txt .txt.bak 意思是将.txt结尾的文件改为.txt.bak *
三、文件操作
一、创建文件
1、
touch somefile.1 ##创建一个新的空文件,大小为0(但是未见后缀跟文件的类型无关,尽管是avi格式,也可以放文本)
另一种方式:利用“>”重定向的功能,将一条指令的输出结果写入到一个文件内,会覆盖源文件内容,如果指定的文件不存在,则会创建出来
例如:echo "I love you !" > 1.txt ## 将I love you ! 重定向到1.txt文件内
那么特殊情况:ll > 2.txt ##这样会把ll这个命令的输出内容放到2.txt内
追加:echo "you love me" >> 1.txt ##在内容的原有基础之上追加这些文本
二、vi文本编辑器
(相当于window的文本编辑器,notepad++)
vi 1.txt ##修改1.txt(如果1.txt不存在的话,则会先创建一个空的1.txt进行编辑)
- 首先会进入“一般模式”,此模式只接受各种命令快捷键,不能编辑文件内容
- 首先按“i”键,就会从一般模式进入编辑模式,此模式下,敲入的都是文件内容(这里按i键,可以在光标定位的位置输入,进行插入;按a,会在光标所在位置的后一个字符善后进行操作;按o,会在光标所在位置下面重新插入一个新的空白行,且光标在该行的第一个上)
- 编辑完成之后,按Esc退出编辑模式,回到一般模式
- 再按:进入的“底行命令模式”,输入wq命令,回车即可,这样是保存且退出;按w,就是保存;但是还是在一般模式下,还可以按i进行编辑
常用快捷键
(用在一般模式下)
a
|
在光标的最后一位插入
|
A
|
在该行的最后插入
|
I
|
在该行的最前面插入
|
gg
|
直接跳到文件的首行
|
G
|
直接跳到文件的末行
|
dd
|
删除一行
|
3dd
|
删除3行
|
YY
|
复制一行
|
3YY
|
复制3行
|
p
|
粘贴
|
u
|
undo回退
|
三、查找并替换
(在底行命令模式中输入)
1、显示行号
:set nu
2、不显示行号
:set nonu
3、查找关键字
:/you ##效果:查找文件中出现的you,并定位到第一个找到的地方,按n可以定位到下一个匹配的位置(按N定位到上一个)
4、替换操作
:s/sad/bbb ##将sad替换成bbb(这种情况只能替换光标所在那一行的第一个sad为bbb)
:%s/sad/bbb ##全局替换(实际操作是会替换每一行的最前面的那个sad)
四、拷贝、删除、移动
- cp somefile.1 /home/gzw ##复制一个文件到指定的目录下
- cp somefile.2 /home/gzw/somefile2.1 ##复制一个文件到gzw下,并且命名为somefile2.1
- rm /home/gzw/somefile.1 ##删除somfile.1(会提示确定删除,要输入y)
- fm -f/home/gzw/somefile.1
- mv /home/gzw/somefile.1 ../
五、查看文件内容
- cat somefile.1 ## 一次性将文件内容全部输出(输出在控制台)
- 分页查看命令:
- more somefile.1 ## 将somefile.1输出在控制台,但是可以翻页查看,下一页按空格键,上一页按b(代表back),退出按(q)
- less somefile.1 ## 将somefile.1输出在控制台,但是可以翻页查看,下一页按空格键,上一页按b(代表back),上翻一行(↑),下翻一行(↓),且可以搜索关键字(/搜索内容)
- 跳到文件末尾:G
- 跳到文件首行:gg
- 退出less:q
六、查看日志
- tail -10 install.log ##查看文件尾部的10行
- tail +10 install.log ##查看文件第10-->最后一行
- tail -f install.log ##实时看日志的输出,追踪日志文件的信息(f追踪的是文件的唯一标识,就算文件被改了名字,也可以被追踪并输出,也就是说,将install.log改为install2.log,用这么命令依旧可以追踪到内容ll -i可以看文件的唯一标识,在文件的最前面那串)
- tail -F install.log ##实时看日志的输出,追踪日志文件的信息(F追踪的是文件名,改了就追踪不了)
- head -10 install.log ##查看文件的头10行
七、打包压缩
1、gzip 压缩
gzip a.txt ##压缩后会变成a.txt.gz,体积会缩小
2、解压
gzip -d a.txt.gz ##解压a.txt.gz成为a.txt
3、打包:将制定文件或文件夹(一堆文件变一个文件)
tar -cvf bak.tar ./aaa ##将./aaa内的内容打包成一个名字叫bak.tar的文件
tar -cvf bak.tar 1.txt 2.txt aaa/ ##将aaa文件夹内的1.txt和2.txt打包成为bak.tar,打完后的bak.tar也在aaa内
(c是创建一个包,v是显示整个打包的进度,f是要创建的那个包的名称)
tar -xvf bak.tar ##将打好的包解压
x是抽取,v显示进度,f文件名
一般来讲,tar打包之后还不够,这只是说将其打包,并未压缩,用的多的是打包成一个压缩文件,可以在上一步的基础上再用 gzip bak.tar 变成bak.tar.gz文件,那么怎么一步完成呢???
tar -zcvf bak.tar.gz 1.txt 2.txt aaa/ ##将aaa文件夹下的1.txt和2.txt打包压缩成一个bak.tar.gz文件
tar -zxvf bak.tar,gz ##将bak.tar.gz解压并且不打包,也就会变成1.txt和2.txt
解压到指定文件夹下:
tar -zxvf bak.tar.gz -C /usr ##将bak.tar.gz解压到usr文件夹内
四、查找命令
一、常用查找命令的使用
1、查找可执行的命令所在路径:
which ls
2、查找可执行的命令和帮助的位置
whereis ls(where和is中间无空格)
3、从某个文件夹开始查找文件
find /-name "gzw*"(“/”是搜索的路径;-name是按照什么搜,可以按照 -user按 所属用户搜 -perm按权限搜;“gzw*”搜的内容,*为通配符,代表以gzw为开头的文件或者文件夹)
4、查找并删除
find / -name "gzw*" -ok rm {};
find / -name "gzw*" -exec rm {};
5、显示历史命令
history ##显示之前的所有命令
或者直接按↑键
二、grep命令(搜索文件的内容)
1、基本使用-查询包含gzw的行(不用打开文件)
grep gzw /etc/passwd ##在/etc/passwd内查找有gzw的行
gzw:x:500:500:gzw:/home/gzw:/bin/bash
x是密码的占位符,500为用户id,500所属的组的id,gzw是这个用户的全名,也就是描述名称,/home/gzw是用户gzw的家目录,/bin/bash表示gzw用户所用的shell是bashshell(id从500开始才是真的用户,root除外)
grep aaa ./*.txt ##在当前目录下,所有.txt结尾的文件内找包含aaa的行
2、cut截取以:分割保留第七段
grep gzw /etc/passwd | cut -d:-f7
3、查询不包含gzw的行
grep -v gzw /etc/passwd ##-v是反选
五、文件权限操作
1、Linux文件权限的描述格式解读
r:可读;w:可写;x:可执行
drwxr-xr-x可以用二进制表示为:111 101 101 ==> 755
d:标志节点类型(d:文件夹 -:文件 l:链接)
r:可读;w:可写;x:可执行
第一组:rwx ##表示这个文件的拥有者对它的权限:可读可写可执行
第二组:r-x ##表示这个文件的所属组用户对它的权限:可读不可写可执行
第三组:r-x ##表示这个文件的其他的用户对它的权限:可读不可写可执行
2、修改文件权限
- chmod 777 1.txt ##将1.txt变为rwxrwxrwx
- chmod +x 1.txt ##拥有者、所属用户、其他用户都加一个x权限
- chmod u+rx 1.txt ##拥有者加rx权限,其他的用户不变
- chmod g+rx 1.txt ##所属用户组加rx权限,其他的用户不变
- chmod o+rx 1.txt ##其他用户加rx权限,其他的用户不变
但是注意,改的只是这个文件/文件夹的权限,假设文件夹还有文件,沃特娘的想一次性全部给改了,咋个办???
chmod -R 777 aaa ##将aaa文件夹以及文件夹内的全部文件全部改成777
以上是关于LInux命令的主要内容,如果未能解决你的问题,请参考以下文章