由于要写一篇实验报告 需要一些linux命令的介绍
所以有了本文 写(水)一篇linux基础命令介绍
useradd
可用来建立用户帐号。帐号建好之后,再用 passwd 设定帐号的密码。而可用 userdel
删除帐号。使用 useradd
指令所建立的帐号,实际上是保存在 /etc/passwd
文本文件中。
可以查看一下 命令怎么使用的 一些参数说明
useradd --help
下面只介绍几个常用参数 具体了解可以help
查看一下
添加一般用户
useradd tt
为添加的用户指定相应的用户组
useradd -g root tt # -g<群组> 指定用户所属的群组
创建一个系统用户
useradd -r tt # -r 建立系统帐号
为新添加的用户指定home目录
useradd -d /home/myd tt #-d<登入目录> 指定用户登入时的起始目录
建立用户且制定ID
useradd tt -u 544 #-u 指定用户ID
useradd -p
这里重点说一下这个-p参数
-p是可以直接给新用户设置密码的,但密码的格式是密文的形式
你设置的密码是明文,而指令会自动给你加密成密文,登录使需要输入加密的密文才能登陆
怎么拿到密文呢?
在/etc/shadow
的第二个字段可以拿到这个密文,在用p直接设置密码就行了
以上操作应该都需要较高权限 sudo
usermod
可用来修改用户帐号的各项设定
下面只介绍几个常用参数 具体了解可以help
查看一下
更改登录目录
usermod -d /home/tt2 root #-d登入目录> 修改用户登入时的目录 <用户账号>root
改变用户的uid
usermod -u 777 root #-u 修改用户ID
userdel
可删除用户帐号与相关的文件。若不加参数,则仅删除用户帐号,而不删除相关文件。
下面只介绍几个常用参数 具体了解可以help
查看一下
强制删除tt用户
userdel -r tt #-r 删除用户登入目录以及目录中所有文件
passwd
命令用来更改使用者的密码
下面只介绍几个常用参数 具体了解可以help
查看一下
修改用户密码
passwd tt #设置runoob用户的密码
Enter new UNIX password: #输入新密码,输入的密码无回显
Retype new UNIX password: #确认密码
passwd: password updated successfully
显示账号密码信息
passwd -S tt #-S 显示密码信息
tt P 05/13/2020 0 99999 7 -1
删除用户密码
passwd -d lx138 #-d 删除密码
passwd: password expiry information changed.
su
命令用于变更为其他使用者的身份,除 root 外,需要键入该使用者的密码。
下面只介绍几个常用参数 具体了解可以help
查看一下
变更帐号为 root 并在执行 ls 指令后退出变回原使用者
su -c ls root #-c command 或 --command=command 变更为帐号为 USER 的使用者并执行指令(command)后再变回原来使用者
变更帐号为 root 并传入 -f 参数给新执行的 shell
su root -f
变更帐号为 tt 并改变工作目录至 tt 的家目录(home dir)
su - tt
ls
命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录)
下面只介绍几个常用参数 具体了解可以help
查看一下
列出根目录(\)下的所有目录:
ls /
列出目前工作目录下所有名称是 s 开头的文件,越新的排越后面 :
ls -ltr s*
#-l 除文件名称外,亦将文件型态、权限、拥有者、文件大小等资讯详细列出
#-t 将文件依建立时间之先后次序列出
#-r 将文件以相反次序显示(原定依英文字母次序)
将 /bin 目录以下所有目录及文件详细资料列出 :
ls -lR /bin #-R 若目录下有文件,则以下之文件亦皆依序列出
列出目前工作目录下所有文件及目录,目录于名称后加 /
, 可执行档于名称后加 *
:
ls -AF
#-a 显示所有文件及目录 (ls内定将文件名或目录名称开头为"."的视为隐藏档,不会列出)
#-A 同 -a ,但不列出 "." (目前目录) 及 ".." (父目录)
#-F 在列出的文件名称后加一符号;例如可执行档则加 "*", 目录则加 "/"
cd
命令用于切换当前工作目录至 dirName(目录参数)
其中 dirName 表示法可为绝对路径或相对路径。若目录名称省略,则变换至使用者的 home
目录 (也就是刚 login 时所在的目录)
另外,~
也表示为 home
目录 的意思,.
则是表示目前所在的目录,..
则表示目前目录位置的
上一层目录
跳到 /usr/bin/ (绝对路径) :
cd /usr/bin
跳到自己的 home 目录 :
cd ~
跳到目前目录的上上两层 (相对路径):
cd ../..
执行pwd
指令可立刻得知您目前所在的工作目录的绝对路径名称
具体了解可以help
查看一下
查看当前所在目录:
pwd
/root/test #输出结果
mkdir
命令用于建立名称为 dirName 之子目录
在工作目录下,建立一个名为 tt
的子目录 :
mkdir tt
在工作目录下的 tt
目录中,建立一个名为 Test 的子目录。 若 tt
目录原本不存在,则建立一个。(注:本例若不加 -p
,且原本 t
t目录不存在,则产生错误。)
mkdir -p tt/Test #-p 确保目录名称存在,不存在的就建一个
rmdir
命令删除空的目录
将工作目录下,名为 tt
的子目录删除 :
rmdir tt
在工作目录下的 tt
目录中,删除名为 Test
的子目录。若 Test
删除后,tt
目录成为空目录,则 tt
亦予删除。
rmdir -p tt/Test #-p 是当子目录被删除后使它也成为空目录的话,则顺便一并删除
cp
命令主要用于复制文件或目录。
下面只介绍几个常用参数 具体了解可以help
查看一下
使用指令cp
将当前目录test/
下的所有文件复制到新目录newtest
下,输入如下命令:
cp –r test/ newtest #-r:若给出的源文件是一个目录文件,此时将复制该目录下所有的子目录和文件。
rm
命令用于删除一个文件或者目录
下面只介绍几个常用参数 具体了解可以help
查看一下
删除文件可以直接使用rm
命令,若删除目录则必须配合选项-r
,例如:
rm test.txt
rm:是否删除 一般文件 "test.txt"? y
rm homework
rm: 无法删除目录"home": 是一个目录
rm -r homework
rm:是否删除 目录 "home"? y
#-r 将目录及以下之档案亦逐一删除
删除当前目录下的文件和目录 ,相对路径
rm -r *
经典调侃
rm -rf /*
#-f 即使原档案属性设为唯读,亦直接删除,无需逐一确认
#-i 删除前逐一询问确认
/*
相当于绝对路径的根路径所有文件,-rf
强制删除此目录及子目录文件不询问,执行此命令就所有文件被删除了
文件一旦通过rm
命令删除,则无法恢复,所以必须格外小心地使用该命令
mv
命令用来为文件或目录改名、或将文件或目录移入其它位置
下面只介绍几个常用参数 具体了解可以help
查看一下
将文件 tt
更名为 test
:
mv tt test
将info
目录放入logs
目录中。注意,如果logs
目录不存在,则该命令将info
改名为logs
mv info/ logs
再如将/usr/tt下的所有文件和目录移到当前目录下,命令行为:
mv /usr/tt/* .
ln
命令是一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接,应该跟windows下的快捷方式差不多
当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln
命令链接(link)它就可以,不必重复的占用磁盘空间
下面只介绍几个常用参数 具体了解可以help
查看一下
给文件创建软链接,为tt.log文件创建软链接ttlog,如果tt.log丢失,ttlog将失效:
ln -s tt.log ttlog #-s 软链接(符号链接)
给文件创建硬链接,为tt.log创建硬链接ttlog,tt.log与ttlog的各项属性相同
ln tt.log ttlog
cat
命令用于连接文件并打印到标准输出设备上
下面只介绍几个常用参数 具体了解可以help
查看一下
把 t1 的文档内容加上行号后输入 t2 这个文档里:
cat -n t1 > t2 #-n 或 --number:由 1 开始对所有输出的行数编号
把 t1 和 t2 的文档内容加上行号(空白行不加)之后将内容附加到 t3 文档里:
cat -b t1 t2 >> t3 #-b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号
清空 /etc/test.txt 文档内容:
cat /dev/null > /etc/test.txt
more
命令类似 cat
,不过会以一页一页的形式显示,更方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能(与 vi
相似),使用中的说明文件,请按 h
下面只介绍几个常用参数 具体了解可以help
查看一下
逐页显示 tt 文件内容,如有连续两行以上空白行则以一行空白行显示。
more -s tt
从第 20 行开始显示 tt文件内容。
more +20 tt
V
调用vi编辑器
!
命令 调用Shell,并执行命令
q
退出more
less
与 more
类似,但使用 less 可以随意浏览文件,而 more
仅能向前移动,却不能向后移动,而且 less
在查看之前不会加载整个文件
下面只介绍几个常用参数 具体了解可以help
查看一下
查看文件
less tt.log
ps
查看进程信息并通过less
分页显示
ps -ef |less
查看命令历史使用记录并通过less
分页显示
history | less
浏览多个文件
less t1.log t2.log
#按n后,切换到t2.log
#按p后,切换到t1.log
touch
命令用于修改文件或者目录的时间属性,包括存取时间和更改时间,若文件不存在,系统会建立一个新的文件
ls -l
可以显示档案的时间记录
下面只介绍几个常用参数 具体了解可以help
查看一下
使用指令touch
时,如果指定的文件不存在,则将创建一个新的空白文件。例如,在当前目录下,使用该指令创建一个空白文件file,输入如下命令:
touch file #创建一个名为“file”的新的空白文件
如果file文件存在,则仅修改了file文件的时间属性
文件调用权限分为三级 : 文件拥有者、群组、其他。利用 chmod
可以藉以控制文件如何被他人所调用。
下面只介绍几个常用参数 具体了解可以help
查看一下
将文件 tt.txt 设为所有人皆可读取 :
chmod ugo+r tt.txt
#u 表示该文件的拥有者
#g 表示与该文件的拥有者属于同一个群体(group)者
#o 表示其他以外的人
#a 表示这三者皆是
#+ 表示增加权限
将文件 tt.txt 设为所有人皆可读取 :
chmod a+r tt.txt
#r 表示可读取
将文件 t1.txt 与 t2.txt 设为该文件拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 :
chmod ug+w,o-w t1.txt t2.txt
#w 表示可写入
#- 表示取消权限
将 tt.py 设定为只有该文件拥有者可以执行 :
chmod u+x tt.py
#x 表示可执行
将目前目录下的所有文件与子目录皆设为任何人可读取 :
chmod -R a+r *
#-R : 对目前目录下的所有文件与子目录进行相同的权限变更(即以递回的方式逐个变更)
chmod
也可以用数字来表示权限
chmod 777 tt
其中a
,b
,c
各为一个数字
分别表示User
、Group
、及Other
的权限
r=4,w=2,x=1
chmod abc file
find
命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find
命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示
下面只介绍几个常用参数 具体了解可以help
查看一下
将目前目录及其子目录下所有延伸档名是 c 的文件列出来。
find . -name "*.c"
将目前目录其其下子目录中所有一般文件列出
find . -type f
#-type c : 文件类型是 c 的文件。
#d: 目录
#c: 字型装置文件
#b: 区块装置文件
#p: 具名贮列
#f: 一般文件
#l: 符号连结
#s: socket
查大于512k的文件
find . -size +512k
#-size n : 文件大小n 单位,b 代表 512 位元组的区块,c 表示字元数,k 表示 kilo bytes,w 是二个位元组
grep
命令用于查找文件里符合条件的字符串。
grep
指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,预设 grep
指令会把含有范本样式的那一列显示出来。若不指定任何文件名称,或是所给予的文件名为 -
,则 grep
指令会从标准输入设备读取数据
下面只介绍几个常用参数 具体了解可以help
查看一下
在当前目录里第一级文件夹中寻找包含指定字符串的 .in
文件
grep "字符串" /.in
从文件内容查找与正则表达式匹配的行:
grep –e "正则表达式" filename
#-e<范本样式> 或 --regexp=<范本样式> : 指定字符串做为查找文件内容的样式
查找时不区分大小写:
grep –i "被查找的字符串" filename
#-i 或 --ignore-case : 忽略字符大小写的差别
查找匹配的行数:
grep -c "被查找的字符串" filename
#-n 或 --line-number : 在显示符合样式的那一行之前,标示出该行的列数编号
从文件内容查找不匹配指定字符串的行:
grep –v "被查找的字符串" filename
#-v 或 --revert-match : 显示不包含匹配文本的所有行
tar
命令用于备份文件。
tar
是用来建立,还原备份文件的工具程序,它可以加入,解开备份文件内的文件
下面只介绍几个常用参数 具体了解可以help
查看一下
压缩文件 非打包
touch a.c
tar -czvf test.tar.gz a.c
#压缩 a.c文件为test.tar.gz
#-c或--create 建立新的备份文件
#-z或--gzip或--ungzip 通过gzip指令处理备份文件
#-v或--verbose 显示指令执行过程
#-f<备份文件>或--file=<备份文件> 指定备份文件
列出压缩文件内容
tar -tzvf test.tar.gz
#-t或--list 列出备份文件的内容
解压文件
tar -xzvf test.tar.gz
#-x或--extract或--get 从备份文件中还原文件
gzip
命令用于压缩文件。
gzip
是个使用广泛的压缩程序,文件经它压缩过后,其名称后面会多出.gz
的扩展名
下面只介绍几个常用参数 具体了解可以help
查看一下
压缩文件时,不需要任何参数
gzip test.txt
显示压缩率
gzip –l test.txt.gz
#-l或--list 列出压缩文件的相关信息
解压缩
gunzip test.txt.gz
ps
命令用于显示当前进程 (process) 的状态
下面只介绍几个常用参数 具体了解可以help
查看一下
显示进程信息
ps -A #-A 列出所有的进程
显示指定用户信息
ps -u root #-u 列出指定用户的进程
显示所有进程信息,连同命令行
ps -ef
#-e 参数代表显示所有进程
#-f 参数代表全格度式
kill
命令用于删除执行中的程序或工作
kill
可将指定的信息送至程序。预设的信息为SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用SIGKILL 9信息尝试强制删除程序。程序或工作的编号可利用ps
指令或jobs
指令查看
下面只介绍几个常用参数 具体了解可以help
查看一下
杀死进程
kill 12345
强制杀死进程
kill -KILL 123456
发送SIGHUP信号,可以使用一下信号
kill -HUP pid
彻底杀死进程
kill -9 123456
显示信号
kill -l
杀死指定用户所有进程
kill -9 $(ps -ef | grep tt)
# 过滤出tt用户进程
kill -u tt
df
命令用于显示目前在Linux系统上的文件系统的磁盘使用情况统计
具体了解可以help
查看一下
显示文件系统的磁盘使用情况统计:
df
free
命令用于显示内存状态。
free
指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等
具体了解可以help
查看一下
显示内存使用情况
free
ifconfig
命令用于显示或设置网络设备。
ifconfig
可设置网络设备的状态,或是显示目前的设置
下面只介绍几个常用参数 具体了解可以help
查看一下
显示网络设备信息
ifconfig
启动关闭指定网卡
ifconfig eth0 down
ifconfig eth0 up
配置IP地址
ifconfig eth0 192.168.xxx.xxx
启用和关闭ARP协议
ifconfig eth0 arp #开启
ifconfig eth0 -arp #关闭
设置最大传输单元
ifconfig eth0 mtu 3000
#设置能通过的最大数据包大小为 3000 bytes
#mtu<字节> 设置网络设备的MTU
ping
命令用于检测主机。
执行ping
指令会使用ICMP传输协议,发出要求回应的信息,若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常
下面只介绍几个常用参数 具体了解可以help
查看一下
检测是否与主机连通
ping 192.169.xxx.xxx
#ping 可以指定ip地址或者域名
#需要手动终止Ctrl+C
#-c<完成次数> 设置完成要求回应的次数
netstat
命令用于显示网络状态。
利用netstat
指令可让你得知整个Linux系统的网络情况
下面只介绍几个常用参数 具体了解可以help
查看一下
显示详细的网络状况
netstat -a
-a或--all 显示所有连线中的Socket
显示当前户籍UDP连接状况
netstat -nu
-n或--numeric 直接使用IP地址,而不通过域名服务器
-u或--udp 显示UDP传输协议的连线状况
显示UDP端口号的使用情况
netstat -apu
#-p或--programs 显示正在使用Socket的程序识别码和程序名称
telnet
命令用于远端登入。
执行telnet
指令开启终端机阶段作业,并登入远端主机
具体了解可以help
查看一下
登录远程主机
telnet 192.168.xxx.xxx