文章目录
基本命令
1.1 命令入门
1.1.1 命令提示符详解
[root@localhost ~]# #/root
[jinxf@localhost ~]$ #/home/jinxf
用户名@主机名 当前目录 #系统权限 $普通权限
1.pwd 显示当前用户
2.cd 进入某个目录
3.ls 显示当前目录下文件,可见文件(将ls改名,系统找的/bin下的ls文件,需要添加–color=auto ,改名 mv ls lb,–表示后面是单词,-表示后面是选项,多个参数用空格隔开)
ls -l 显示详细信息,ls -l -a显示全部信息,包括隐藏文件,简写ls -al
4.useradd sxt 创建普通用户
5.su sxt进入sxt用户
6.exit 退出当前用户,su后面要退出
7.pstree -p 查看进程树,p是进程id
8.history 查看历史命令
9.alias ll显示别名
1.1.2 命令格式
命令 选项 参数 (三者之间要有空格,区分大小写)
command -options
案例演示
[root@node1 ~]# ls -a
. a anaconda-ks.cfg .bash_logout .bashrc install.log .tcshrc x
… abc .bash_history .bash_profile .cshrc install.log.syslog .viminfo xyz
[root@node1 ~]# ls -a -l
total 72
dr-xr-x—. 6 root root 4096 Nov 27 12:37 .
dr-xr-xr-x. 22 root root 4096 Nov 27 09:22 …
-rw-------. 1 root root 900 Nov 27 03:47 anaconda-ks.cfg
-rw-------. 1 root root 828 Nov 27 09:48 .bash_history
-rw-r–r--. 1 root root 18 May 20 2009 .bash_logout
[root@node1 ~]# ls -al install.log
-rw-r–r--. 1 root root 8815 Nov 27 03:47 install.log
[root@node1 ~]# ls -al install.log install.log.syslog
-rw-r–r--. 1 root root 8815 Nov 27 03:47 install.log
-rw-r–r--. 1 root root 3384 Nov 27 03:46 install.log.syslog
[root@node1 ~]# ls -al install*
-rw-r–r--. 1 root root 8815 Nov 27 03:47 install.log
-rw-r–r--. 1 root root 3384 Nov 27 03:46 install.log.syslog
[root@node1 ~]# ls -al *.log
-rw-r–r--. 1 root root 8815 Nov 27 03:47 install.log
[root@node1 ~]# ls -al .log
-rw-r–r--. 1 root root 8815 Nov 27 03:47 install.log
-rw-r–r--. 1 root root 3384 Nov 27 03:46 install.log.syslog
1.2 获取命令的帮助
1.2.1 查手册&搜索引擎
手册见《参考手册&资料》
搜索:必应 谷歌 百度 等
1.2.2 man的使用
enter向下一行
空格按页向下翻 b向上翻页
p直接翻到首页
查找按 /要查找的内容,查找 下一个/上一个:按n/N;
退出按q
扩展内容:
man
- 1用户命令(/bin,/usr/bin,/usr/local/bin)
- 2系统调用
- 3库函数
- 4特殊文件(设备文件)
- 5文件格式(配置文件的语法)
- 6游戏
- 7杂项(Miscellaneous)
- 8管理命令(/sbin,/usr/sbin,/usr/local/sbin)
指定查看某种帮助:
[root@node1 ~]# man 2 read
1.2.3 命令 --help
[root@node1 ~]# mv --help****
1.3 echo输出
echo -n表示不要另起新行
[root@node1 ~]# echo “hello world”
hello world
[root@node1 ~]# echo -n “hello world”
hello world[root@node1 ~]#
-e表示解释逃逸字符
[root@node1 ~]# echo -e “hello \nworld”
hello
world
[root@node1 ~]# echo “hello \nworld”
hello \nworld
1.4 环境变量:PATH
当在shell中执行命令的时候,默认到PATH指定的路径中查找可执行文件。
如果在PATH中的多个目录都包含该可执行文件,则执行最先找到的。
[root@node1 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
如果找不到,这提示命令不识别。
1.5 ls
ls命令用于列出目录内容
ls
添加-l以长格式输出,列出根目录下内容的详细列表
ls -l
也可以后面跟多个目录,列出多个目录的内容
ls / /usr
也可以通过命令的别名列出详细列表
ll
ls -a
ls -a -l
ls -al
ls -al *.log 过滤文件
ls -R a 显示子文件家的子文件
./当前目录
…/上级目录
1.6 pwd
打印当前工作目录路径
pwd
1.7 cd
cd用于更改shell工作目录,也就是切换目录 change directory cd
cd /etc
如果cd后什么都不写,表示直接回当前用户家目录
cd
cd /etc
cd后跟波浪线,也表示回用户家目录
cd ~
cd后也可以跟减号(-)用以表示回到最后一次切换之前的目录,多次使用减号在最近两个目录之间切换(返回)
cd /etc/sysconfig/network-scritps
cd -****
root用户可以直接通过绝对路径进到普通用户的家目录
cd /home/god
cd …
ll
也可以直接跟波浪线用户名表示直接进入到某个用户的家目录
cd ~bjsxt 到用户bjsxt家中去,root不受限制
1.8 mkdir
mkdir用于创建目录
mkdir abc
mkdir a1 a2 a3
如果直接创建多层目录,则报错,因为默认只能创建最后一级目录
mkdir a/b/c
可以添加**-p**选项,用以创建多层目录,因为系统发现某一级目录不存在的时候创建父目录
mkdir -p a/b/c
也可以在mkdir后跟多个目录,用于一次性创建多个目录
mkdir ./abc/1dir ./abc/2dir ./abc/3dir
但是可以使用大括号高效创建相似的目录
mkdir ./abc/{x,y,z}dir
Mkdir ./abc/{x…z}dir(不包括z 如:mkdir b{1…1000},a…z,从a到z)
1.9 rm
rm用于删除文件
直接删除,需要确认yes
rm file
添加-f选项可以不用确认强制删除
rm -f file
如果rm的参数是目录,则会提示需要迭代删除而不能成功
rm adir
此时可以添加-r参数表示迭代删除
rm -r dira
也可以使用-rf选项,迭代强制删除某个文件或目录,此命令慎用。
rm -rf dira
尤其是
!!! rm -rf /
1.10 cp
• cp拷贝
Ø cp 文件… 目标目录 拷贝文件…到目标目录,可以同时拷贝多个文件,文件名之间用空格隔开
Ø cp -r 目录 目标目录
1.11 mv
mv用于移动或重命名文件
• 移动文件/目录 #mv 源文件/[源文件1 源文件2] 目标
• Linux中没有专门改名的命令,兼职改名工作:
1.12 ln
用于创建硬链接或软链接(快捷方式)
ln
可以使用ll -i选项让ll打印文件的inode信息
[root@node1 ~]# cp /etc/profile ./
[root@node1 ~]# ll –i
创建硬链接****
[root@node1 ~]# ln profile ln1
**创建软链接:**让ln2指向profile, 给profile创建软连接,相当于windows中的快捷方式
[root@node1 ~]# ln -s profile ln2
再次打印inode信息查看
[root@node1 ~]# ll -i
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-G1tYNXc6-1604490314313)(file:///C:\TMP\ksohtml218344\wps1.jpg)]](https://img-blog.csdnimg.cn/20201105202657305.png#pic_center)
如果两个文件inode一样,表示两个文件(ln1和profile)实际上是同一个文件,硬连接。如果inode不一样,但是有ln2**->**profile,表示ln2是profile的软链接。
注意:ln1、ln2都不能提前创建,或是已经存在的文件,否则报错。**
ln: creating symbolic link `ln1’: File exists
软连接删除不会删除源文件
硬链接删除后如果源文件没有硬链接,则文件被删除
如何在不使用mv的情况下移动文件?可以操作硬连接
1.13 ps
可以通过命令查看系统内进程信息
ps -ef
查看磁盘使用情况
vim 编辑文件,ctrl z变成后台进程,jobs命令查看后台进程
nohup 命令 & //将程序变成后台执行,将程序bach后面的命令变成分支前端
tail -f 文件名 //监听后台文件的变化状态
pstree //查看进程树
fg //进程变成带+号,按顺序执行
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5z0NjeEt-1604490314326)(file:///C:\TMP\ksohtml218344\wps2.jpg)]](https://img-blog.csdnimg.cn/2020110520271415.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMyMTY4NjE3,size_16,color_FFFFFF,t_70#pic_center)
l 进程查看命令
Ø ps(process status) :将某个时间点的程序运作情况截取下来
Ø 选项和参数
Ø a :和输入终端(terminal) 关联的所有 process,通常与x一起使用,
列出完整信息。
Ø x :后台进程,通常与 a 这个参数一起使用,可列出较完整信息
Ø u :有效使用者 (effective user) 相关的 process
l 常用组合
Ø ps aux 观察系统所有的程序数据 (常用)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EcMz7BOL-1604490314334)(file:///C:\TMP\ksohtml218344\wps3.jpg)]](https://img-blog.csdnimg.cn/20201105202728780.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMyMTY4NjE3,size_16,color_FFFFFF,t_70#pic_center)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7l0udr6k-1604490314353)(file:///C:\TMP\ksohtml218344\wps4.jpg)]](https://img-blog.csdnimg.cn/20201105202737703.png#pic_center)
• 以下为各选项的含义****
Ø USER:该 process 属于那个使用者****
Ø **PID :该 process 的程序标识符。 ******
Ø **%CPU:该 process 使用掉的 CPU 资源百分比; ******
Ø **%MEM:该 process 所占用的物理内存百分比; ******
Ø **VSZ :该 process 使用掉的虚拟内存量 (Kbytes) ******
Ø **RSS :该 process 占用的物理的内存量 (Kbytes) ******
Ø **TTY :该 process 是在那个终端机上面运作,若与终端机无关则显示 ?, 另外, tty1-tty6 是本机上面的登入者程序,若为 pts/0 等等的,则表示为由网络连接进主机的程序。 ******
Ø **STAT:该进程目前的状态,状态显示与ps -l 的 S 旗标相同 (R/S/D/T/Z) ******
Ø **START:该 process 被触发启动的时间; ******
Ø **TIME :该 process 实际使用 CPU 运作的时间。 ******
Ø **COMMAND:该程序的实际命令为何? ******
进入到/usr目录;usr不是用户的意思,而是unix software resources的简写
cd /usr
查看内容
ll
1.14 test命令
计算3 > 2的结果,打印返回值,计算3 < 2的结果,打印返回值。
echo $? 打印上一行命令的执行结果
-eq 等于
-ge >=
-le <=
[root@node1 ~]# test 3 -gt 2
[root@node1 ~]# echo $?
0
[root@node1 ~]# test 3 -lt 2
[root@node1 ~]# echo $?
1
[root@node1 ~]# test 5 -lt 2
[root@node1 ~]# echo $?
1
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9FJPGo00-1604490314356)(file:///C:\TMP\ksohtml218344\wps5.jpg)]](https://img-blog.csdnimg.cn/20201105202837588.png#pic_center)
逻辑判断
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zgUUFcBA-1604490314358)(file:///C:\TMP\ksohtml218344\wps6.jpg)]](https://img-blog.csdnimg.cn/20201105202844124.png#pic_center)
成立返回0(true),不成立返回1(false)
[root@node1 ~]# [ 3 -gt 2 ]
[root@node1 ~]# echo $?
0
[root@node1 ~]# [ 5 -lt 2 ]
[root@node1 ~]# echo $?
1
[root@node1 ~]# [ 5 -lt 2]
-bash: [: missing `]’
[root@node1 ~]# [5 -lt 2 ]
-bash: [5: command not found
[]和内容之间一定要有空格,否则抛错。