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进行编辑)
 
技术分享图片
  1. 首先会进入“一般模式”,此模式只接受各种命令快捷键,不能编辑文件内容
  2. 首先按“i”键,就会从一般模式进入编辑模式,此模式下,敲入的都是文件内容(这里按i键,可以在光标定位的位置输入,进行插入;按a,会在光标所在位置的后一个字符善后进行操作;按o,会在光标所在位置下面重新插入一个新的空白行,且光标在该行的第一个上)
  3. 编辑完成之后,按Esc退出编辑模式,回到一般模式
  4. 再按:进入的“底行命令模式”,输入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命令的主要内容,如果未能解决你的问题,请参考以下文章

linux查看历史命令记录及时间(linux查看历史命令执行时间)

linux查看路径命令

linux重启网络服务命令是啥(linux网络重启的命令)

Linux 命令大全

linux 好用的命令

linux命令转换成windows命令