LINUX基础命令

一.Linux常用基础命令

1.tree命令:以树状形式查看指定目录内容(只能查看目录内容,不能查看文件内容)
tree --以树形结构显示当前目录下的文件信息
tree 目录 --树形结构显示指定目录下的文件信息

复制代码
2.clear :清屏操作
3.ls :查看当前文件夹下的内容
#1)使用方法
ls--显示当前目录下文件信息
ls 目录或文件名 --显示指定目录下文件信息
#2)相关参数
-a:显示指定目录下所有子目录与文件,包含隐藏文件
-R:递归方式列出所有目录中的内容
-h:配合-l以人性的方式显示文件大小
-l:以列表方式显示文件的详细信息
#3)文件类型(根据第一个字符判断)
-: 普通文件
d : 目录
l : 符号链接,相当于windows中的快捷方式
s : 套接字
p : 管道
b : 块设备
c : 字符设备
#4)用户的操作权限(2-10个字符)
其他人对文件的操作权限(8,9,10个字符)
文件所有者对文件的操作权限(2,3,4个字符)
文件所属组用户对文件的操作权限(5,6,7个字符)
#5)参数之间结合使用:
ls -la:列出当前目录下所有文件的相关信息,包括隐藏文件
ls-ltr:列出当前目录下的文件,按照时间逆向排序
#6)通配符
*:表示0个或多个字符
?:表示任一字符
[a-z]:表示a-zde任一字符,若是0-9表示任一数字字符
[abcd]:表示a|b|c|d任一字母

复制代码
4.cd 切换目录,命令使用方式:cd+路径

# 1)切换到家目录 
cd
cd ~
cd /home
cd $HOME
# 2)回到上次目录
cd -

复制代码
5.pwd:查看用户当前所处的工作目录
6.which:显示命令所在的目录
7.touch:如果文件存在,更新文件的最后修改时间,如果文件不存在,创建新文件(touch文件名)
8.mkdir:创建文件夹(mkdir -p aa/bb/cc 创建多级目录)
9.rmdir:只能删除空文件夹
10.rm:删除文件

-r 删除目录名 
-i 提示用户是否删除文件或目录
-f强制删除()以此删除的文件或目录不会放入回收站中,数据不易恢复

复制代码
11.cp源目录或文件 目录或文件(若有目录拷贝需要用-r 参数; 用-a参数,可以保留被拷贝文件的一些属性信息 )

cp  要拷贝的文件(file1) file(不存在);   创建file, 将file1中的内容拷贝到file
cp file1 file(存在); file1 覆盖 file
cp file dir(存在);拷贝file 到 dir 目录
cp - r dir(存在) dir1(存在); 将dir (包含)目录拷贝到dir1目录中
cp - r dir (存在) dir1(不存在); 创建dir1, 将dir (不包含)中的内容拷贝到dir1中

复制代码
12.mv改名或者移动文件(mv file1 file2)

#1).改名
mv file(存在) file1(不存在)
mv dir(存在) dir1(不存在)
mv file(存在) file2(存在):file文件覆盖file2文件,file 改名为file2
#2).移动
mv file(文件) dir(存在的目录):将file 文件移动到dir中
mv fir(目录存在) dir1(目录存在):将dir移动到dir1中,dir就会作为dir1的子目录而存在

复制代码
13.cat(查看):将文件内容一次性输出到终端,使用方式 cat 文件名,缺点:终端显示的内容有限,如果文件太长无法全部显示
14.more:将文件内容显示到终端,但是只能一直向下浏览,不能回退,使用方式 more 文件名

显示下一行:回车
显示下一页:空格
退出:q(ctrl+c)

复制代码
15.less :文件内容分页显示到终端,可以自由上下浏览。使用方式:less 文件名

显示下一行:回车、ctrl+p、键盘向下键
显示上一行:ctrl+n、键盘向上键
显示下一页:空格、PageDown
显示上一页:PageUp
退出:q

复制代码
16.head:从文件头部开始查看前n行的内容

#使用方式  如果没有指定行数,默认显示前10行
head -n[行数] 文件名

复制代码
17.tail:从文件尾部向上查看最后n行的内容

#使用方式  如果没有指定行数,默认显示最后10行内容
tail -n[行数] 文件名

复制代码
18.重定向

# 文件存在覆盖
ls -l > text.log 2>&1
# 文件存在,在末尾追加
ls -l >> test.log 2>&1

复制代码
19.管道:一个命令的输出可以通过管道作为另一个管道的输入(参数)
20.软连接

1) ln -s 文件名 快捷方式的名字
2) 目录也可以创建软连接
3) 注意事项
       <1>ln创建软连接要用绝对路径,因为如果不使用绝对路径,一旦这个连接文件发生位置变动,就不能找到那个文件了
       <2>软连接文件的大小是:路径+文件名的总字节数

复制代码
21.硬连接

1)ln 文件名 硬连接的名字
2)本质:不同文件名所在的inode节点是相同的,相同的inode节点指向了相同的数据块,所以他们的文件内容是一样的,文件内容会同步
3)注意事项
        <1>不能建在目录上
        <2>对绝对路径没有要求
        <3>不能跨文件系统
4)应用场景
        <1>可以起到同步的作用(修改file的内容,会在其余三个硬连接文件上同步)
        <2>可以起到保护文件的作用(删除文件的时候,只要硬连接计数比不为0,不会真正删除)

复制代码
22.wc:显示文件行数,字节,单词数

1) wc -l file 显示文件的总行数
2) wc -c file 显示文件的总字节数
3) wc -w file 显示文件的总单词数
4) wc file 显示文件的总行数,单词数和总字节数 

复制代码
23.whoami:显示当前登录的用户名
24.who:查看当前所有登录系统的用户信息
25.shutdown | reboot | init

reboot:重启系统
shutdown -r now:重启系统,shotdown会给别的用户提示
shutdown -h now:立刻关机
shutdown -h 15:30:系统在今天的15:30会关机
shutdown -h + 10:再过十分后自动关机
init 0: 关机

复制代码
26.exit:退出当前登录的终端或者远程终端或者 su 切换的用户
27.passwd:修改用户密码
28.sudo临时获得root权限(sudo 命令--会提示用户输入当前用户的密码)
29.ssh

ssh要登录的用户名@ip, 然后提示输入密码

复制代码
30. ftp

ftp ip,然后提示输入用户名和密码,然后就登录到了远程服务器上,get是下载, put是上传文件
        例:ftp localhost-->密码--->pwd-->cd day02-->get a03.txt  (下载)
        例:ftp localhost-->密码--->pwd-->cd day02-->put 23.txt  (上传)  

复制代码
31.scp:远程拷贝文件,若拷贝目录需要 -r 参数

1) scp -r mytest@ip:/home/mytest/.... 本地目录
        例: scp python@localhost:/home/python/day02/a03.txt ./
2) scp -r filename 远程机器用户@ip:路径
          例:scp 23.txt python@localhost:/home/python/day02/

复制代码

二.用户权限、用户、用户组

1.chmod 修改文件权限

1) 文字设定法
命令:chmod [who] [+|-|=] [mode] 文件名
操作对象【who】
            u -- 用户(user)
            g -- 同组用户(group)
            o -- 其他用户(other)
            a -- 所用用户(all)【默认】
操作符【+-=】
            + -- 添加权限
            - -- 取消权限
            = -- 赋予给定权限并取消其他权限
权限【mode】
            r -- 读
            w -- 写
            x -- 执行
2)数字设定法
命令:chmod [+|-|=][mode] 文件名
操作符【+-=】
            + -- 添加权限
            - -- 取消权限
            = -- 赋予给定权限并取消其他权限 (默认为=)
数字表示的含义
            0 -- 没有权限(-)
            1 -- 执行权限(x)
            2 -- 写权限(w)
            4 -- 读权限(r)

复制代码
2.chown :修改文件所有者和所属组

1) 修改文件所有者用法:chown 文件所有者 文件名
        sudo chown mytest file.txt
2) 修改文件所有者和所属组用法:chown 文件所有者:文件所属组 文件名
         sudo chown mytest:mytest file.txt

复制代码
3.chgrp:修改文件所属组

使用方法:chgrp 用户组 文件或目录
        sudo chgrp mytest file.txt

复制代码
4.find

1)按文件名查询 -name
            find 路径 -name "文件名"
2)按文件类型查询 -type
            find 路径 -type 类型(普通类型用f表示而不是 -)
3) 按文件大小查询 -size
        命令:find  路径  -size  范围
            范围
                    大于:+表示 --  +100k
                    小于:-表示  --  -100k
                    等于: 不需要添加符号 --  100k
            大小
                    M 必须大写(10M)
                    k 必须小写(20k)
                    c 表示字节数
4)按文件日期
        创建日期:-ctime -n/+ n
                -n: n天以内
                +n: n天以外
        修改日期:-mtime -n/+n
        访问日期:-atime -n/+n
5) 高级查询
        find ./ -type d -exec shell命令 {} \;
                 find ./ -type d -exec ls -l {} \;
        find ./ -type d -ok shell命令 {} \;
                find ./ -type d -exec ls -l {} \;
        find ./ -type d -ok shell命令 {} \;
                find ./ -type d -ok ls -l {} \;
                        ok比较安全, 特别是在执行rm删除文件的时候.
        find ./ -type d | xargs shell命令
                find ./ -type d | xargs ls -l

复制代码
5. grep

l    grep -r(有目录) “查找的内容” 搜索的路径
                -r参数, 若是目录, 则可以递归搜索
                -n参数可以显示该查找内容所在的行号
                -i参数可以忽略大小写进行查找
                -v参数不显示含有某字符串
2    搜索当前目录下包含hello world字符串的文件
                grep -r -n "hello world" ./    ------显示行号
                grep -r -i -n "HELLO world" ./  -------忽略大小小查找
3    先使用find命令查找文件, 然后使用grep命令查找哪些文件包含某个字符串
                find . -name "*.c" | xargs grep -n "main" 
              
复制代码
6.压缩工具

l    gzip和bzip2
         不能压缩目录,只能一个一个文件进行压缩,压缩之后会使原文件消失
             gzip *    压缩当前目录下所有的文件, 但是目录不能压缩
             gunzip *  解压当前目录下所有的.gz文件
             bzip2 *  压缩当前目录下所有的文件, 但是目录不能压缩
             bunzip2 * 解压当前目录下所有的. bz2文件
2    tar工具(*****)
         相关参数说明
             z:用gzip来压缩/解压缩文件
             j:用bzip2来压缩/解压缩文件
             c:create, 创建新的压缩文件, 与x互斥使用
             x:从压缩文件中释放文件, 与c互斥使用
             v:详细报告tar处理的文件信息
             f:指定压缩文件的名字
             t: 查看压缩包中有哪些文件
3    压缩:
         tar cvf 压缩包名字.tar 原材料[要打包压缩的文件或目录]
         tar zcvf 压缩包名字.tar.gz 原材料[要打包压缩的文件或目录]
         tar jcvf 压缩包名字.tar.bz2 原材料[要打包压缩的文件或目录]
4    解压缩:
         tar  xvf  已有的压缩包(test.tar.gz)tar
         tar  zxvf  已有的压缩包(test.tar.gz)
         tar  jxvf  已有的压缩包(test.tar.bz2)
         解压到指定目录:添加参数 -C(大写)
             tar zxvf test.tar.gz -C 解压目录(./mytest)
5    查看压缩包中有哪些文件
         tar -tvf test.tar        
6    zip工具
         压缩:zip -r 压缩包名 要压缩的文件(含文件或目录)
             压缩目录需要使用参数-r
             使用该命令不需要指定压缩包后缀
            zip -r xxx file dir ---生成xxx.zip文件
         解压缩:unzip压缩包名
             解压缩到指定目录:添加参数 –d 解压目录
                 unzip xxx.zip -d /home/itcast/test/day1
            注意:解压目录若不存在则会创建.

复制代码
7.软件的安装卸载

1.在线安装
         软件安装:sudo apt-get install 软件名
         软件卸载:sudo apt-get remove 软件名
         更新软件列表:sudo apt-get update
         清理安装包:sudo apt-get clean
             清理的是缓存路径:/var/cache/apt/archives
2 软件包安装
         在Ubuntu系统下必须有deb格式的安装包
         软件安装
             sudo dpkg -i xxx.deb
         软件卸载
             sudo dpkg –r 软件名

复制代码
8.vim

1). 三种基本工作模式:命令模式、文本输入模式、末行模式

2). 命令模式:用户按下ESC键, 就可以使vi进入命令模式下

  • 保存退出
快捷键操作
ZZ保存退出
  • 代码格式化
快捷键操作
gg=G代码格式化
  • 光标移动
快捷键操作
h光标左移
j光标下移
k光标上移
l光标右移
M移动光标到中间行
gg光标移动到文件开头
G/L光标移动到文件末尾的行首
O光标移到行首
$光标移到行尾
nG行跳转,例12G,跳到12行处
  • 删除命令
快捷键操作
x删除光标后一个字符,相当于Del
X删除光标前一个字符,相当于Backspace
dw删除光标开始位置的字,包含光标所在字符
D[d$]删除光标后本行所有内容,包含光标所在字符
dd删除光标所在行(本质其实是剪切)
ndd从光标当前行向下删除指定的行数,如15dd
v/ctrl+v使用h、j、k、l移动选择内容,然后按d删除其中ctrl+v是列模式,v为非列模式
  • 撤销和反撤销命令
快捷键操作
u一步一步撤销,相当于word文档ctrl+z
ctrl-r反撤销,相当于word文档的ctrl+y
  • 复制粘贴
快捷键操作
yy复制当前行
nyy复制n行,如10yy
p在光标所在位置向下新开辟一行,粘贴
P在光标所在位置向上新开辟一行,粘贴
剪切操作按dd或者ndd删除,将删除的行保存到剪贴板中,然后按p/P就可以粘贴了
  • 可视模式
快捷键操作
v/ctrl+v使用h、j、k、l移动选择内容;使用d删除 使用y赋值 使用p粘贴到光标的后面 使用P粘贴到光标的前面
  • 替换操作
快捷键操作
r替换当前字符
R替换当前行光标后的字符
  • 文本移动
快捷键操作
>>文本行右移
<<文本行左移动
  • 查找命令
快捷键操作
//xxxx, 从光标所在位置开始搜索,按n向下搜索,按N向上搜索
?xxxx, 从光标所在的到位置开始搜索,按n向上搜索,按N向下搜索

3). 文本输入模式:从命令模式切换到文本输入模式模式只需输入如下命令:

快捷键操作
i在光标前插入
a在光标后插入
I在光标所在行的行首插入
A在光标所在行的行尾插入
o在光标所在的行的下面新创建一行,行首插入
O在光标所在的行的上面新创建一行,行首插入
s删除光标后边的字符,从光标当前位置插入
S删除光标所在当前行,从行首插入
按列模式插入先按ctrl+v进入列模式,按hjkl移动选定某列,按I或者shift+i 向前插入,然后插入字符,最后按两次esc

4). 末行模式:从命令模式切换的末行模式,输入冒号(:)

  • 保存退出
快捷键操作
q退出
q!强制退出,不保存修改内容
w保存修改内容,不退出
wq保存并退出
x相当与wq
  • 替换操作

下面表格中old表示原字符串,new表示新字符串

快捷键操作
:s/old/new/光标所在行的第一个old替换为new
:s/old/new/g光标所在行的所有old替换为new
:m, ns/old/new/g将第m行至第n行之间的old全部替换成new
:%s/old/new/g当前文件的所有old替换为new
:1, $s/old/new/g当前文件爱你的所有old替换为new
:%s/old/new/gc同上,但是每次替换需要用户确认
  • 快速翻屏
快捷键操作
ctr+u向上翻半屏
ctrl+d向下翻半屏
ctrl+f向上翻一屏
ctrl+b向后翻一屏

5). 分屏:在末行模式下执行shell命令,!shell命令 按下两次esc可以回到命令模式;从末行模式切换回命令模式,按两次ESC,退格(backspace)或者回车键 * 在打开文件之后分屏

快捷键操作
sp当前文件水平分屏
vsp当前文件垂直分屏
sp 文件名当前文件和另一个文件水平分屏
vsp 文件名当前文件和另一个文件垂直分屏
ctrl-w-w在多个窗口切换光标
wall/wqall/xall/qall/qall!保存/保存退出/保存退出/退出/强制退出分屏窗口
  • 在打开文件之前分屏:
分屏: vim -on file1 file2...
垂直分屏: vim -On file1 file2 ...
注意 : n可以省略,有几个文件就分即屏

复制代码

6).vim的配置文件

用户级别配置文件
    ~/.vimrc, 修改用户级别的配置文件只会影响当前用户, 不会影响其他的用户.
    例如: 在用户的家目录下的.vimrc文件中添加
        set tabstop=4  ----设置缩进4个空格
        set nu        ----设置行号
        set shiftwidth=4  ---设置gg=G缩进4个空格, 默认是缩进8个空格
系统级别配置文件
    /etc/vim/vimrc, 修改了系统级别的配置文件将影响系统下的所有用户.
    说明: 由于linux是多用户操作系统, 建议只在用户级别的配置文件下进行修改, 不要影响其他用户.

复制代码
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值