Linux基础命令
1. ls
命令格式:ls [options] [args]
命令功能:目标目录所有的子目录和文件
文件类型:
- d 目录文件
- b 快设配文件
- c 字符设备文件
- l 符号连接文件
- p 命令管道
- s 套接字文件
常用参数:
- -a :列出以.开头的隐藏文件
- -d :显示目录自身属性
- -R :递归显示
- -s :以大小单位列出所有文件的大小
- -l :可以将文件的权限,文件大小,所有者详细信息列出来
- -h:以人类好理解的方法列出来
命令实例:
[root@localhost ~]# ls
anaconda-ks.cfg caiaochenwoerz zzz
[root@localhost ~]# ls -d
.
[root@localhost ~]# ls -a
. anaconda-ks.cfg .bash_profile caiaochenwoerz .tcshrc
.. .bash_logout .bashrc .cshrc zzz
2. cd
命令格式:cd [dirname]
命令功能:切换当前工作目录
命令实例:
[root@localhost xxx]# cd /root/usr/
[root@localhost usr]#
3. pwd
命令格式:pwd
命令功能:显示工作目录的绝对目录名称
命令实例:
[root@localhost xxx]# pwd
/root/xxx
[root@localhost xxx]#
4. touch
命名格式:touch files
命令功能:创建一个空文件和修改文件的时间戳
命令实例:
[root@localhost xxx]# ls
[root@localhost xxx]# touch abc
[root@localhost xxx]# ls
abc
[root@localhost xxx]#
5. mkdir
命令格式:mkdir [optino] directory
命令功能:创建一个目录
命令参数:
- -p:一次创建多个目录
命令实例:
[root@localhost ~]# ls
anaconda-ks.cfg backup.gz caiaochenwoerz zzz
backup.bz2 backup.xz usr
[root@localhost ~]# mkdir xxx
[root@localhost ~]# ls
anaconda-ks.cfg backup.gz caiaochenwoerz xxx
backup.bz2 backup.xz usr zzz
[root@localhost ~]#
6. echo
命令实例:
[root@localhost ~]# echo hello
hello
命令功能:打印输出
7. rm
命令格式:rm [options] name
命令功能:删除一个文件或目录
命令参数:
- -f:直接删除不需要确认
- -r:目录之下的文件一并删除
命令实例:
[root@localhost zzz]# ls
1 10 2 3 4 5 6 7 8 9 dadad zzzz
[root@localhost zzz]# rm -rf 1 2 3 4 5
[root@localhost zzz]# ls
10 6 7 8 9 dadad zzzz
[root@localhost zzz]#
[root@localhost zzz]# rm 9
rm:是否删除普通空文件 "9"?yes
[root@localhost zzz]# ls
6 7 8 dadad zzzz
[root@localhost zzz]#
[root@localhost zzz]# rm -r dadd
rm:是否删除目录 "dadd"?yes
[root@localhost zzz]# ls
6 7 8 dadad zzzz
[root@localhost zzz]#
8.sed
命令实例:提取带有world单词的行
[root@localhost zzz]# sed -n '/world/p' zzzz
hello world
命令功能:基于行的过滤和转换文本的流编辑器
命令参数:
- a :新增, a 的后面可以接字串,而这些字串会在新的一行出现
- c :取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行
- d :删除,因为是删除啊,所以 d 后面通常不接任何东西
- i :插入, i 的后面可以接字串,而这些字串会在新的一行出现
- p :打印,亦即将某个选择的数据印出。通常 p 会与参数 sed -n 一起运行
- s :取代,可以直接进行取代的工作
9. cat
命令功能:查看文本
命令实例:
[root@localhost ~]# cat > caiaochenwoerz <<EOF
> sbxk
> sbcac
> sbcsl
> EOF
[root@localhost ~]# cat caiaochenwoerz
sbxk
sbcac
sbcsl
10. tar
命令功能:打包 解压
命令参数:
- -jcf bz2格式压缩
- -Jcf xz格式压缩
- zcf gz格式压缩
命令实例:
[root@localhost ~]# tar -zcf /root/backup.gz /usr/local/
tar: 从成员名中删除开头的“/”
[root@localhost ~]# ls
anaconda-ks.cfg backup.gz caiaochenwoerz zzz
[root@localhost ~]# tar -jcf /root/backup.bz2 /usr/local/
tar: 从成员名中删除开头的“/”
[root@localhost ~]# ls
anaconda-ks.cfg backup.bz2 backup.gz caiaochenwoerz zzz
[root@localhost ~]# tar -Jcf /root/backup.xz /usr/local/
tar: 从成员名中删除开头的“/”
[root@localhost ~]# ls
anaconda-ks.cfg backup.gz caiaochenwoerz
backup.bz2 backup.xz zzz
[root@localhost ~]# tar xf backup.gz
[root@localhost ~]# ls
anaconda-ks.cfg backup.gz caiaochenwoerz zzz
backup.bz2 backup.xz usr
11. awk
命令功能:基于列的文本报告工具
命名实例:
[root@localhost zzz]# cat zzzz
hello world
hello zzz
123
456
789
zzz
[root@localhost zzz]# awk '{print $1,$4}' zzzz
hello
hello
123
456
789
zzz
[root@localhost zzz]# awk -F, '{print $1,$4}' zzzz
hello world
hello zzz
123
456
789
zzz
[root@localhost zzz]# awk -F, '{print $1,$4}' zzzz |head -3
hello world
hello zzz
123
12.head和tail
命令功能:查看头部和尾部
命令实例:
[root@localhost ~]# cat caiaochenwoerz
sbxk
sbcac
sbcsl
[root@localhost ~]# head -1 caiaochenwoerz |tail -2 caiaochenwoerz
sbcac
sbcsl
[root@localhost ~]#
13.grep
命令功能 用于查找文件符合条件的字符串
命令参数:
- -i:忽略大小写
- –color:匹配内容显示高亮
- -q:静默模式 不输出任何内容
- -r:查找目录时必须带上
- -v:打印出不符合条件的内容
命令实例:
[root@localhost ~]# grep -q "sbin" /etc/man_db.conf
[root@localhost ~]#
[root@localhost ~]# grep "sbin" /etc/man_db.conf |grep -v '^&' > /root/out.txt
[root@localhost ~]#
[root@localhost ~]# cat /root/out.txt
MANPATH_MAP /sbin /usr/share/man
MANPATH_MAP /usr/sbin /usr/share/man
MANPATH_MAP /usr/local/sbin /usr/local/man
MANPATH_MAP /usr/local/sbin /usr/local/share/man
MANPATH_MAP /opt/sbin /opt/man
[root@localhost ~]#
14.find
命令功能:在指定目录下查找文件
命令参数:
- -name:精确匹配文件
- -user:属主
- -grep:属组
- -size:大小
- -type:文件类型
命令实例:
[root@localhost ~]# find / -name zzz
/root/zzz
[root@localhost ~]#
[root@localhost ~]# find / -user cactd
/home/cactd
/home/cactd/.bash_logout
/home/cactd/.bash_profile
/home/cactd/.bashrc
find: ‘/proc/26498/task/26498/fd/6’: 没有那个文件或目录
find: ‘/proc/26498/task/26498/fdinfo/6’: 没有那个文件或目录
find: ‘/proc/26498/fd/5’: 没有那个文件或目录
find: ‘/proc/26498/fdinfo/5’: 没有那个文件或目录
/var/spool/mail/cactd
[root@localhost ~]#
[root@localhost ~]# find / -group cactd
/home/cactd
/home/cactd/.bash_logout
/home/cactd/.bash_profile
/home/cactd/.bashrc
find: ‘/proc/27629/task/27629/fd/6’: 没有那个文件或目录
find: ‘/proc/27629/task/27629/fdinfo/6’: 没有那个文件或目录
find: ‘/proc/27629/fd/5’: 没有那个文件或目录
find: ‘/proc/27629/fdinfo/5’: 没有那个文件或目录
[root@localhost ~]#
[root@localhost ~]# find /etc -size +5M
/etc/udev/hwdb.bin
[root@localhost ~]#
重定向和管道
1.输出重定向
1.1 >
命令功能:覆盖输出
命令实例:
[root@localhost ~]# echo linlusama123 > abc
[root@localhost ~]# cat abc
linlusama123
[root@localhost ~]#
1.2 >>
命令功能:追加输出
命令实例:
[root@localhost ~]# echo linlusama >> abc
[root@localhost ~]# cat abc
linlusama
[root@localhost ~]#
2.输入重定向
2.1 <
命令功能:输入重定向
命令实例:
[root@localhost ~]# cat abc
linlusama1
[root@localhost ~]# cat > asd < abc
[root@localhost ~]# ls
abc asd backup.gz caiaochenwoerz usr zzz
anaconda-ks.cfg backup.bz2 backup.xz out.txt xxx
[root@localhost ~]# cat asd
linlusama1
3. 管道
3.1 |
命令功能:把前面命令的结果交给后面的命令处理
命令实例:
[root@localhost ~]# find / -name adc | xargs rm -rf
[root@localhost ~]#
vi编辑器
1. 命令模式
- i:切换到输入模式,以输入字符
- I:大写的i,在当前光标所在行的行首转换为输入模式
- a:append,在当前光标所在字符的后面转换为输入模式
- A:在当前光标所在行的行尾转换为输入模式
- o:open,在当前光标所在行的下方新建一行并转为输入模式
- O:在当前光标所在行的上方新建一行并转换为输入模式
- x 删除当前光标所在处的字符。
- gg:跳转到第一行
- G:跳转到最后一行
- dd:删除当前光标所在行
- yy:复制当前行的内容
- p:粘贴到当前行的后面一行
- P:粘贴到当前行的前面一行
- : 切换到底线命令模式,以在最底一行输入命令。
2. 输入模式
- ESC,退出输入模式,切换到命令模式
3. 末行模式
- wq! 强制保存并退出
- q! 不保存退出
用户和组管理
1.用户管理
1.1 useradd
命令格式:useradd [option] username
命令功能:创建用户
常用参数:
- -c<备注> 加上备注文字。备注文字会保存在passwd的备注栏位中。
- -d<登入目录> 指定用户登入时的起始目录。
- -e<有效期限> 指定帐号的有效期限。
- -f<缓冲天数> 指定在密码过期后多少天即关闭该帐号。
- -g<群组> 指定用户所属的群组。
- -G<群组> 指定用户所属的附加群组。
- -m 自动建立用户的登入目录。
- -M 不要自动建立用户的登入目录。
- -n 取消建立以用户名称为名的群组.
- -r 建立系统帐号。
- -s 指定用户登入后所使用的shell。
- -u 指定用户ID。
命令实例:
[root@localhost ~]# useradd zzz
[root@localhost ~]# useradd -u 2001 ccc
[root@localhost ~]#
[root@localhost ~]# useradd -u 2003 -g 1001 asd
[root@localhost ~]# useradd -s /sbin/nologin alice
1.2 userdel
命令格式:userdel [option] username
命令功能:删除用户
常用参数:
- -r 删除用户一并删除家目录
1.3 usermod
命令格式:usermod [option] username
命令功能:修改用户属性
常用参数:
- -c<备注> 修改用户帐号的备注文字。
- -d登入目录> 修改用户登入时的目录。
- -e<有效期限> 修改帐号的有效期限。
- -f<缓冲天数> 修改在密码过期后多少天即关闭该帐号。
- -g<群组> 修改用户所属的群组。
- -G<群组> 修改用户所属的附加群组。
- -l<帐号名称> 修改用户帐号名称。
- -L 锁定用户密码,使密码无效。
- -s 修改用户登入后所使用的shell。
- -u 修改用户ID。
- -U 解除密码锁定。
命令实例:
[root@localhost ~]# usermod -u 2007 cactd
[root@localhost ~]#
1.4 su
命令格式:su [option] username
命令功能:切换用户
常用参数:
- -c:切换用户执行命令 执行结束返回原用户
2.组管理
2.1 groupadd
命令格式:groupadd [options] groupname
命令功能:创建组
常用参数:
- -g:指定GID
- -r:添加系统组
命令实例:
[root@localhost ~]# groupadd -g 2004 sbcac
[root@localhost ~]# groupadd -r ssss
[root@localhost ~]#
2.2 groupdel
命令功能:删除组
3. 密码管理
3.1 passwd密码管理
命令格式:echo “密码” |passwd --stdin username
常用参数:
- -l: 锁定用户
- -u:解锁用户
- -d:删除用户密码
- -x:指定最长使用期限
- -n:指定最短使用期限
3.2 破解密码:
1.关机
2.开机
3.在内核上按e键
4.找到UTF8的行,在这一行加上rd.break
5.ctrl+x
6.mount -o remount,rw /sysroot
7.chroot /systoot
8.echo “密码” | passwd --stdin root
9.touch /.autorelabel
10.exit
11.exit
进程管理
1. 进程管理命令
1.1 ps
命令功能:列出当前进程
命令实例:
[root@localhost ~]# ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 01:03 ? 00:00:04 /usr/lib/systemd/s
root 2 0 0 01:03 ? 00:00:00 [kthreadd]
root 3 2 0 01:03 ? 00:00:00 [ksoftirqd/0]
root 5 2 0 01:03 ? 00:00:00 [kworker/0:0H]
root 7 2 0 01:03 ? 00:00:00 [migration/0]
root 8 2 0 01:03 ? 00:00:00 [rcu_bh]
root 9 2 0 01:03 ? 00:00:04 [rcu_sched]
root 10 2 0 01:03 ? 00:00:00 [lru-add-drain]
root 11 2 0 01:03 ? 00:00:00 [watchdog/0]
root 12 2 0 01:03 ? 00:00:00 [watchdog/1]
root 13 2 0 01:03 ? 00:00:02 [migration/1]
root 14 2 0 01:03 ? 00:00:00 [ksoftirqd/1]
root 16 2 0 01:03 ? 00:00:00 [kworker/1:0H]
root 17 2 0 01:03 ? 00:00:00 [watchdog/2]
root 18 2 0 01:03 ? 00:00:00 [migration/2]
root 19 2 0 01:03 ? 00:00:00 [ksoftirqd/2]
root 20 2 0 01:03 ? 00:00:00 [kworker/2:0]
root 21 2 0 01:03 ? 00:00:00 [kworker/2:0H]
root 22 2 0 01:03 ? 00:00:00 [watchdog/3]
root 23 2 0 01:03 ? 00:00:00 [migration/3]
root 24 2 0 01:03 ? 00:00:01 [ksoftirqd/3]
root 26 2 0 01:03 ? 00:00:00 [kworker/3:0H]
root 28 2 0 01:03 ? 00:00:00 [kdevtmpfs]
root 29 2 0 01:03 ? 00:00:00 [netns]
root 30 2 0 01:03 ? 00:00:00 [khungtaskd]
1.2 top
命令功能:实时全屏动态显示系统信息
命令实例:
top - 11:44:47 up 10:41, 3 users, load average: 0.09, 0.06, 0.05
Tasks: 188 total, 2 running, 186 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.2 us, 0.6 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0
KiB Mem : 3863540 total, 3276128 free, 190276 used, 397136 buf
KiB Swap: 4063228 total, 4063228 free, 0 used. 3345196 ava
PID USER PR NI VIRT RES SHR S %CPU %MEM
1 root 20 0 193500 6524 4080 S 0.3 0.2
15961 root 20 0 161972 2304 1580 R 0.3 0.1
38407 root 20 0 159120 5944 4264 S 0.3 0.2
2 root 20 0 0 0 0 S 0.0 0.0
3 root 20 0 0 0 0 S 0.0 0.0
5 root 0 -20 0 0 0 S 0.0 0.0
7 root rt 0 0 0 0 S 0.0 0.0
8 root 20 0 0 0 0 S 0.0 0.0
9 root 20 0 0 0 0 S 0.0 0.0
10 root 0 -20 0 0 0 S 0.0 0.0
11 root rt 0 0 0 0 S 0.0 0.0
12 root rt 0 0 0 0 S 0.0 0.0
13 root rt 0 0 0 0 S 0.0 0.0
14 root 20 0 0 0 0 S 0.0 0.0
16 root 0 -20 0 0 0 S 0.0 0.0
17 root rt 0 0 0 0 S 0.0 0.0
18 root rt 0 0 0 0 S 0.0 0.0
19 root 20 0 0 0 0 S 0.0 0.0
20 root 20 0 0 0 0 S 0.0 0.0
21 root 0 -20 0 0 0 S 0.0 0.0
常用参数:
- M 根据驻留内存大小进行排序,默认根据CPU百分比排序
- P 根据CPU使用百分比进行排序
- T 根据累计时间(占据CPU时长)进行排序
- l 是否显示平均负载和启动时间
- t 是否显示进程和CPU状态相关信息
- m 是否显示内存相关信息
- c 是否显示完整的命令行信息
- q 退出top命令
- k 终止某个进程
- 1 显示所有CPU的信息
- s 修改刷新时间间隔
权限管理
1.基础权限 chmod
- r:读 4
- w:写 2
- x:执行 1
命令实例:
[root@localhost ~]# ll abc
-rw-rw-r--. 1 root root 11 7月 7 09:48 abc
[root@localhost ~]# chmod g+x abc
[root@localhost ~]# ll abc
-rw-rwxr--. 1 root root 11 7月 7 09:48 abc
[root@localhost ~]#
[root@localhost ~]# chmod 775 abc
[root@localhost ~]# ll abc
-rwxrwxr-x. 1 root root 11 7月 7 09:48 abc
[root@localhost ~]#
2.特殊权限 chmod
- suid:针对应用程序设置 4
- sgid:针对命令设置 2
- stick:公共目录 1
命令实例:
[root@localhost ~]# ll abc
-rwxrwxr-x. 1 root root 11 7月 7 09:48 abc
[root@localhost ~]# chmod u+s abc
[root@localhost ~]# ll abc
-rwsrwxr-x. 1 root root 11 7月 7 09:48 abc
[root@localhost ~]# chmod g+s abc
[root@localhost ~]# ll abc
-rwsrwsr-x. 1 root root 11 7月 7 09:48 abc
[root@localhost ~]# chmod o+t abc
[root@localhost ~]# ll abc
-rwsrwsr-t. 1 root root 11 7月 7 09:48 abc
[root@localhost ~]#
3.ACL文件访问控制列表 setfacl
命令格式:setfacl {-m,-x ,-b} u|g:username:权限 filename
常用参数:
- -m :设定
- -x:取消
- -b:删除所有
命令实例:
[root@localhost ~]# setfacl -m u:zzz:rw- zzz
[root@localhost ~]# getfacl zzz
# file: zzz
# owner: root
# group: root
user::rwx
user:zzz:rw-
group::r-x
mask::rwx
other::r-x
[root@localhost ~]# ^C
[root@localhost ~]#
4.委派权限 sudo
visudo
软件管理
1.rpm管理
常用参数:
-
-ivh:安装
-
-e:卸载
-
-qa |grep :查找所有已经安装的包
-
-ql:列出包安装时安装了哪些文件
-
-qc:列出包安装后生成配置文件在哪些
-
-qd:帮助文档
-
-qf:某个文件由那个包提供的
2. yum|dnf管理
命令格式:
- yum -y install packname 安装
- yum -y remove packname 卸载
- yum provides *bin/命令
- yum list all |grep packname 查找
- yum clean all 清楚缓存
yum源仓库配置:
vi /etc/yum.repos.d/xx.repo
[BaseOS]
name=baseos
baseurl=file:///mnt/BaseOS
gpgcheck=0
enabled=1
[AppStream]
name=appstream
baseurl=file:///mnt/AppStream
gpgcheck=0
enabled=1
mount /mnt/cdrom /mnt
yum clean all
yum list all
服务控制
1.centos6以前的版本:
命令格式:
- service SERVICE_NAME start 启动
- service SERVICE_NAME stop 暂停
- service SERVICE_NAME status 状态
- service SERVICE_NAME restart 重启
- chkconfig --add SERVICE_NAME 开机自启
- chkconfig SERVICE_NAME on 设置服务开机自启
- chkconfig SERVICE_NAME off 设置服务开机不自启
2.centos7以后的版本:
命令格式:
- systemctl start SERVICE_NAME 启动
- systemctl stop SERVICE_NAME 暂停
- systemctl status SERVICE_NAME 状态
- systemctl restart SERVICE_NAME 重启
- systemctl enable SERVICE_NAME 开机自启
- systemctl disable SERVICE_NAME 禁止服务开机自启