30分钟迅速入门Linux基本命令

Linux学习笔记

  • Linux学习笔记
    • 1. 目录结构
    • 2. 文件基本属性
      • 2.1 文件属性:
      • 2.2 文件类型:
      • 2.3 修改文件属性
        • 2.3.1 chgrp :修改属组
        • 2.3.2 chown :修改属主(也可以修改属组)
        • 2.3.3 chmod :修改文件9个属性
          • M1:数字修改
          • M2:符号修改
    • 3. 文件和目录管理
      • 3.1 处理目录常用命令
        • 3.1.1 ls(列出目录)
        • 3.1.2 cd(切换目录)
        • 3.1.3 pwd(显示当前目录)
        • 3.1.4 mkdir(创建新目录)
        • 3.1.5 rmdir(删除空的目录)
        • 3.1.6 cp(复制文件或目录)
        • 3.1.7 rm(删除文件或目录)
        • 3.1.8 mv(移动文件与目录,或==修改源文件名称==)
      • 3.2 文件内容查看
        • 3.2.1 cat——从第一行开始显示文件内容
        • 3.2.2 tac——文件内容从最后一行开始显示
        • 3.2.3 nl——显示行号(也显示内容)
        • 3.2.4 more——翻页
        • 3.2.5 less——翻页
        • 3.2.6 head——取出文件前几行
        • 3.2.7 tail——取出文件最后几行
    • 4. vi/vim
      • 4.1 三种模式
        • 4.1.1命令模式:刚进入vim便进入命令模式。
        • 4.1.2 输入模式:在命令模式下按下i就进入了输入模式
        • 4.1.3 底线命令模式:在命令模式下按下:(英文冒号)就进入了底线命令模式
      • 4.2 使用流程
    • 5. 用户账号管理
      • 5.1 用户操作
        • 5.1.1 添加新用户账号
        • 5.1.2 删除账号
        • 5.1.3 修改账号
        • 5.1.4 用户口令管理(密码)
      • 5.2 用户组操作
        • 5.2.1 增加一个新用户组
        • 5.2.2 删除一个已有用户组
        • 5.2.3 修改用户组
      • 5.3 切换用户
        • 5.3.1 su
        • 5.3.2 sudo
    • 6.磁盘管理
      • 6.1 df——disk free检查文件系统的磁盘空间占用情况
      • 6.2 du——disk usage查看文件和目录磁盘使用的空间
      • 6.3 fdisk——Linux 的磁盘分区表操作工具
    • 7.文件加解压
      • 7.1 打包压缩文件
      • 7.2 解压
    • 8.文件查找
      • 8.1 grep
      • 8.2 find
      • 8.3 locate
      • 8.4 whereis
      • 8.5 which
    • 9.其他
      • 9.1定时任务指令crontab
      • 9.2 查看进程 ps -ef
      • 9.3 网络通信命令

Linux学习笔记

1. 目录结构

在 Linux 或 Unix 操作系统中,所有的文件和目录都被组织成以一个根节点开始的倒置的树状结构。

文件系统的最顶层是由根目录开始的,系统使用 / 来表示根目录。

当前目录: .

上级目录:…

如果一个目录或文件名以一个点 . 开始,表示这个目录或文件是一个隐藏目录或文件(如:.bashrc)。即以默认方式查找时,不显示该目录或文件。


/bin Binaries二进制文件

/boot 启动linux的文件

/dev Device外部设备

/home 用户的主目录

/lib 动态连接共享库

/opt Optional可选,摆放主机额外安装的软件

/proc Processes存储当前内核运行状态

/root 系统管理员的用户主目录

/sbin SuperUser Binaries超级用户的二进制文件,存放系统管理员使用的系统管理程序

/srv 存放服务启动后需要提取的数据

/sys 是内核设备树的直观反映,一个内核对象被创建时,对应文件和目录也会被创建

/usr Unix Shared Resoures共享资源,用户很多应用程序和文件都放在这里,类似 windows 下的 program files 目录 

 /var  variable 

2. 文件基本属性

使用ll或者ls -l命令来显示当前目录下所有文件的属性、所属用户和组

30分钟迅速入门Linux基本命令_第1张图片

2.1 文件属性:

30分钟迅速入门Linux基本命令_第2张图片

文件共10 个属性,第一个是文件类型,剩下9个 3个为一组,代表3类用户(owner/group/others)的读+写+执行(read+write+execute)的权限

解释下相关概念:

  • 属主:当前文件的拥有者

  • 属组:和当前文件拥有者同组的用户

  • r 表示可读,**w **表示可写,x 表示可执行;不可都用 - 表示

2.2 文件类型:

文件属性中的文件类型可能有以下这些类型:

  • d :目录
  • - :文件;
  • l :链接文档(link file);
  • b :装置文件里面的可供储存的接口设备(可随机存取装置);
  • c :装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。

2.3 修改文件属性

2.3.1 chgrp :修改属组

chgrp 新属组名 文件名
chgrp -R 新属组名 文件名  #-R:递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改

([-R]表示这个命令可选)

2.3.2 chown :修改属主(也可以修改属组)

chown [-R] 新属主名 文件名   # 仅修改属主
chown [-R] 新属主名: 新属组名 文件名  # 同时修改属主、属组

2.3.3 chmod :修改文件9个属性

可以修改除了文件类型外的所有读写执行权限属性,有数字和符号两种修改方法。

M1:数字修改

rwx分别对应的分数:

r : 4
w : 2
x : 1

每种身份(owner/group/others)各自的三个权限需要累加:

权限为: -rwxrwx--- 分数则是:
owner = rwx = 4+2+1 = 7
group = rwx = 4+2+1 = 7
others= --- = 0+0+0 = 0
该文件的权限数字就是 770

所以chmod语法如下:

chmod [-R] xyz 文件名
M2:符号修改

使用语法如下:

chmod u(属主) +(加入) r 文件或目录
g(属组) -(减去) w
o(其他) =(赋权) x
a(所有)

使用示例:

想要将文件test设置为 -rwxr-xr--,可以使用
chmod u=rwx,g=r-x,o=r-- test
想减去所有人的执行权限:
chmod a-x test

3. 文件和目录管理

  • 绝对路径:如cd /usr/share/doc

  • 相对路径:如cd …/doc

3.1 处理目录常用命令

使用 ==man [命令]==来查看各个命令使用文档,如 man ls

ls   : list files  列出目录
cd   : change directory 切换目录
pwd  : print work directory 显示当前目录
mkdir: make directory 创建新目录
rmdir: remove directory 删除一个空目录
cp   : copy file 复制文件或目录
rm   : remove file 删除
mv   : move file 移动文件和目录/修改文件和目录名称

3.1.1 ls(列出目录)

选项和参数:

ls -a : 列出全部文件(包括隐藏文件)
ls -d : 仅列出目录本身(不列文件)
ls -l : 将文件信息以长数据串列出(包含文件属性、权限)【 别名是:ll 】

可以组合使用:
ls -al : 列出所有文件(包含属性、权限)
ls -dl : 列出目录(包含属性、权限)

3.1.2 cd(切换目录)

绝对路径 : cd /root/test
相对路径 : cd ./test
回到自己的根目录 : cd ~
回到上一级目录 : cd ..

3.1.3 pwd(显示当前目录)

全称:print working directory

3.1.4 mkdir(创建新目录)

mkdir [-m] [-p] 目录名称
  • -m:配置文件权限

    mkdir -m 711 test2
    
  • -p:递归创建多层目录

    mkdir test    <==创建名为 test 的新目录
    
    mkdir test1/test2/test3/test4  <==创建失败!!!
    
    mkdir -p test1/test2/test3/test4 <==创建成功!!!
    

3.1.5 rmdir(删除空的目录)

rmdir 仅能删除空的目录,可以使用 rm 命令来删除非空目录

rmdir [-p] 目录名称
  • **-p :**连同上一级『空的』目录也一起删除

3.1.6 cp(复制文件或目录)

参数极其多:

cp [-adfilprsu] 来源档(source) 目标档(destination)
  • **-a:**相当於 -pdr 的意思,至於 pdr 请参考下列说明;(常用)
  • **-d:**若来源档为连结档的属性(link file),则复制连结档属性而非文件本身;
  • **-f:**为强制(force)的意思,若目标文件已经存在且无法开启,则移除后再尝试一次;
  • **-i:**若目标档(destination)已经存在时,在覆盖时会先询问动作的进行(常用)
  • **-l:**进行硬式连结(hard link)的连结档创建,而非复制文件本身;
  • -p:连同文件的属性一起复制过去,而非使用默认属性(备份常用);
  • -r:递归持续复制,用於目录的复制行为;(常用)
  • **-s:**复制成为符号连结档 (symbolic link),亦即『捷径』文件;
  • **-u:**若 destination 比 source 旧才升级 destination !

3.1.7 rm(删除文件或目录)

rm [-fir] 文件或目录
  • -f :就是 force 的意思,忽略不存在的文件,不会出现警告信息;
  • -i :互动模式,在删除前会询问使用者是否动作
  • -r :递归删除啊!最常用在目录的删除了!这是非常危险的选项!!!

3.1.8 mv(移动文件与目录,或修改源文件名称)

mv [-fiu] source destination
【destination一般是目录,source可以是文件或目录】
  • -f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
  • -i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
  • -u :若目标文件已经存在,且 源文件(source) 比较新,才会升级 (update)

修改文件名称:

mv mvtest mvtestnew         ##将mvtest更名为mvtestnew

3.2 文件内容查看

  • cat 由第一行开始显示文件内容
  • tac 从最后一行开始显示,可以看出 tac 是 cat 的倒着写!
  • nl 显示的时候,顺道输出行号!
  • more 一页一页的显示文件内容
  • less 与 more 类似,但是比 more 更好的是,他可以往前翻页!
  • head 只看头几行
  • tail 只看尾巴几行

3.2.1 cat——从第一行开始显示文件内容

例子:

cat /home/TongWeb/web.xml

CentOS release 6.4 (Final)
Kernel \r on an \m

3.2.2 tac——文件内容从最后一行开始显示

可以看出 tac 是 cat 的倒着写!【以行为单位倒着写,不是以字符为单位!】

例子:

tac /home/TongWeb/web.xml

Kernel \r on an \m
CentOS release 6.4 (Final)

3.2.3 nl——显示行号(也显示内容)

不仅显示内容,还显示内容的行号

例子:

nl /home/TongWeb/web.xml

1  CentOS release 6.4 (Final)
2  Kernel \r on an \m

3.2.4 more——翻页

和cat一样都是显示文件内容的,但是more一次只展示一页,可以手动前后翻页

例子:

more /etc/man_db.config 
#
# Generated automatically from man.conf.in by the
# configure script.
#
# man.conf from man-1.6d
....(中间省略)....
--More--(28%)  <== 重点在这一行喔!你的光标也会在这里等待你的命令

在 more 这个程序的运行过程中,你有几个按键可以按的:

  • 空白键 (space):代表向下翻一页
  • Enter :代表向下翻『一行』;
  • /字串 :代表在这个显示的内容当中,向下搜寻『字串』这个关键字;
  • :f :立刻显示出档名以及目前显示的行数;
  • q :代表立刻离开 more ,不再显示该文件内容。
  • b 或 [ctrl]-b :代表往回翻页,不过这动作只对文件有用,对管线无用。

3.2.5 less——翻页

相比more,可以更方便地向上向下翻页,向上向下搜索,有更多的搜索功能

例子:

less /etc/man.config
#
# Generated automatically from man.conf.in by the
# configure script.
#
# man.conf from man-1.6d
....(中间省略)....
:   <== 这里可以等待你输入命令!

less运行时可以输入的命令有:

  • 空白键 :向下翻动一页;
  • [pagedown]:向下翻动一页;
  • [pageup] :向上翻动一页;
  • /字串 :向下搜寻『字串』的功能;
  • ?字串 :向上搜寻『字串』的功能;
  • n :重复前一个搜寻 (与 / 或 ? 有关!)
  • N :反向的重复前一个搜寻 (与 / 或 ? 有关!)
  • q :离开 less 这个程序;

3.2.6 head——取出文件前几行

head -n 行数 文件

head -n 20 /test/web.xml

3.2.7 tail——取出文件最后几行

tail -n 行数 文件

tail -f 文件名 ##持续侦测文件更新内容,直到按下Ctrl+c才能结束(常用于看控制台日志报错)

4. vi/vim

vi/vim 共分为三种模式,分别是命令模式(Command mode)输入模式(Insert mode)底线命令模式(Last line mode)

4.1 三种模式

4.1.1命令模式:刚进入vim便进入命令模式。

此状态下键盘输入会被vim识别为命令,而不是字符

以下是常用的几个命令:

i 切换到输入模式,以输入字符。

x 删除当前光标所在处的字符。

: 切换到底线命令模式,以在最底一行输入命令。

4.1.2 输入模式:在命令模式下按下i就进入了输入模式

进入输入模式后,键盘上除了ESC可以退出输入模式,其他按键都可以堪称普通字符。

在输入模式中,可以使用以下按键:

字符按键以及Shift组合,输入字符

ENTER,回车键,换行

BACK SPACE,退格键,删除光标前一个字符

DEL,删除键,删除光标后一个字符

方向键,在文本中移动光标

HOME/END,移动光标到行首/行尾

Page Up/Page Down,上/下翻页

Insert,切换光标为输入/替换模式,光标将变成竖线/下划线

ESC,退出输入模式,切换到命令模式

4.1.3 底线命令模式:在命令模式下按下:(英文冒号)就进入了底线命令模式

底线命令模式可以输入单个或多个字符的命令,按ESC键可随时退出底线命令模式

q 退出程序

w 保存文件

4.2 使用流程

30分钟迅速入门Linux基本命令_第3张图片

  • S1:vi filename 打开文件
  • S2:按 i(或者o,a) 进入输入模式,开始编辑文件
  • S3:按ESC回到命令模式
  • S4:如果要保存并退出,按 : 进入底层命令模式,再按 wq 完成保存和退出

5. 用户账号管理

5.1 用户操作

5.1.1 添加新用户账号

useradd 用户名        #最基础的,可以加选项
  • -c comment 指定一段注释性描述。
  • -d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
  • -g 用户组 指定用户所属的用户组
  • -G 用户组,用户组 指定用户所属的附加组。
  • -s Shell文件 指定用户的登录Shell。
  • -u 用户号 指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。

5.1.2 删除账号

userdel 用户名      #最基础的,可以加选项

常用的选项是 -r,它的作用是把用户的主目录一起删除

5.1.3 修改账号

usermod 用户名      #最基础的,可以加选项

常用的选项包括-c, -d, -m, -g, -G, -s, -u以及-o等,这些选项的意义与useradd命令中的选项一样,可以为用户指定新的资源值。

另外,有些系统可以使用选项:-l 新用户名

这个选项指定一个新的账号,即将原来的用户名改为新的用户名

5.1.4 用户口令管理(密码)

指定和修改用户口令的Shell命令:

passwd 选项 用户名

可使用的选项:

  • -l 锁定口令,即禁用账号。
  • -u 口令解锁。
  • -d 使账号无口令。
  • -f 强迫用户下次登录时修改口令。

如果默认用户名,则修改当前用户的口令

5.2 用户组操作

5.2.1 增加一个新用户组

groupadd 选项 用户组名

可以使用的选项有:

  • -g GID 指定新用户组的组标识号(GID)。
  • -o 一般与-g选项同时使用,表示新用户组的GID可以与系统已有用户组的GID相同

5.2.2 删除一个已有用户组

groupdel 用户组

5.2.3 修改用户组

groupmod 选项 用户组

常用的选项有:

  • -g GID 为用户组指定新的组标识号。
  • -o 与-g选项同时使用,用户组的新GID可以与系统已有用户组的GID相同。
  • -n新用户组 将用户组的名字改为新名字

5.3 切换用户

5.3.1 su

su用于用户之间的切换。但是切换前的用户依然保持登录状态。

如果是root 向普通或虚拟用户切换不需要密码,反之普通用户切换到其它任何用户都需要密码验证。

su test:切换到test用户,但是路径还是/root目录
su - test : 切换到test用户,路径变成了/home/test
su : 切换到root用户,但是路径还是原来的路径
su - : 切换到root用户,并且路径是/root

5.3.2 sudo

sudo是为所有想使用root权限的普通用户设计的。

可以让普通用户具有临时使用root权限的权利。只需输入自己账户的密码即可。

进入sudo配置文件命令:

vi /etc/sudoer【路径都是这个,固定的】
或者直接 visudo

6.磁盘管理

Linux磁盘管理常用三个命令为df、du和fdisk。

  • df:列出文件系统的整体磁盘使用量
  • du:检查磁盘空间使用量
  • fdisk:用于磁盘分区

df和du区别?

  • df通过文件系统来快速获取空间大小的信息。当我们删除一个文件的时候,这个文件不是马上就在文件系统当中消失了,而是暂时消失了,当所有程序都不用时,才会根据OS的规则释放掉已经删除的文件。 df记录的是通过文件系统获取到的文件的大小,他比du强的地方就是能够看到已经删除 的文件,而且计算大小的时候,把这一部分的空间也加上了,更精确了
  • du通过搜索文件来计算每个文件的大小,然后累加,du能看到的文件只是一些当前存在的,没有被删除的。他计算的大小就是,当前他认为存在的所有文件大小的累加和。
  • 当文件系统也确定删除了该文件后,这时候du与df就一致了

6.1 df——disk free检查文件系统的磁盘空间占用情况

df [-ahikHTm] [目录或文件名]

选项与参数:

-a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
-k :以 KBytes 的容量显示各文件系统;
-m :以 MBytes 的容量显示各文件系统;
-h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示;(常用)
-H :以 M=1000K 取代 M=1024K 的进位方式;
-T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;
-i :不用硬盘容量,而以 inode 的数量来显示

6.2 du——disk usage查看文件和目录磁盘使用的空间

du [-ahskm] 文件或目录名称

选项与参数:

-a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。
-h :以人们较易读的容量格式 (G/M) 显示;
-s :列出总量而已,而不列出每个各别的目录占用容量;
-S :不包括子目录下的总计,与 -s 有点差别。
-k :以 KBytes 列出容量显示;
-m :以 MBytes 列出容量显示;

6.3 fdisk——Linux 的磁盘分区表操作工具

fdisk [-l] 装置名称

选项与参数:

-l :输出后面接的装置所有的分区内容。若仅有 fdisk -l 时, 则系统将会把整个系统内能够搜寻到的装置的分区均列出来。

7.文件加解压

7.1 打包压缩文件

Windows的压缩文件的扩展名 .zip/.rar
linux中的打包文件:aa.tar
linux中的压缩文件:bb.gz
linux中打包并压缩的文件:.tar.gz

Linux中的打包文件一般是以.tar结尾的,压缩的命令一般是以.gz结尾的。

而一般情况下打包和压缩是一起进行的,打包并压缩后的文件的后缀名一般.tar.gz。

tar -zcvf 打包压缩后的文件名 待打包文件【可以写多个文件名,或者直接*,把当前目录下文件都打包】
  • z:调用gzip压缩命令进行压缩
  • c:打包文件
  • v:显示运行过程
  • f:指定文件名
tar -zcvf ab.tar aa.txt bb.txt 
tar -zcvf ab.tar  *

7.2 解压

tar [-xvf] 压缩文件名 指定解压的位置【不写代表解压到当前目录下】
  • x:代表解压

8.文件查找

8.1 grep

文本搜索工具

ps -ef | grep 7777

8.2 find

在目录结构中搜索文件,并对搜索结果执行指定的操作.

find 默认搜索当前目录及其子目录,并且不过滤任何结果

find . -name "*.log" -ls  在当前目录查找以.log结尾的文件,并显示详细信息。 
find /root/ -perm 600   查找/root/目录下权限为600的文件 
find . -type f -name "*.log"  查找当目录,以.log结尾的普通文件 
find . -type d | sort   查找当前所有目录并排序 
find . -size +100M  查找当前目录大于100M的文件

8.3 locate

locate 让使用者可以很快速的搜寻某个路径。默认每天自动更新一次,所以使用locate 命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库

updatedb
locate /etc/sh 搜索etc目录下所有以sh开头的文件 
locate pwd 查找和pwd相关的所有文件

8.4 whereis

定位可执行文件、源代码文件、帮助文件在文件系统中的位置。这些文件的属性应属于原始代码,二进制文件,或是帮助文件。

whereis ls    将和ls文件相关的文件都查找出来

8.5 which

在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果

which pwd  查找pwd命令所在路径 
which java  查找path中java的路径 

9.其他

9.1定时任务指令crontab

通过crontab命令,可以在固定间隔时间,执行指定的系统指令或shell脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合

crontab file [-u user] ## 用指定的文件替代目前的crontab
crontab -l [-u user]  ## 列出用户目前的crontab
crontab -e [-u user]  ## 编辑用户目前的crontab

9.2 查看进程 ps -ef

ps -ef 查看所有正在运行的进程

结束进程:

kill pid 或者 kill -9 pid(强制杀死进程) 

9.3 网络通信命令

  • ifconfig:查看网卡信息

    命令:ifconfig 或 ifconfig | more

  • ping:查看与某台机器的连接情况

    命令:ping ip

  • netstat -an:查看当前系统端口

    命令:netstat -an

  • 搜索指定端口

    命令:netstat -an | grep 8080

你可能感兴趣的:(Java面试(社招),linux,shell)