Linux 常用命令详解

14 篇文章 2 订阅

一、Linux 系统目录结构

在这里插入图片描述

  1. /bin:
    bin是Binary的缩写, 这个目录存放着最经常使用的命令。
  2. /boot:
    这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。
  3. /dev :
    dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。
  4. /etc:
    这个目录用来存放所有的系统管理所需要的配置文件和子目录。
  5. /home:
    用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
  6. /lib:
    这个目录里存放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
  7. /lost+found:
    这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
  8. /media:
    linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
  9. /mnt:
    系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
  10. /opt:
    这是给主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
  11. /proc:
    这个目录是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
    这个目录的内容不在硬盘上而是在内存里,我们也可以直接修改里面的某些文件,比如可以通过下面的命令来屏蔽主机的ping命令,使别人无法ping你的机器:
    echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
  12. /root:
    该目录为系统管理员,也称作超级权限者的用户主目录。
  13. /sbin:
    s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
  14. /selinux:
    这个目录是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。
  15. /srv:
    该目录存放一些服务启动之后需要提取的数据。
  16. /sys:
    这是linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs 。
    sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。
    该文件系统是内核设备树的一个直观反映。
    当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。
  17. /tmp:
    这个目录是用来存放一些临时文件的。
  18. /usr:
    这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
  19. /usr/bin:
    系统用户使用的应用程序。
  20. /usr/sbin:
    超级用户使用的比较高级的管理程序和系统守护程序。
  21. /usr/src:
    内核源代码默认的放置目录。
  22. /var:
    这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件。
  23. /run:
    是一个临时文件系统,存储系统启动以来的信息。当系统重启时,这个目录下的文件应该被删掉或清除。如果你的系统上有 /var/run 目录,应该让它指向 run。
    在 Linux 系统中,有几个目录是比较重要的,平时需要注意不要误删除或者随意更改内部文件。
  24. /etc: 上边也提到了,这个是系统中的配置文件,如果你更改了该目录下的某个文件可能会导致系统不能启动。

/bin, /sbin, /usr/bin, /usr/sbin: 这是系统预设的执行文件的放置目录,比如 ls 就是在/bin/ls 目录下的。
值得提出的是,/bin, /usr/bin 是给系统用户使用的指令(除root外的通用户),而/sbin, /usr/sbin 则是给root使用的指令。
/var: 这是一个非常重要的目录,系统上跑了很多程序,那么每个程序都会有相应的日志产生,而这些日志就被记录到这个目录下,具体在/var/log 目录下,另外mail的预设放置也是在这里。

在学习Linux,看ubuntu的教学视频,把常用命令记下来以备查询

文中包含了查看,创建,解压,等等常用操作,属于必会内容,这些不会用,不要说自己会用linux

二、Linux 文件基本属性

在这里插入图片描述

第一个属性用"d"表示。"d"在Linux中代表该文件是一个目录文件。
在Linux中第一个字符代表这个文件是目录、文件或链接文件等等。
当为[ d ]则是目录
当为[ - ]则是文件;
若是[ l ]则表示为链接文档(link file);
若是[ b ]则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
若是[ c ]则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
接下来的字符中,以三个为一组,且均为『rwx』 的三个参数的组合。其中,[ r ]代表可读(read)、[ w ]代表可写(write)、[ x ]代表可执行(execute)。 要注意的是,这三个权限的位置不会改变,如果没有权限,就会出现减号[ - ]而已。
每个文件的属性由左边第一部分的10个字符来确定(如下图)在这里插入图片描述

三、Linux文件属主和属组

1. 更改文件属性

chgrp [-R] 属组名 文件名

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

2. 更改文件属主,也可以同时更改文件属组

chown [–R] 属主名 文件名
chown [-R] 属主名:属组名 文件名

3. chmod:更改文件9个属性

Linux文件属性有两种设置方法,一种是数字,一种是符号。
Linux文件的基本权限就有九个,分别是owner/group/others三种身份各有自己的read/write/execute权限。
先复习一下刚刚上面提到的数据:文件的权限字符为:『-rwxrwxrwx』, 这九个权限是三个三个一组的!其中,我们可以使用数字来代表各个权限,各权限的分数对照表如下:
r:4
w:2
x:1
每种身份(owner/group/others)各自的三个权限(r/w/x)分数是需要累加的,例如当权限为: [-rwxrwx—] 分数则是:
owner = rwx = 4+2+1 = 7
group = rwx = 4+2+1 = 7
others= — = 0+0+0 = 0
所以等一下我们设定权限的变更时,该文件的权限数字就是770啦!变更权限的指令chmod的语法是这样的:

chmod [-R] xyz 文件或目录

选项与参数:
xyz : 就是刚刚提到的数字类型的权限属性,为 rwx 属性数值的相加。
-R : 进行递归(recursive)的持续变更,亦即连同次目录下的所有文件都会变更

四、Linux 文件与目录管理

绝对路径:
路径的写法,由根目录 / 写起,例如: /usr/share/doc 这个目录。
相对路径:
路径的写法,不是由 / 写起,例如由 /usr/share/doc 要到 /usr/share/man 底下时,可以写成: cd …/man 这就是相对路径的写法啦!

ls: 列出目录
cd:切换目录
pwd:显示目前的目录
mkdir:创建一个新的目录
rmdir:删除一个空的目录
cp: 复制文件或目录
rm: 移除文件或目录
mv: 移动文件与目录,或修改文件与目录的名称

1. ls (列出目录)

-a :全部的文件,连同隐藏档( 开头为 . 的文件) 一起列出来(常用)
-d :仅列出目录本身,而不是列出目录内的文件数据(常用)
-l :长数据串列出,包含文件的属性与权限等等数据;(常用)

2. pwd (显示目前所在的目录)

-P :显示出确实的路径,而非使用连结 (link) 路径。

3. mkdir

选项与参数:
-m :配置文件的权限喔!直接配置,不需要看默认权限 (umask) 的脸色~
-p :帮助你直接将所需要的目录(包含上一级目录)递归创建起来!

4. rmdir

选项与参数:
-p :连同上一级『空的』目录也一起删除

5. cp

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

6. rm

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

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

-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖;
-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!
-u :若目标文件已经存在,且 source 比较新,才会升级 (update)

五、Linux 文件内容查看

1. cat 由第一行开始显示文件内容

-A :相当於 -vET 的整合选项,可列出一些特殊字符而不是空白而已;
-b :列出行号,仅针对非空白行做行号显示,空白行不标行号!
-E :将结尾的断行字节 $ 显示出来;
-n :列印出行号,连同空白行也会有行号,与 -b 的选项不同;
-T :将 [tab] 按键以 ^I 显示出来;
-v :列出一些看不出来的特殊字符

2. tac

tac与cat命令刚好相反,文件内容从最后一行开始显示,可以看出 tac 是 cat 的倒着写

3. nl

选项与参数:
-b :指定行号指定的方式,主要有两种:
-b a :表示不论是否为空行,也同样列出行号(类似 cat -n);
-b t :如果有空行,空的那一行不要列出行号(默认值);
-n :列出行号表示的方法,主要有三种:
-n ln :行号在荧幕的最左方显示;
-n rn :行号在自己栏位的最右方显示,且不加 0 ;
-n rz :行号在自己栏位的最右方显示,且加 0 ;
-w :行号栏位的占用的位数。

4. more

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

5. less

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

6. head

-n :后面接数字,代表显示几行的意思

7. tail

-n :后面接数字,代表显示几行的意思
-f :表示持续侦测后面所接的档名,要等到按下[ctrl]-c才会结束tail的侦测

六、Linux 磁盘管理

1. df

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

2. du

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

七、查看系统负载有两个常用的命令,是哪两个?这三个数值表示什么含义呢?

在这里插入图片描述
其中load average即系统负载,三个数值分别表示一分钟、五分钟、十五分钟内系统的平均负载,即平均任务数。

八、ps 查看系统进程时,有一列为STAT, 如果当前进程的stat为Ss 表示什么含义?如果为Z表示什么含义?

S表示正在休眠;s表示主进程;Z表示僵尸进程。

九、如何查看系统都开启了哪些端口?

netstat -lnp

十、如何查看网络连接状况?

netstat -an

十一、用什么命令对一个文件的内容进行统计

wc 命令 - c 统计字节数 - l 统计行数 - w 统计字数。

十二、Grep 命令有什么用? 如何忽略大小写? 如何查找不含该串的行?

是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。
grep [stringSTRING] filename grep [^string] filename

十三、怎么使一个命令在后台运行?

一般都是使用 & 在命令结尾来让程序自动运行。(命令后可以不追加空格)

十四、搜索文件用什么命令? 格式是怎么样的?

find <指定目录> <指定条件> <指定动作>

whereis 加参数与文件名

locate 只加文件名

find 直接搜索磁盘,较慢。

find / -name “string*”

十五、怎么对命令进行取别名?

alias la=‘ls -a’

1 查看


tab键可以自动补全
通配符 正则:
*任意内容,1*可配1XXXX
 ?一位内容 ,1?只能配1X
 []限定范围,1[134],只能配11.13.14,1[1-3]只能配11,12,13
`ls` 列出全部文件list可加参数,-选项(放参数前后无所谓)ls --help
参数是没有先后顺序的,还可以合起来写,ls -a -l -h 和ls -ahl是一样的
`ls /` 列出根目录下全部文件list
`ls /bin` 列出根目录下bin里面全部文件list
`ls -a` 列出根目录下全部文件包括隐藏的
`ls -l` 列出根目录下全部文件详情
`ls -l -h` 列出根目录下全部文件详情,大小用合适的单位来显示
`pwd`返回当前路径print working directory
/home/ubuntukylin
根目录下的home文件夹里面的ubuntukylin文件夹
tree 目录树

2 定位和删除


`cd` change directory
`cd ~`当前用户目录
.当前路径
..当前路径的上一级
`cd -` 快速回到上次路径
`touch 1.txt` 创建文件
`mkdir` 创建文件夹
`mkdir A/b/c -p` 在A里面创建b文件夹,再从b里面创建c -p代表自动创建没有的所依赖的的
`clear` 清屏
`cat + 文件名` 查看文件内容
`more + 文件名` 一页一页查看文件内容
`ls | more + 文件名` 管道连接两个命令
`history` 历史命令 !1 执行历史命令里面第一个
`rm` 删除文件
`rm B -r` 删除文件 递归删除B文件夹,有内容也删掉
`rmdir` 删除文件夹
`rm -rf`目录名 删除非空的目录,其中参数-f表示force


3 重定向


`ls > xxx.txt` 重定向把原来显示的内容导出到文件里,覆盖原文件
`ls >> xxx.txt` 重定向把原来显示的内容追加到文件里内容末尾,不覆盖原文件
`ln -s 1.txt 1-softlink.txt` 软链接相当于windows快捷方式
`ln 1.txt 1-softlink.txt` 硬链接相当于复制了一份文件并且换了个名字 

4 文件中查找


`cat 1.txt 2.txt >xxx.txt` 把两个文件的内容合到一个文件里面去

`grep -n "ntfs" xxx.txt` 到xxx.txt里面找包含ntfs的内容
`grep -v "ntfs" xxx.txt` 到xxx.txt里面找不包含ntfs的内容
`grep -n "^ntfs" xxx.txt` 到xxx.txt里面找ntfs开头的内容
`grep -n "ntfs$" xxx.txt` 到xxx.txt里面找ntfs结尾的内容

`mv 1.txt  111.txt` 重命名
`mv 1.txt  python` 移动到python文件夹里

`cp 1.txt  python` 把1.txt复制到python里面
`cp python  python3 -r` 把python复制到python里面.即使有文件也复制了,-r解决递归问题

5 文件夹中查找


`find ./ -name test.sh`查找当前目录下所有名为test.sh的文件
`find ./ -name '*.sh'`后缀.sh的
`find ./ -name "[A-Z]"`大写字母A-Z开头的
`find /temp -size 1M` temp目录下1M大小的
`find /temp -size +1M` temp目录下大于1M大小的
`find /temp -size -1M` temp目录下小于1M大小的
`find /temp -size +4k -size -1M` temp目录下大于4k小于1M的
`find ./ -perm 777`查找当前目录下权限为777的文件或者目录

6 打包解压


`tar -cvf test.tar *.py` 将当前目录下所有py文件打包到test.tar里面
`tar -xvf test.tar`解包
`tar -zcvf test.tar.gz *.py` 将当前目录下所有py文件打包到test.tar里面,并且压缩
`tar -zxvf test.tar.gz`解压缩包
`tar -jxvf test.tar.bz2`解压缩包
`tar -jxvf test.tar.bz2 -C dog/`解压缩包到指定路径下

zip zzz.zip *py
unzip zzz.zip
unzip -d ./dog zzz.zip


7 系统相关


`ps -aux` 所有进程信息
`top` 排序查看
`kill -9 pid` 强杀进程
`reboot` 重启`init6`
`shutdown -h now` 立刻关机`init0`
`shutdown -h +10` 10分钟后
`shutdown -h 20:20` 晚上八点二十

`ifconfig` 看IP信息
ctrl+shift+T

`df -h` 看硬盘
`du -h` 看当前路径下文件夹占用空间

8 用户用户组



新增用户,设置密码 ,切换用户,退出shuaige账户回到原来账户 

`useradd shuaige -m` 同时创建家目录
`cat /etc/password`
`password shuaige`
`su shuaige`
`su - shuaige `切账户同时切到家目录
`whoami`
`who` 查看登陆的所有用户
`exit`
`userdel shuaige`
`userdel -r shuaige` 把家目录也删掉/home/shuaige 

`sudo -s` 切到root账户# 非ubuntu用 su root
`exit`

`groupadd xxx`  创建xxx用户组
`cat /etc/group `查看组 可以用groupmod+按两次tab
`groupdel xxx`

9 权限


新账户添加sudo权限


`sudo usermod -a -G sudo xxxx`
`sudo usermod -a -G adm xxxx`


`chgrp yyy 1.py`改文件用户组
`chown yyy 1.py`改文件用户

改权限
-rwxrwxr--

chmod u=rwx 1.py
chmod g=rwx 1.py
chmod o=rwx 1.py


r-4
w-2
x-1
改变三种用户的权限和用数字法

chmod u=x,g=wx,o=rwx 1.py
chmod 137 1.py
chmod 777 1.py 全部权限放开


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值