Linux基础命令
文章目录
- Linux基础命令
- @[toc]
- 1.文件的权限
- 2.文件查看(ls命令)
- 3.查看绝对路径(打印当前目录)
- 4.创建目录(mkdir命令)
- 5.回显(echo命令)
- 6.删除(rm命令)
- 7.页首末查看
- 8.复制(cp命令)
- 9.过滤某一个文件(grep命令)
- 10.通配符
- 11.压缩与解压缩(gzip、bzip2、xz、zip)
- 12.df -h
- 13.less文件名
- 14.cat格式给文件里面写入内容(cat命令)
- 15.sed命令
- 16.find命令查找相关操作
- 17.重定向操作
- 18.用户和组管理
- 19.密码设置及密码破解
- 20.vim编辑命令使用
- 21.进程管理
- 22.进程查杀(kill)
- 23.权限管理
- 23.ACL文件访问控制列表(setfacl)
- 24.权限委派
- 25.软件管理
- 26.服务控制得方式
- 27,防火墙放行端口操作
文章目录
- Linux基础命令
- @[toc]
- 1.文件的权限
- 2.文件查看(ls命令)
- 3.查看绝对路径(打印当前目录)
- 4.创建目录(mkdir命令)
- 5.回显(echo命令)
- 6.删除(rm命令)
- 7.页首末查看
- 8.复制(cp命令)
- 9.过滤某一个文件(grep命令)
- 10.通配符
- 11.压缩与解压缩(gzip、bzip2、xz、zip)
- 12.df -h
- 13.less文件名
- 14.cat格式给文件里面写入内容(cat命令)
- 15.sed命令
- 16.find命令查找相关操作
- 17.重定向操作
- 18.用户和组管理
- 19.密码设置及密码破解
- 20.vim编辑命令使用
- 21.进程管理
- 22.进程查杀(kill)
- 23.权限管理
- 23.ACL文件访问控制列表(setfacl)
- 24.权限委派
- 25.软件管理
- 26.服务控制得方式
- 27,防火墙放行端口操作
1.文件的权限
- 普通文件
d 目录文件
s 套接字文件
b 块设备文件
l 链接文件
c 字符文件
2.文件查看(ls命令)
文件查看
[root@localhost ~]# ls
abc anaconda-ks.cfg avc EOF shen
[root@localhost ~]# ls -l
总用量 8
drwxr-xr-x. 2 root root 6 7月 6 15:00 a
3.查看绝对路径(打印当前目录)
查看绝对路径
[root@localhost ~]# pwd
/root
pwd : 打印当前目录 print work directory
4.创建目录(mkdir命令)
mkdir
- p 创建父目录
[root@localhost ~]# mkdir a
[root@localhost ~]# mkdir -p b
[root@localhost ~]# ls
a abc anaconda-ks.cfg avc b EOF shen
5.回显(echo命令)
echo
[root@localhost ~]# echo hello word
hello word
6.删除(rm命令)
rm:<remove>
- r 递归删除
[root@localhost ~]# ls
a abc anaconda-ks.cfg avc b EOF shen
[root@localhost ~]# rm -rf b
[root@localhost ~]# ls
a abc anaconda-ks.cfg avc EOF shen
7.页首末查看
head -3查看前三行
tail -1 查看后一行
8.复制(cp命令)
CP: 复制 <copy>
cp 文件/目录 目标文件
9.过滤某一个文件(grep命令)
grep 例:
已知avc文件有内容(liuqiangchishi),用grep shi abc 就能查看
grep 关键字 文件名
grep -C 1 关键字 文件名
-A 后一行
-B 前一行
-C 前后各一行
例:[root@localhost ~]# cat avc
liuqiangchishi
shen
long
feui
fdedsd
gfad
[root@localhost ~]# grep shi avc
liuqiangchishi
[root@localhost ~]#
10.通配符
常见的通配符
? . *
11.压缩与解压缩(gzip、bzip2、xz、zip)
gzip
gzip的解压方式:-zcf test.tar.gz
bzip2
bzip2的解压方式:-jcf test.atar.bz2
xz
xz的解压方式:-Jcf test.tar.xz
xf解压方式能解压以上三种压缩格式。
zip
zip的解压方式:unzip进行解压缩
12.df -h
df -h |awk '{print
$3}'
df -h |awk 'NR==6{print $3}'
例:
[root@localhost ~]# df -h | awk '{print$3}'
已用
1.2G
0
0
12M
0
142M
33M
0
13.less文件名
/查找的内容
b 往前翻 空格往后翻
n 查找下一个
more 文件名 翻屏查看文件 (空格)
N 查找上一个
14.cat格式给文件里面写入内容(cat命令)
[root@localhost ~]# touch avc
[root@localhost ~]# cat > avc <<EOF
> liuqiangchishi
> shen
> long
> feui
> fdedsd
> gfad
> EOF
15.sed命令
sed
sed :编辑一个或多个文件、简化对文件的反复操作、编写转换程序等
-n :只显示处理后的结果
set -n '/查找/p(打印)' 文件名
-i : 替换
set -i 's(取代)/改变前/改变后/g' 文件名
16.find命令查找相关操作
find -name abc 在当前目录下找abc文件(在这些操作之前必须得现有abc这个文件)
[root@localhost ~]# find -name abc
./abc
find / -name abc 在/下找abc文件
[root@localhost ~]# find / -name abc
/root/abc
[root@localhost ~]#
find -type f 查找普通文件(在这里由于文件很多, 省略部分)
[root@localhost ~]# find -type f
./.bash_logout
./.bash_profile
./.bashrc
find -type d 目录文件
[root@localhost ~]# find -type d../shen./abc./a
查找某文件夹下超过30天的.log日志,并删除掉。
[root@localhost ~]# find /xxx/xxx/xxx/ -mtime +30 -name "*.log" -exec rm -rf {} \;
查找系统某位置文件大于30M的文件并删除
查找大于30M的文件
[root@localhost ~]# find / -type f -size +30M
查找大于30M的文件并删除
[root@localhost ~]# find / -type f -size +30M | xargs rm -rf
find -name '*d’查找所有文件后缀为d的文件
find -name '*d'
find -name ‘*d’ -exec rm -rf { } ; 删除所有后缀名为d的文件(在上条命令得基础上删除后缀名为d得删除掉)
find -name '*d' -exec rm -rf { } \;
find -name 查找文件名 -exec mv { } 文件名 / \ ;查找文件名为什么,移动都某文件下面
注:管道符:把前面命令执行的结果交给后面的命令去处理, 这就是管道符。
17.重定向操作
重定向操作分为两种(操作前请先创建abc)
输出重定向:覆盖重定向/追加重定向
[root@localhost ~]# echo "shen" abcshen abc
[root@localhost ~]# echo "long" abclong abc
[root@localhost ~]#
追加重定向
[root@localhost ~]# echo "long" > abc
[root@localhost ~]# cat abclong
[root@localhost ~]# echo "long" >> abc
[root@localhost ~]# cat abclonglong
[root@localhost ~]#
用cat命令把abc里面的文件内容写入到def里面,两个文件内容一致。
[root@localhost ~]# cat > def < abc
[root@localhost ~]# cat deflonglong
[root@localhost ~]# cat abclonglong
[root@localhost ~]#
18.用户和组管理
用户创建
[root@localhost ~]# useradd tom
[root@localhost ~]# id tomuid=1001(tom) gid=1001(tom) 组=1001(tom)
[root@localhost ~]#
指定uid创建用户
[root@localhost ~]# useradd -u 1202 long
[root@localhost ~]# id longuid=1202(long) gid=1202(long) 组=1202(long)
[root@localhost ~]#
修改用户(usermod)
[root@localhost ~]# useradd httpd
[root@localhost ~]# usermod -s /bin/bash httpd
修改uid
[root@localhost ~]# usermod -u 2000 httpd
[root@localhost ~]# id httpduid=2000(httpd) gid=1001(httpd) 组=1001(httpd)[root@localhost ~]#
删除用户(userdel)
简单得删除用户做法
[root@localhost ~]# userdel httpd
[root@localhost ~]#
强制删除用户(这里由于上面已经删除, 所以不能再次删除, 强制删除用于删除不了得文件来进行强制删除)
[root@localhost ~]# userdel -r httpduserdel:用户“httpd”不存在[root@localhost ~]#
创建组(groupadd)
注: -r 系统组gid系统自动分配
系统用户和系统组,他的uid分配都是1-999
普通用户和系统组,他的uid分配都是1000-65535
[root@localhost ~]# groupadd -g 1244 lfei[root@localhost ~]#
删除组(groupdel)
[root@localhost ~]# groupdel lfei[root@localhost ~]#
19.密码设置及密码破解
注:普通用户必须遵循密码复杂性要求
普通用户只能给自己设置密码,而管理员可以给任何人设密码。
设置密码方式两种
[root@localhost ~]# id auid=1001(a) gid=1001(a) 组=1001(a)
[root@localhost ~]# passwd a
更改用户 a 的密码 。
新的 密码:重新输入新的 密码:passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]#
第二种设置密码得方式
[root@localhost ~]# echo 123456 | passwd --stdin a
更改用户 a 的密码 。passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]#
密码破解步骤及命令
1.关机
2.开机
3.在内核按e键
4.找到UTF8这行,在这一行中加上rd.break
5.ctrl+x
6.mount -o remount,rw /sysroot
7.chroot /sysroot
8.echo “密码” | passwd --stdin root
9.touch /.autorelabel
10.exit
11.exit
20.vim编辑命令使用
vim的一些常规基础操作(该命令无法演示)
a 在当前光标的后面转为输入模式
i 在当前光标的前面转为输入模式
o 在当前光标的下面转为输入模式
A 在当前光标的行尾转为输入模式
I 在当前光标的行首转为输入模式
O 在当前光标的上面转为输入模式
vim模式转换
输入模式–>命令模式 :ESC
命令模式–>末行模式:冒号
在命令模式下面的常规操作
gg 跳转到第一行
3gg 跳转到第三行
G 跳转到最后一行
dd 删除当前光标所在行
3dd 删除包含当前光标所在行内一共三行
D 删除当前光标所在行的内容
yy 复制当前行的内容
3yy复制包括当前行在内的三行内容
p 粘贴到当前行的后面一行
P 粘贴的当前行的前面一行
末行模式常用指令
:wq!强制保存
:q! 不保存退出
21.进程管理
ps查看进程是否启动
[root@localhost ~]# ps
PID TTY TIME CMD 55071 pts/0 00:00:00 bash 92458 pts/0 00:00:00 bash118474 pts/0 00:00:00 ps
[root@localhost ~]#
过滤出某一个进程(ps aux)
[root@localhost ~]# ps aux | grep httpd
root 119507 0.0 0.0 112720 964 pts/0 S+ 15:29 0:00 grep --color=auto httpd[root@localhost ~]#
[root@localhost ~]# ps -ef | grep httpd
root 119971 92458 0 15:30 pts/0 00:00:00 grep --color=auto httpd[root@localhost ~]#
实时查看进程信息(top)
#top
top - 15:31:12 up 5:02, 3 users, load average:Tasks: 202 total, 1 running, 201 sleeping, 0 %Cpu(s): 0.3 us, 1.3 sy, 0.0 ni, 98.3 id, 0.0KiB Mem : 3863540 total, 3240656 free, 197448KiB Swap: 4063228 total, 4063228 free, 0 PID USER PR NI VIRT RES SHR S 55066 root 20 0 159120 5988 4272 S 9 root 20 0 0 0 0 S top - 15:31:31 up 5:03, 3 users, load average:Tasks: 202 total, 1 running, 201 sleeping, 0 %Cpu(s): 0.2 us, 1.1 sy, 0.0 ni, 98.8 id, 0.0KiB Mem : 3863540 total, 3241696 free, 196384KiB Swap: 4063228 total, 4063228 free, 0 PID USER PR NI VIRT RES SHR S 55066 root 20 0 159120 5988 4272 S 55209 root 20 0 162544 2844 1576 S 1 root 20 0 193604 6644 4112 S 2 root 20 0 0 0 0 S
22.进程查杀(kill)
注:kill pid默认是15 ,但是在日常生活中我们不用-15 ,因为-15 它不能完全杀死进程, 或者说杀不死进程,我们一般都是-9来强制杀死进程。(在这里直接干掉网络,连接断开)
[root@localhost ~]# kill -9 55066连接断开
23.权限管理
权限分为读、写、执行,三种
r:读
w:写
x: 执行
[root@localhost ~]# ll^[[A总用量 12drwxr-xr-x. 3 root root 29 7月 8 14:53 a 这里的文件权限是755-rw-r--r--. 1 root root 10 7月 8 15:02 abc 这里的文件权限是644
特殊权限设置
suid:4 针对应用程序设置
chmod u+s filename
chmod 4755 filename
[root@localhost ~]# ll filename-rw-r--r--. 1 root root 0 7月 8 15:41 filename[root@localhost ~]# chmod u+s filename
[root@localhost ~]# ll filename-rwSr--r--. 1 root root 0 7月 8 15:41 filename[root@localhost ~]# chmod 4755 filename
[root@localhost ~]# ll filename-rwsr-xr-x. 1 root root 0 7月 8 15:41 filename[root@localhost ~]#
sgid:2 针对目录设置
chmod g+s dr
chmod 2755 dir
[root@localhost ~]# ll dir
-rw-r--r--. 1 root root 0 7月 8 15:43 dir
[root@localhost ~]# chmod g+s dir
root@localhost ~]# ll dir
-rwxr-sr-x. 1 root root 0 7月 8 15:43 dir
[root@localhost ~]# chmod 2755 dir
[root@localhost ~]# ll dir
-rwxr-sr-x. 1 root root 0 7月 8 15:43 dir
[root@localhost ~]#
sticky:1
chmod o+t dir
chmod 1777 dir
[root@localhost ~]# ll shen
-rw-r--r--. 1 root root 0 7月 8 15:45 shen
[root@localhost ~]# chmod o+t shen[
root@localhost ~]# chmod 1777 shen
[root@localhost ~]# ll shen
-rwxrwxrwt. 1 root root 0 7月 8 15:45 shen
[root@localhost ~]#
23.ACL文件访问控制列表(setfacl)
格式:
setfacl -m u:用户:权限 filename
setfacl -m g:组:权限 filename
[root@localhost ~]# setfacl -m g:a:rw- a
[root@localhost ~]# setfacl -m g:a:rwx a
[root@localhost ~]#
24.权限委派
权限委派我们用命令sudo
首先我们要给普通用户(a)设置一个密码123456
[root@localhost ~]# echo 123456 | passwd --stdin a
更改用户 a 的密码 。
passwd:所有的身份验证令牌已经成功更新。
然后在管理员用户输入visudo,在下面这一行并编辑普通用户所能执行的权限,如果是所有权限就是ALL,如果想执行某一个命令, 就在后面跟上想要执行的命令。(我这里是普通用户a,执行所有权限),
## Allow root to run any commands anywhereroot
ALL=(ALL) ALL
ALL=(ALL) ALL
然后su - a切换到普通用户输入刚刚设置的密码,就可以在普通用户进行一切操作啦。(我这里因为登录过,所以不用输入密码,第一次需要输入密码)
[root@localhost ~]# su - a
上一次登录:四 7月 8 15:56:21 CST 2021pts/0 上
[a@localhost ~]$
因为是所有权限, 所以不管做什么操作, 都要在前面加上sudo,然后输入密码,这就是权限委派。
[a@localhost ~]$ sudo mkdir lssudo
: /etc/sudoers.d 可被任何人写[sudo] a 的密码:
[a@localhost ~]$ lsasff ls shen
[a@localhost ~]$
25.软件管理
rpm命令操作及管理
rpm -ivh /path/to/pack_name 安装
rpm -e pack_name 卸载
rpm -qa | grep pack_name 查询
rpm -ql pack_name 列出pack_name安装时安装了哪些文件及文件位置
rpm -qc pack_name 列出pack_name安装后生成的配置文件在哪里
rpm -qd pack_name 帮助文档documentation
rpm -qf /path/to/file_name 查询文件是由哪个包提供的
yum/dnf管理
yum -y install pack_name(此单词就是名字的意思)安装某一个服务
yum -y remove pack_name 卸载某一个服务
yum provides *bin/命令
yum provides /path/to/filename
yum list all | grep pack_name
yum clean all清楚缓存
yum仓库配置
在配置仓库之前我们得挂载
挂载命令:mount /dev/sr0 /mnt
[root@localhost ~]# cat /etc/yum.repos.d/shen.repo
[BaseOS]
name=baseos
baseurl=file:///mnt/BaseOS
gpgcheck=0
enabled=1
[AppStream]
name=appstream
baseurl=file:///mnt/AppStream
gpgcheck=0
enabled=1[
root@localhost ~]#
26.服务控制得方式
centos6及以前得版本:
ervice SERVICE_NAME start
service SERVICE_NAME stop
service SERVICE_NAME status
service SERVICE_NAME restart
chkconfig --add SEERVICE_NAME
chkconfig SERVICE _NAME on
centos7及以后的版本:
systemc start SERVIVCE_NAME
systemc stop SERVIVCE_NAME
systemc status SERVIVCE_NAME
systemc restart SERVIVCE_NAME
systemc enable SERVIVCE_NAME
systemc disable SERVIVCE_NAME
[root@localhost ~]# systemctl start NetworkManager-dispatcher.service
[root@localhost ~]# systemctl stop NetworkManager-dispatcher.service
[root@localhost ~]# systemctl status NetworkManager
● NetworkManager.service - Network Manager Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service;
enabled; vendor preset: enabled) Active: active (running) since
三 2021-07-07 09:33:27 CST; 1 day 6h ago
Docs: man:NetworkManager(8)
[root@localhost ~]# systemctl restart NetworkManager
[root@localhost ~]# systemctl enable NetworkManager
[root@localhost ~]# systemctl disable NetworkManager
Removed symlink /etc/systemd/system/multi-user.target.wants/NetworkManager.service.Removed symlink
/etc/systemd/system/dbus-org.freedesktop.
NetworkManager.service.Removed symlink /etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service.
[root@localhost ~]#
27,防火墙放行端口操作
firewall-cmd --list-port 查询已经放行的端口
firewall-cmd --list-all 与上面相同,查询已经放行的端口
firewall-cmd --permanent --add-port=133/tcp 永久添加端口放行
firewall-cmd --add-port=133/tcp 临时端口放行
firewall-cmd --reload 刷新
firewall-cmd --permanent --remove-port=133/tcp 永久删除端口