Linux命令行入门指南

基本的命令、文件及目录

pwd  #查看当前目录

cd /var/log  #进入/var/log目录

cd..  #进入父级,这里为 /var

cd -  #返回上一个之前的目录,这里为 /var/log

ls  #查看文件列表

man ls  #查看帮助

ls -la  #l表示详细格式,a表示显示dot文件

ls -l -h  #h表示更可读,比如文件大小以KBMB为单位

## 向上箭头或向下箭头 查看之前键入过的命w

cat kern.log  #Tab可以提示并自动完成,如果按2Tab,就列出所有可用的列表,再按Enter就使用当前提示

cd ~  #回到个人主目录

touch test.txt  #创建一个空文件,Linux不看扩展名,这里只为了直观

mkdir testfiles  #创建一个空文件夹

mv test.txt testfiles/testfile.txt  #test.txs移动testfiles文件夹下并改名

cd testfiles

ls

cp testfile.txt testfile2.txt  #复制文件

rm testfile.txt  #删除文件

cd .. #或使用cd - 回到上一次目录

rm testfiles  #尝试删除该文件夹,提示不是空不能删

man rm  #查用户手册

rm -r testfiles  # r表示递归,删除文件夹里的所有文件和目录


文本编辑

Nano:

对初学者非常友好,在大部分Linux发行版开箱即用。但它只有基本功能,不提供高级功能,不过一般使用足够了。

nano  #打开nano

#  输入几行文本

#  按下ctrl+O  表示存文件,然后输入文件名test.txt,即完成保存

#  ctrl+x  退出nano

ls  #  查到当前目录已生成刚创建的文件

cat test.txt  #  查看编辑的内

nano test.txt  #  nano可以带现有的文件名,打开现存文件

#  nano ctrl+G,查看帮助。看完按 ctrl+x 退出

#  Alt+u  undo功能

#  Alt+e  redo功能 

#  剪切:用鼠标选择文本,如果没有,可以用shift+右箭头选择。选好之后ctrl+k

#  粘贴:ctrl+u

#  搜索:ctrl+w

#  未保存按ctrl+x,会提示是否保存,要保存就按y

Vim:

比较强大,还有很多插件,有些人甚至用它编码。

Emacs:

与Vim类似,可能更强大。

Linux文件系统层级

文件系统层级,也称fhs

类似unix,一切皆是文件。并不是所有文件都存在于硬盘,Linux内核提供了很多信息,或通过文件系统访问硬件或进程信息 。

ls -l /  #  linux一切文件从根 / 开始

/bin  #  /bin放置了单用户模式下的命令,linux是个多用户系统,但在维护或恢复时会切到单用户模式,

      #  lscatcpmv等命令都在这个目录,都是些小程序

/boot  #  所有引导加载信息,除非很清楚,否则不要动

/dev  #  这是个特殊文件夹,实际不存在硬盘驱动器中,由内核创建

      #  比如插入一个网络摄像头,内核将创建一个文件,用于访问该摄像头

/etc  #  包含系统范围的配置文件,比如DNS客户端,DNS服务器,WEB服务器等配置文件

      #  当我们配置通用系统应用系统时,在这里工作

/home  #  用户的个人目录,文档图片等

/lib  #  包含运行基本程序需要的库,有些操作系统还有 /lib64,主要是/bin下的

      #  程序用到的库

/lost+found  #  linux系统崩溃时,下次启动会检查文件,并将不正常未链接的放在

             #  放在该文件夹,我们可以检查该文件夹,并进行复制和恢复

/media  #  放置可移动文件,比如插入U盘,CDROM等,Linux内核会在该目录中新建

        文件夹,以便访问

/mnt  #  临时挂载作用。这是过去的残留,现在不太常用。但如果需要手动创建挂载点,

      #  可以在这个目录创建挂载点

/opt  #  意思是可选文件,一般放置第三方软件或自己编译的应用程序

/proc  #  这也是特殊文件,Linux向文件系统提供进程信息。当我们启动一个新应用程序时,

       #  linux内核创建新进程时,同时也为该进程ID创建一个文件夹,我们可以在此文件中查找

       该进程的相关信息

/root  #  每个用户都有一个个人目录,除了root。因为root是个非常特殊的用户

/run  #  程序运行时的可变数据,当程序运行,需要存储运行时的临时数据。

      #  这也是在硬盘不存在的文件,但是在内存运行的临时文件系统

      #  当我们重新启动时,这里面的东西将消失,所以不要放任何东西

/sbin  #   /bin类似,但里面的应用程序仅供超级用户使用,比如格式化及其他系统关键的命令

/snap  #  快照文件,也是特殊文件,存在硬盘上。包含容器应用程序的信息,比较复杂。讲明需要单独开课

/srv  #  代表服务器文件,比如WEB服务器,FTP服务器上的文件可以存储在这里

/sys  #  也是特殊文件,Linux将内核、硬件、系统进程信息放在这里

      #  它与 /dev不同,它包含的东西更多。

      #  某个时候你需要访问硬件时,可以使用/dev,但要查硬件信息如型号、供应商时需要查 /sys

/tmp  #  临时文件。与/run类似。有个区别,/tmp可以被任何无特权的用户访问。不关键的临时数据放这里较好

      #  当然具体取决于应用程序或开发人员如何使用

/usr  #  这个不是用户文件,已经有/home文件夹了,这里放的是unix资源。

      #  usr unix system resources 的缩写。他有很多子目录,与 / 根目录有点类似

      #  比如也有binsbinlib等。各个Linux发行版处理这个文件夹也有不同。

      比如 ubuntu,根目录下/bin/usr/bin 还有有区别的

      #  但现代有些发行版,比如arch linux/bin甚至没有任何文件,只是指向/usr/bin的符号链接

      #  该目录也有 libshare目录等,如果想存字体、壁纸、图标等应用程序之间共享的任何东西,都可放在这里

/var  #  可变数据,放一些预期大小会增长的数据,比如WEB服务器、邮件服务器的日志 /var/log

用户和组

我们安装好系统,一般要先创建用户。

系统中原先存在很多用户,其中最重要的用户之一是root用户。

 root用户也被称为超级用户或超级管理员,可以执行任何配置任务,访问任何文件,添加删除软件等等。

一般用普通用户来执行操作,避免对系统造成破坏。

添加删除软件,还是需要切换到root用户才能操作,操作完成之后切回普通用户,这会有些麻烦,所以出现了叫做sudo的东西。sudo代替用户做只有root才能做的事情,可以执行任何命令。

whoami  #  显示当前用户

sudo whoami  加上sudo,显示当前用户是root

cat /etc/passwd  #  用户文件,所有用户都可读。但不是每个用户都可写

                 #  第一个是root用户,ID0,一般创建的用户在后面,ID1000

                 第一列是用户名

                 #  第二列是密码,用x表示,实际密码的哈希值存在/etc/shadow

                 第三列是用户ID

                 #  第四列是组ID,告诉用户属于哪个主要组。默认情况当我们创建新用户时,linux总是创建同名的组,然后将这个组表示为该用户的主组存在用户文件下。

                 #  第五列是注释,可以放任文本

                 #  第六列是用户的主文件夹 

                 #  第七列是用户的shell程序 ,普通用户是 /bin/bash,但看到不少用户是 /usr/sbin/nologin

                 #    表示这些用户是无法真正登陆shell而执行某些操作的,这些用户一般是得用这个用户权限执行某些服务的,

                 #    比如运行WEB服务器并不需要全部权限,所以建立相应的服务用户

                 #    这也是我们在 /etc/passwd 看到这么多条目的原因

#  我们当然可以在前面加 sudo 的方式编辑这个 /etc/passwd 文件,但用命令方法可能更好。

man useradd

sudo useradd -m -s /bin/bash -c "test user" test  #  新建test用户

  #  m表示添加home下目录,s表示shellc表示注释

cat /etc/passwd  #  查看已建立了test用户

sudo passwd test  #  设置test用户的密码

passwd  设置当前用户密码                 

su test  #  su命令,切换到test用户登陆测试是否正常

cd ~  #  转到test用户的主目录

exit  #  退出testshell,回到之前的用户  

#  我们来看看组

cat /etc/group  #  所有的组都存在这儿

                #  我们看到很多组,能看到新建的用户组是1001

                #  用户除了自己的组也可以属于其他组  sudo:x:27:chen,最后一列表示该组的成员,这里表示chen属于sudo

su test

sudo whoami  #  发现test用户无法使用sudo命令,它不在sudo

exit

sudo usermod -aG sudo test  usermod命令 test加入sudo

                            #  a表示添加,如果不加a原组里的成员将被删除,G后面跟组名。                    

su test

sudo whoami  #  再登录test使用sudo命令,已可以了                 

sudo visudo  #  打开文件,查看到sudo可以执行所有命w令,我们也可以参照修改,达到我们的要求

#  下面新建一个组

groupadd manages

sudo usermod -aG manages test

sudo usermod -aG manages chen  testchen用户加入manages

cat /etc/group  #  能看到manages组最后一列有test,chen两个用户

下面删除test用户

sudo userdel test

cat /etc/group  #  能看到test已从刚才的sudo组、manages组中删掉了

cat /etc/passwd  这个用户文件中的test自然也已删除

#  不要手动编辑这些文件,用命令就好,他们之前是有关联的,免得未处理好出现问题

#  再删除manages

sudo groupdel manages  

cat /etc/group  #  看到已从该文件中去除了

文件权限和属性

文件权限和属性,说明这些用户和组能访问哪些文件,执行哪些文件。

ls-l  能看到详细的列

能看到权限设置,文件所属的用户和组

#  权限说明 drwxrwxr-x

#  第一位表示类型,d表示目录,表示文件

#  然后33位组,分别代表用户,用户组,以及其他用户的读写执行权限

#  修改权限命令是chmod,有两种方式:文本方式和数字方式

chmod u=rwx testscipt.sh  #  文本模式 u 表示 用户,表示组, o 表示其他人

chmod u=rx testscript.sh  #  权限不必写全

chmod u+w testscript.sh  #  +表示增加

chmod u-x  testscript.sh  # - 表示减少某权限

#  当然也可以用 go 然后 + - =

#  文本方式比较直观

#  文本模式每次只能设定一类用户,还有一种是数字方式,就灵活多了

chmod 761 testfile1.txt  #  数字方式由3位数字组成,每位数字可以从0-7

                         #  从左至右的数字分别代表 用户、组、其他用户、

                         #  r=4w=2x=1,组合成数字

#  可以改变文件的用户和组,命令是chown

sudo chown chen textfiles.txt  #  将文件的用户改成chen

chown chen:chen testfiles.txt  #  也可以修改文件的组,在冒号后面加上组名

sudo chown -R chen:chen downloads  #  递归实现文件用户属性的修改,这样downloads文件夹下的所有文件用户都改成了chen:chen

#  同样的,-R 也适用于 chmod

文件除了权限,还有属性:

lsattr  #  不带参数将看到当前目录下所有文件的属性

lsattr textfile2.txt  #  具体文件的属性

#  属性包括是否是压缩,是否扩展,是否不可变等,可以查看具体文档

#  这里做个简单的测试,做个不可改变属性的修改

sudo  lsattr +i textfile2.txt  #  这将设置该文件的不可变属性

sudo nano textfile2.txt  #  显示不可写入,即便是 root 用户也不能!!

sudo lsattr textfile2.txt  #  可以看到 i 属性

#  可以经常查看文件属性,看看是否有可疑属性

sudo lsattr -i textfile2.txt  #  删掉文件的不可改变 i 属性

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,076评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,658评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,732评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,493评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,591评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,598评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,601评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,348评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,797评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,114评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,278评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,953评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,585评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,202评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,442评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,180评论 2 367
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,139评论 2 352

推荐阅读更多精彩内容