Liunx学习笔记 - 01 - Linux常用命令

Liunx学习笔记 - 01 - Linux常用命令

1 文件处理命令

1.1 目录处理命令ls

命令名称:ls
英文原意:list
所在路径:/bin/ls
执行权限:所有用户
功能描述:显示目录文件
语法:ls 选项[-ald] [文件或目录]
-a 显示所有文件,包含隐藏文件(以“.”开头的为隐藏文件,还一并显示了当前目录“.”和上级目录“…”)
-l 显示详细信息
-d 查看目录属性
-i 显示ID号
-h 人性化显示大小

还有一个用得较多的简化的目录查看命令叫做ll,其等效于ls -al。

实际上ls -l显示的东西比较长,其显示了文件和目录的详细信息,比如:
drwxr-xr-x 2 meiguanhua meiguanhua 4096 12月 17 10:27 a1/
-rwxr-xr-x 1 meiguanhua meiguanhua 107 12月 17 10:12 helloworld.cpp
第一字段共10位字符:
第1位:d表示目录,-表示文件,l表示链接文件linkfile
第2-4位:所有者权限,r为read,w为write,x为execute,-表示没有该权限
第5-7位:所属组权限,同上
第8-10位:其他人权限,同上
第二字段:链接数
第三字段:所有者的用户名
第四字段:所属组的组名
第五字段:文件大小,用字节Byte表示,若要让它人性化显示,可用-h选项,会自动用K,M等显示大小
第六字段:创建日期或最近的修改日期
第七字段:文件名或目录名,目录后面有斜杠/

1.2 目录处理命令cd、pwd、mkdir、rmdir、cp、rm、mv

命令名称:cd
英文原意:change directory
所在路径:shell内置命令
执行权限:所有用户
功能描述:切换目录
语法:cd [目录]

示例功能
cd /切换到根目录
cd …切换到上一级目录

命令名称:pwd
英文原意:print working directory
所在路径:/bin/pwd
执行权限:所有用户
功能描述:显示当前所在的工作目录
语法:pwd

命令名称:mkdir
英文原意:make directories
所在路径:/bin/mkdir
执行权限:所有用户
功能描述:创建新目录
语法:mkdir [目录名]

示例功能
mkdir newdir在当前目录下创建名为newdir的新目录
mkdir -p /a/a0 a/a1 a/a2递归创建多层目录,即在根目录/下创建名为a的空目录,再在a中创建a0、a1、a2三个新目录

命令名称:rmdir
英文原意:remove directories
所在路径:/bin/rmdir
执行权限:所有用户
功能描述:删除空目录(只能删除空的目录,若要删除非空目录,用rm)
语法:rmdir [目录名]

命令名称:cp
英文原意:copy
所在路径:/bin/cp
执行权限:所有用户
功能描述:复制文件或目录
语法:
cp [源文件] [目标目录]
cp -r [源目录] [目标目录]
复制目录时,用选项-r表示递归复制
若加上-p选项,则会保存复制文件的属性

命令名称:rm
英文原意:remove
所在路径:/bin/rm
执行权限:所有用户
功能描述:删除文件或目录(-r选项)
语法:rm -r [文件或目录]

示例功能
rm file1删除文件file1
rm -r dir1删除目录dir1极其下面的子目录(递归删除)

注意:

  • Linux没有windows那样的回收站,删掉了就没有了!
  • 在根目录/下切勿执行rm -rf *操作,这是极其危险的操作,会删除/下的所有目录和文件,导致系统崩溃!

命令名称:mv
英文原意:move
所在路径:/bin/mv
执行权限:所有用户
功能描述:移动文件、更名
语法:mv [源文件或目录] [目标目录]

示例功能
mv file1 file2把当前目录下的文件file1改名为file2
mv file3 dir1把文件file3移动到目录dir1中

1.3 文件处理命令touch、cat、tac、more、less、head、tail

命令名称:touch
英文原意:
所在路径:/bin/touch
执行权限:所有用户
功能描述:创建空文件
语法:touch [文件名]

示例功能
touch newfile1创建名为newfile1的空文件
touch newfile2.abc创建名为newfile2扩展名为abc的空文件

命令名称:cat
英文原意:concatenate and display files
所在路径:/bin/cat
执行权限:所有用户
功能描述:显示文件内容
语法:cat [-n] [文件名]

示例功能
cat file1显示file1文件的内容
cat -n file2显示file2文件的内容,并每行开头标出行号来

注意:

  • 与cat相反的tac命令,可以把文件的内容倒过来显示(逆序显示),即最后一行放在第一行,而第一行放在最后一行来显示。

由于cat命令不支持翻页,所以只适合查看较为简短的小文件,想要能翻页和换行显示文件内容,就要用到下面的命令more了。

命令名称:more
英文原意:
所在路径:/bin/more
执行权限:所有用户
功能描述:分页显示文件内容
语法:more [文件名]
在显示的过程中,可以:
空格或f,来显示下一页;
回车,来显示下一行;
q或Q,来退出显示。

然而,more只能向下翻页,无法向上翻页,这时候就要用到命令less了。
命令名称:less
语法:less [文件名]
在显示过程中,可以:
空格或f,来显示下一页;
回车,来显示下一行;
q或Q,来退出显示。
pageup,朝上翻页;
pagedown,朝下翻页;
向上箭头,一行行往上翻;
/abc,搜索“abc”,并按n来查看下个匹配的关键词。

如果只想看文件的开头几行,那么用命令head是再好不过的了。
命令名称:head
所在路径:/bin/head
执行权限:所有用户
功能描述:显示文件内容的前几行
语法:head -num [文件名]
示例:head -20 /etc/services
查看/etc/目录下services文件的前20行内容。

与head对应,可以用tail来查看文件的末尾内容。
命令名称:tail
所在路径:/bin/tail
执行权限:所有用户
功能描述:显示文件内容的后几行
语法:tail -num [文件名]
tail -f 动态(实时监控)显示文件内容,按下ctrl+c退出实时监控状态。

示例功能
tail -30 /etc/services查看/etc/目录下services文件的后30行内容
tail -10f /etc/services动态查看/etc/目录下services文件的末尾10行的内容

还有一个清屏的命令叫做clear,当然如果嫌输入太慢的话,可以直接用快捷方式ctrl+l来清屏。

1.4 链接命令ln

命令名称:ln
英文原意:link
所在路径:/bin/ln
执行权限:所有用户
功能描述:产生链接文件
语法:tail -s [源文件] [目标文件]

示例功能
ln -s /etc/issue /issue.soft创建文件/etc/issue的软链接/issue.soft
ln /etc/issue /issue.hard创建文件/etc/issue的硬链接/issue.hard

软链接类似于windows的快捷方式,用ls -l查看可见其用“软链接->源文件”表示其为软链接;
而硬链接则类似于cp -p,但两者会同步更新,且删掉源文件后,硬链接依旧可以访问,若用ls -i查看,可见硬链接和源文件的id是一样的,这也是判断一个文件是否为硬链接的方法。
硬链接相当于实时的备份,但是其不能跨越硬盘分区存在,而软链接可以,此外,硬链接不可针对目录使用,而软链接可以。

2 权限管理命令chmod、chown、chgrp、umask

命令名称:chmod
英文原意:change the permissions mode of a file
所在路径:/bin/chmod
执行权限:所有用户
功能描述:改变文件或目录权限
语法:
chmod [{ugoa}{±=}{rwx}] [文件或目录]

chmod [mode=421] [文件或目录]
其中:
u、g、o、a分别表示user所有者,group所属组,other其他人,all所有人;
+、-、=则分别表示添加、删除、赋予相应权限;
r、w、x分别对应read读、write写和execute执行权限。
而421方式则用三位数来分别表示u、g、o的权限,其中r对应数字4,w对应数字2,x对应数字1,那么1,2,3,4,5,6,7分别对应的是–x、-w-、-wx、r–、r-x、rw-、rwx类型的权限(这里只是举例,实际上有些权限类型虽然可以赋予,但没有实际意义,几乎不会被使用),比如常见的755则表示对于所有者u,其有rwx权限,对于所属组g,有r-x权限,对于其他人o,有r-x权限。

示例功能
chmod g+w file1将file1文件的所属组添加写权限
chmod 777 dir1将文件夹dir1的所有用户权限全部开放

文件和目录的权限是不同的,应有所区分

代表字符权限对文件的意义对目录的意义
r读权限可以查看文件内容可以列出目录中的内容
w写权限可以修改文件内容可以在目录中创建、删除文件和目录
x执行权限可以执行文件可以进入目录

文件r权限,可查看文件内容,即可使用cat、tac、more、less、head、tail、vi、vim等命令查看文件。
文件w权限,可修改文件内容,即可使用vi或vim等文本编辑器来修改文件内容。
文件x权限,可执行文件,即可以像windows中的exe文件那样子来执行,比如用vi写一个Helloworld.cpp的C++文件如下

#include <iostream>
using namespace std;

int main()
{
	cout << "Hello world!" << endl;
	return 0;
}

然后用g++ -o Helloworld Helloworld.cpp将其编译生成可执行文件Helloworld,这时用ll Helloworld便可发现其有执行权限x,接下来直接./Helloworld来运行该执行文件,即可发现命令终端输出了Hello world!的字符了。

目录的读权限r表示可以列出目录中的内容,即可用ls将该目录的内容列表显示出来。
目录的写权限w表示可以更改该目录结构列表的权限,即在目录中创建新文件和新目录、删除旧文件(不管该文件权限如何)和旧目录、重命名文件和目录、移动文件和目录的位置。即可用touch、mkdir、rmdir、mv等命令。但cp命令不一定受此限制(复制操作并不该变源文件的位置和名字,只要保证目标目录有w权限即可完成cp操作,一言以蔽之,将文件或目录从没有w权限的源目录中复制出来是OK的,但是把文件复制到没有w权限的目录中是万万不行的!)
目录的执行权限x表示可以进入到该目录中进行操作,即可用cd命令进到该目录中去。

这也就是为什么很多目录的属性为755,即rwxr-xr-x,这样子,所有者拥有所有权限,而用户组和其他人只能ls查看该目录内容列表和cd进入该目录,而无法在该目录中篡改文件和目录架构,即保持该目录中结构列表的不变性。

命令名称:chown
英文原意:change file ownership
所在路径:/bin/chown
执行权限:管理员root
功能描述:改变文件或目录的所有者
语法:chown [用户] [文件或目录]

示例功能
chown zhangsan file1将文件file1的所有者改变为zhangsan

命令名称:chgrp
英文原意:change file group ownership
所在路径:/bin/chgrp
执行权限:管理员root
功能描述:改变文件或目录的所属组
语法:chgrp [用户组] [文件或目录]

示例功能
chgrp grp1 file1将文件file1的所属组改变为grp1

命令名称:umask
英文原意:
所在路径:
执行权限:所有用户
功能描述:显示、设置文件或目录的缺省(默认)权限
语法:umask [-S]

示例功能
umask显示0022,首0表示特殊权限,后面022表示缺失权限,用777减去该022得到755才是真正的默认权限
umask -S显示“u=rwx,g=rx,o=rx”,表明默认的权限
umask 077将默认权限设置为777和该077相减的值700,这只是临时设置,重启失效,永久设置需更改配置文件

注意:

  • 由于默认的文件是不具有x执行权限的(想想也知道,如果随便一个文件都能执行,那病毒岂不是太容易感染了),所以实际上文件的默认权限还要在umask中再减掉x权限(-1),这样子umask如果是0022的话,那么文件的权限就应该是777-022-111=644,即rw-r–r--。这也就是说,如果后面写shell脚本文件的话,是要手动将其权限改为755,对应rwxr-xr-x,赋予执行权限,这样才能运行该脚本,不然是没办法执行的。
  • 目录的默认权限依旧是777-022=755,即rwxr-xr-x,如果目录没有x权限,那么就没办法cd到目录里面去了,哈哈,所以目录的r和x权限一般都是同时赋予的,不然只能看不能进去,就只能干瞪眼了。

3 文件搜索命令which、whereis、find、grep

命令名称:which
英文原意:
所在路径:/usr/bin/which
执行权限:所有用户
功能描述:显示系统命令所在目录
语法:which [系统命令]

示例功能
which ls显示“/bin/ls”
which which显示“/usr/bin/which”

whereis与which相同,只是它还给出了命令的帮助文档放在哪儿。

命令名称:find
英文原意:
所在路径:/usr/bin/find
执行权限:所有用户
功能描述:查找文件或目录(注意查找的是文件名和目录名,不是文件内容)
语法:find [搜索路径] [关键字]

示例功能
find /etc -name init在目录/etc中查找文件init
find /etc -name “init?”在目录/etc中查找init开头的后面跟一个字符的文件(?)
find /etc -name “init*”在目录/etc中查找init开头的后面跟任意字符的文件(*)
find /etc -iname init加了i表示不区分大小写,即忽略大小写的搜索
find / -size +204800在根目录下查找大于100MB的文件,
+n、-n、n分别指定大于、小于、等于n个数据块,
一个数据块为512字节即0.5KB大小
find /home -user zhangsan在根目录下查找所有者为zhangsan的文件
find /home -group goodmen在根目录下查找所属组为goodmen的文件
find /etc -cmin -5查找5分钟之内被修改过属性的文件和目录
-a为access文件被访问过,
-c为change文件属性更改过,
-m为modify文件内容修改过
-min为分钟,-time为小时
5整好5分钟,+5超过5分钟,-5为五分钟之内
find /etc -size +163840 -a -size -204800在/etc目录下查找大于80MB小于100MB的文件
-a 表示两个条件同时满足,逻辑与
-o 表示两个条件满足一个即可,逻辑或
-type根据文件类型查找,f文件,d目录,l为链接文件
-exec查找后执行后续命令
-inum根据i节点查找

注意:

  • find查找过程比较消耗资源,除非万不得已,否则不建议使用,话说回来,如果自己规划较为合理,应该非常清楚文件放在哪里了,也用不着find了。

命令名称:grep
英文原意:
所在路径:/bin/grep
执行权限:所有用户
功能描述:在文件内容中搜索与字符串匹配的行并输出(注意查找的是文件内容,不是文件名)
语法:grep [指定字符串] [源文件]

示例功能
grep Hello ./helloworld.cpp在文件./helloworld.cpp中查找含有字符串Hello的行
grep -i hello ./helloworld.cpp-i表示不区分大小写的查找
grep -v ^// ./helloworld.cpp-v表示排出指定字符串,此例中把cpp文件以//起始的注释行排除掉
也可以用 grep -v ^# XX 来排除掉shell脚本中以#开始的注释行

4 帮助命令man、whatis、help

命令名称:man
英文原意:manual
所在路径:/usr/bin/man
执行权限:所有用户
功能描述:获得帮助信息
语法:man [命令或配置文件]

示例功能
man ls查看ls命令的帮助信息
man services查看配置文件services的帮助信息,注意只写配置文件,不写绝对路径/etc/services

注意:

  • 对于既是命令,又是配置文件的,比如passwd而言,用man passwd或man 1 passwd看到的是命令帮助,若想看到配置文件的帮助信息,用man 5 passwd,即可。

whatis命令用于查看命令的简短说明,如whatis ls。

help命令则用于查看shell内置命令的帮助信息,如help umask,help cd,help if,help while等。

5 用户管理命令useradd、passwd、who、w、uptime、userdel

useradd用于添加新用户,如:useradd zhangsan添加新用户zhangsan

passwd用于设置用户密码,如:passwd zhangsan给用户张三设置密码,注意普通用户只能给自己更改密码,而root可以给所有人设置密码。

Linux的单机上也提供了tty1-tty6的6种纯命令行终端界面供不同用户登录,tty7就是图形界面,分别用ctrl+alt+F1~F7就可以切换这些界面了,可以尝试在不同终端登录不同用户,并查询那些用户登录了系统,还可以让这些用户互发消息邮件等。

who用来查看登陆用户的信息,其显示登陆用户名、登陆终端、登陆时间、登陆主机的ip地址等信息。

w用来查看登陆用户的详细信息。

uptime显示系统持续运行时间,负载大小等信息,其实就是w查看的第一行内容。

userdel用来删除已有用户,如:userdel zhangsan删除用户zhangsan。

6 压缩解压命令gzip、gunzip、tar、zip、bzip2

命令名称:gzip
英文原意:GNU zip
所在路径:/bin/gzip
执行权限:所有用户
功能描述:压缩文件
语法:gzip 选项 [文件]
压缩后文件格式:.gz

示例功能
gzip Helloworld将Helloworld文件进行压缩,压缩后的文件名为Helloworld.gz

注意:

  • 与windows不同,Linux本身并无后缀名的说法,这里的后缀名只是为了便于他人理解该文件的类型;
  • gzip只能压缩文件,不能压缩目录,压缩目录的话用tar命令;
  • gzip压缩后将不保留源文件。

命令名称:gunzip
英文原意:GNU unzip
所在路径:/bin/gunzip
执行权限:所有用户
功能描述:解压缩.gz的压缩文件
语法:gunzip 选项 [压缩文件]

示例功能
gunzip Helloworld.gz将Helloworld.gz文件进行解压缩,解压缩后的文件名为Helloworld
gzip -d Helloworld.gz同上

注意:

  • 解压缩后不保留原压缩文件。

命令名称:tar
英文原意:
所在路径:/bin/tar
执行权限:所有用户
功能描述:打包目录
语法:tar 选项[cvfz] [目录]
-c 打包(文件格式.tar)
-v 显示详细信息
-f 指定文件名
-z 打包同时压缩(文件格式.tar.gz)

示例功能
tar -zcvf dir1.tar.gz dir1将目录dir1打包并压缩为dir1.tar.gz文件

注:

  • tar -zcvf dir1.tar.gz dir1等效于如下的两步操作,先tar -cvf dir1.tar dir1将目录dir1打包为文件dir1.tar,再gzip dir1.tar将文件dir1.tar压缩为dir1.tar.gz文件。
  • 打包的过程是保留原目录的(自然而然地,一般你也不希望被打包的目录被卡掉~)。

tar命令的解压操作(将选项中的c换成x即可)
-x 解包.tar文件
-v 显示详细信息
-f 指定解压文件名
-z 解压缩

示例功能
tar -zxvf dir1.tar.gz解压缩并解包dir1.tar.gz文件

注:

  • 同样是完成了两步操作,先解压,再解包;同样也是保留原压缩文件的。

命令名称:zip
英文原意:
所在路径:/usr/bin/zip
执行权限:所有用户
功能描述:压缩文件或目录
压缩后文件格式:.zip(zip压缩文件Windows和Linux都能识别的)
语法:zip 选项[-r] [压缩后文件名称] [文件或目录]
-r 压缩目录

示例功能
zip Helloworld.zip Helloworld压缩文件Helloworld为Helloworld.zip
zip -r dir1.zip dir1压缩目录dir1为dir1.zip文件

与zip对应的解压缩命令为unzip,直接unzip [压缩文件]即可,不用区分文件和目录。

命令名称:bzip2
英文原意:
所在路径:/usr/bin/bzip2
执行权限:所有用户
功能描述:压缩文件
压缩后文件格式:.bz2
语法:bzip2 选项[-k] [文件]
-k 产生压缩文件后保留源文件

示例功能
bzip2 -k file1压缩文件file1为file1.bz2

与bzip2对应的解压缩命令为bunzip2,直接bunzip2 -k file1.bz2即可解压同时保留原压缩文件。

7 网络命令write、wall、ping、ifconfig、mail、last、traceroute、netstat

write 用户名
给用户发信息,用ctrl+D结束
例:
write meiguanhua回车
Hello!按下ctrl+D
即给meiguanhua用户发送了Hello!的信息

wall 信息
给所有人发信息(广播信息,write to all)

ping测试网络是否通畅
ping -c n IP地址或网址,即给该IP地址或网址敲n次门,并显示是否通畅和延时等信息。
例如:
ping -c 5 www.baidu.com给百度网站ping5次看看通不通
ping 202.117.13.666给这个IP地址不断地ping下去,按下ctrl+c终止该ping操作

ifconfig查询网络配置信息,直接ifconfig回车就好了。
会显示有一块lo的本地环回网卡,这是一个虚拟的网卡,并不与真实外部网络连接,它有一个IP地址,你即便不连接外网,也可以ping通这个IP。
还会显示和外部连接的以太网网卡一块,可以看到IP地址、子网掩码、默认网关等信息。

mail 用户名
用来给指定用户发送邮件,输入字符后,用ctrl+D保存和发送。

last
显示目前和过去登陆系统的用户信息

traceroute IP地址或网址
这是查询本机到该IP或网址的中间所有IP节点。

netstat
显示网络相关信息。

8 关机重启命令shutdown、reboot

命令名称:shutdown
英文原意:
所在路径:/usr/sbin/shutdown
执行权限:root
功能描述:关机
语法:shutdown 选项[-hrc] [时间]
-h 关机
-r 重启
-c 取消前一个定时关机/重启命令

示例功能
shutdown -h now立即关机
shutdown -h 20:30在20:30时刻关机
shutdown -r now立即重启
shutdown -r 4:00在4:00 重启
shutdown -c取消前一个定时关机/重启命令

注意:

  • 对于远程登录操作的服务器,尽量不要关机(关机后再开就不得不大老远地跑过去按电源了),可以重启。
  • 其他的关机命令,如halt、poweroff、init 0等,不建议使用。
  • 其他的重启命令,如reboot、init 6等,不建议使用。
  • 关于init命令,其后面跟0-6中7个数字中的一个,用来表示系统的运行级别,具体如下:
标号系统运行级别
0关机
1单用户,类似windows的安全模式,仅启动最少的核心程序,用作修复,无图形界面
2不完全用户,不含NFS服务(Network File System)
3完全多用户
4未分配
5图形界面
6重启
  • 其中1-3无图形界面,/etc/inittab为init的默认配置文件,可以修改系统默认运行级别,注意,不能把0和6设置为系统的默认运行级别。

  • 用runlevel命令可以查看系统的当前和前一个运行级别。

  • 登陆服务器后用logout来退出登录状态。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值