Linux 学习之基本命令

一、Linux系统目录

        bin:存放二进制可执行文件

        boot:存放开机启动程序

        dev:存放设备文件:字符设备、块设备

        home:存放普通用户

        etc:用户信息和系统配置文件 passwd、group

        lib:库文件:libc.so.6

        root:管理员宿主目录(家目录)

        usr:用户资源管理目录 unix software resourse

二、Linux系统文件类型:7 / 8 种

        普通文件:-

        目录文件:d        --(diretory file)

        字符设备文件:c        --(character)

        块设备文件:b        --(block)

        软连接:l        --(link)

        管道文件:p        --(pipe)

        套接字:s        --(socket)

        未知文件。

真正的文件和伪文件:

------------------------(待查阅)

三、常用命令

1.date:显示当前系统时间

      示例:

 2.echo:

在显示器上显示一段文字,一般起到一个提示的作用;此外,也可以直接在文件中写入要写的内容。

(1)echo命令常用的两个选项:-n 和 -e

        -n:表示输出之后不换行

        -e:表示对于转义字符按对应的方式进行处理

        (如不加-e,那么在输出时转义字符会按照普通字符进行处理,不会输出正确的结果。)

      示例:

        格式:echo [-选项] " 要输出的内容"

 转义字符

定义:用一些普通字符的组合来代替一些特殊字符,由于其组合改变了原来字符所表示的含义,因此称为转义字符。

echo输出时的转义字符:

转义字符含义
\b删除前面的空格
\n换行
\t水平制表符
\v垂直制表符
\c\c后面的字符将不会输出,同一时候,输出完毕后也不会换行
\r回车符
\a输出一个警告的声音

 示例:

 (2)echo的重定向

        echo "想要的内容" > 文件名

将想要的内容覆盖到对应的文件当中去,文件当中之前的内容不复存在了,实际上是修改了源文件的内容。

        echo "想要的内容" >> 文件名        

将想要的内容追加到文件后,对文件之前的内容不修改,只进行增添,也叫追加重定向。

示例:

  (3)其他用法

        echo $SHELL  查看当前使用的shell

         (cat /etc/shells        查看当前可使用的shell)

3.pwd:查看当前所在目录

        示例:

4.cd:切换目录

        cd -  返回上一个目录

        cd ..  返回上一级目录

        cd ~  返回用户目录

        cd + 路径名   切换到指定目录下

5.list命令 

(1)ls   

         列出当前文件夹下的目录项

         示例: 

(2)ll   

        竖排显示目录项和详细信息,ls-l的缩写 

        示例:

(3)ls -l dirname 

        显示dirname中目录的详细信息  

        示例:

(4)ls -dl dirname   

        显示diename本身的详细信息 

        示例:

 (5)ls -R   

        递归查看目录

        示例:

(6)ls -Rl   

        递归显示详细信息 

         示例:

 文件权限说明

目录项详细信息:

        文件权限、硬链接计数、所有者、所属组、大小、时间、文件名/文件夹名 

文件权限

drwxr-xr-x  --> d rwx r-x r-x

d:代表文件类型,是目录文件

r:读权限(4)

w:写权限(2)

x:执行权限(1)

-:无权限(0)

从左到右:rwx、r-x、r-x   (也可以用数字表示为:0755 ,其中0表示八进制)

分别代表所有者读写执行权限、同组用户读写执行权限、其他人读写执行权限

6.which instruct

        查看instruct命令所在目录位置

        示例:

 7.目录及文件的操作

 (1)mkdir dirname  新建目录

 (2)rmdir dirname  删除空目录,非空目录删不掉

 (3)touch filename  创建名为filename的空文件

 (4)rm filename  删除文件

 (5)rm -r dirname  递归删除目录

 (6)rm -rf dirname 强制删除

 (7)mv file1 file2 location  将文件1和文件2移动到目标位置

 (8)cp filename dirname  复制文件到目录

 (9)cp filename1 filename2  复制文件1并重命名为文件2

  下面-a 和 -r 的区别在于,-a 是完全复制,文件权限、改动时间等都完全相同 

 (10)cp -a dirname1 dirname2  复制目录1及其下所有文件到目录2

 (11)cp -r dirname1 dirname2  递归复制目录1到目录2

8.查看文件内容的命令

(1)cat filename  查看文件内容

(2)tac filename  逆转查看文件内容

(3)more filename

(4)less filename

cat  读取终端,就是回显

more filename :与 cat类似,但是对于大文件查看很有优势,

                           空格翻页,回车一行,

                           用q或者Ctrl+c退出。

less filename:也和cat类似

                        空格翻页,回车一行,

                        用q或者Ctrl+c退出

(5)head -n filename  查看文件前n行,不加 -n 参数默认查看10行 

(6)tail -n filename   查看文件后n行,不加 -n 参数默认查看10行,

                                    顺序显示的,不是倒序显示,1-10查看后四行是78910

(7)tree命令,查看当前目录结构树,需要安装tree

 9.软链接和硬链接

(1)ln -s file file.s  创建一个软链接

        软链接就像Windows下的快捷方式

        Linux下的软链接行为和windows下的快捷方式差不多,但是如果用相对路径创建的软链接,在软链接移动之后就会失效,无法访问。这一点和Windows快捷方式不同,Windows快捷方式随便怎么移动都行。

        软链接中存放的实际是链接文件的路径名。创建软链接最好使用绝对路径。

        软链接的权限指的是这个软链接本身的权限,不是软链接指向文件的权限

如下图,只存放相对路径的file1.s移动后失效 

 

如下图,存放绝对路径的file1.soft 移动后未失效

 

(2)ln file file.h  创建一个硬链接

创建硬链接后,文件的硬链接数+1

对于file1,有2个硬链接file1.h和file1.hard,无论更改哪个硬链接或者文件本身,这三个文件的变化同步。

产生这种同步变化的原因是:文件和硬链接的Inode是相同的,每个文件都有唯一的Inode,直观理解起来就像引用,对于同一文件,无论有多少引用,在访问时,都是这个文件,所以修改就是同步的。

当删除一个硬链接时,文件的硬链接计数-1,当这个计数减为0时,才会删除这个文件。 

10.创建修改用户和用户组 

(1)whoami

        查看当前用户

        示例:

 (2)chmod 修改权限操作

第一种:文字设定法

chmod [who] [ + | - | = ] [mode] filename

操作对象who可以试下述字母中的任意一个或者他们的组合

u        表示"用户(user)",即文件或目录的所有者

g        表示"同组(group)用户",即文件所有者有相同组ID的所有用户

o        表示"其他(others)用户"

a        表示"所有(all)用户",他是默认值

操作符号可以是:

+        添加某个权限

-        取消某个权限

=        赋予给定权限并取消其他所有权限(如果有的话)

示例:(给file1文件添加执行权限)

 第二种:数字设定法

chmod 操作码 filename  直接用操作码修改权限

对于file1的权限

-rw-rw-r--

 421421421

三个组的权限都用二进制编号,比如要设置当前用户对文件的读写和执行权限,则当前用户的操作权限为4(读)+ 2(写)+ 1(执行)= 7

用户组和其他用户的权限设置也是一样的

对于file1的权限 -rw-rw-r--

我们设置如下:

所有者        rwx = 7

所有者所在组        rw=6

q其他用户        r=4

操作码就是 764

 (3)添加新用户

sudo adduser newusername

(4)修改文件所有者

chown username filename

 (5)切换用户

su username    //切换当前用户为username

(6)添加新的用户组

sudo addgroup groupname

(7)修改文件所属用户组

sudo chgrp groupname filename

 (8)同时修改文件所属用户和用户组

sudo chown username:groupname filename

 (9)删除用户

sudo deluser username

 (10)删除用户组

sudo delgroup groupname

 11.find命令

  find命令:找文件

            -type  按文件类型搜索  d/p/s/c/b/l/ f:文件

    find ./ -type 文件类型

            -name  按文件名搜索

    find ./ -name "*file*.jpg"

            -maxdepth  指定搜索深度。应作为第一个参数出现。

    find ./ -maxdepth 1 -name "*file*,jpg"

            -size  按文件大小搜索,单位:k、M、G

                  (注意:两个size一个都不能少,还有就是文件大小单位对大小写敏感)

    find /home/jx -size +20M -size -50M

            -atime、mtime、ctime 天 amin、mmin、cmin 分钟

                按照时间搜索

                a  表示最近访问时间

                m  表示最近更改时间,指更改文件属性一类

                c  表示最近改动时间,指更改文件内容

            -exec:将find搜索的结果集执行某一指令

    find /usr/ -name '*tmp*' -exec ls -ld {} \;

            -ok:以交互的方式将find搜索的结果集执行某一指定命令

    find /usr/ -name '*tmp*' -ok ls -ld {} \;

12.grep和xagrs

(1)grep命令:找文件内容

          -n参数:显示行号

    grep -r 'copy' ./ -n

(2)ps命令

    监控后台进程工作情况,默认值显示当前可以和用户交互的进程

     ps aux | grep 'supsd' -- 检索进程结果集

(3)find … | xargs ls -l 对find操作的结果集进行操作

    等价于

    find … -exec ls -l {} \;

      -xargs:将find搜索的结果集执行某一指定命令。当结果集数量过大时,可以分片映射。

    find /usr/ -name '*tmp*' | xargs ls -ld

两者差别在于当结果集合很大的时候,xargs会对结果进行分段处理,所以性能会好些,但xargs也有缺陷,xargs默认用空格来分割结果集,当文件名有空格的时候,会因为文件名被切割失效

  xargs缺陷演示

创建名字带空格的文件

方法一:文件名加引号(可能版本原因,带有引号)

 方法二:转义字符

 xargs缺陷演示

解决xargs的缺陷问题,指定切分符号位null

-print0:

find -maxdepth 1 -type f -print0 | xargs -print0 ls -l

第一个print0指定结果集分隔符为null,第二个print0指定xargs分隔为null。 

13.软件安装包 

安装软件

sudo apt-get install softname

 更新软件列表

sudo apt-get update 

 更换软件源:

系统设置->软件和更新->下载自……

换软件源过后要更新软件列表

卸载软件

sudo spt-get remove softname

14.压缩命令gzip和bzip2 

两者都是配合tar打包命令使用

这两个压缩的缺陷都是只能对单个文件进行压缩,一来不能压目录,二来不能打包

(1)第一种压缩方式:gzip

tar zcvf 要生成的压缩包名 压缩材料(这里的压缩包名一般以.tar.gz结尾)

上述命令实际执行了两步,

一个是gzip进行压缩:gzip filename (解压:gunzip zipfile)

另一个是打包命令:tar file… tarname

所以tar zcvf 是两条指令的结合版本

对zcvf进行解释:

z:zip,压缩

c:create,创建

v:vision,显示压缩过程,可以去掉,直接用zcf,但这样不显示压缩过程

f:file,文件

file filename 查看文件来源

(2)第二种压缩方式:使用bzip2方式压缩

tar jcvf 要生成的压缩包名 压缩材料

解压:

将压缩命令中的c --> x

tar zxvf 压缩材料        使用gzip解压

tar jxvf 压缩材料        使用bzip2解压

15.rar压缩和zip压缩

(1)rar压缩

需要安装rar

sudo apt-get install rar

打包,把dir压缩成 newdir.rar,如果压缩材料里没有目录,-r参数可以省去

rar a -r newdir.rar dir

解压rar文件

unrar x newdir.rar

查看软件安装信息

sudo aptitude show softname

(2)zip压缩 

 zip压缩

zip -r dir.zip dir

 zip解压

unzip dir.zip

 zip文件在Windows和Linux下通用

16.其他命令 

(1)who 查看当前在线上的用户情况

(2)whoami 查看当前用户,不带有进程

(3)ps aux | grep 条件   结果至少有一个,就是当前查询进程

(4)jobs  查看操作系统当前运行了哪些用户作业

(5)kill  杀死进程

(6)env  环境变量

(7)top 文字版任务管理器

(8)sudo passwd username  设置用户密码

(9)sudo su 切换root用户

(10)ifconfig  查看网卡信息

(11)man  系统参考手册

           man n name 在系统手册第n章查看name

        (若有些函数搜不到相应参考手册,则需安装对应的manpage)

例如:

安装c语言库函数基本帮助文档:
sudo apt-get install manpages
sudo apt-get install manpage-dev
……
安装POSIX函数帮助文档
sudo apt-get install manpages-posix
sudo apt-get install manpages-posix-dev

(12)alias  给命令起别名 

                alias 别名 = ‘指令’

四、快捷键

主键盘快捷键:

        上                                Ctrl+p

        下                                Ctrl+n

        左                                Ctrl+b

        右                                Ctrl+f

        Del                              Ctrl+d  delete                删除光标后面的

        First                            Ctrl+a                            光标跳到行首

        End                             Ctrl+e                            光标跳到行尾

        Backspace                  Backspace                    删除光标前面的单个字符

        清除整行                     Ctrl+u

        删除光标到行末          Ctrl+k        

        显示上滚                     Shift+PgUp

        显示下滚                     Shirt+PgDn

        增大终端字体              Ctrl + Shirft + +

        减小终端字体              Ctrl - -

        新打开一个终端           Ctrl+Alt+T

        清屏                             Ctrl+l                           直接用clear也行

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值