dbt commands have different jobs.
Compile renders Jinja into SQL; run builds models; test evaluates data tests; build runs selected resources in dependency order and includes their tests. Seed loads CSV reference tables, snapshot records history, and ls lists matching resources without building them. Start with the smallest command that answers your question.
Selection lets you work on a relevant part of the graph. A leading plus includes ancestors, a trailing plus includes descendants, and both directions include both. Tags and paths group resources without naming each model. Exclusions remove resources from the selected set.
Be careful: selecting a child alone doesn't promise that its parents already exist. In the simulator a fresh project needs those parents built, so use ancestors when the task asks for an executable branch.